OSDN Git Service

2007-02-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2
3         PR fortran/30779
4         * scanner.c (gfc_next_char_literal): Add check for end of file after
5         call to advance_line.
6
7 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
8
9         PR fortran/30799
10         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
11         kind.
12
13 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
14
15         * misc.c (gfc_typename): Fix potential buffer overflow.
16
17 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
18
19         PR fortran/30554
20         * module.c (read_module): Set pointer_info to referenced if the
21         symbol has no namespace.
22
23 2007-02-12  Nick Clifton  <nickc@redhat.com>
24
25         * lang.opt:  Add Warning attribute to warning options.
26
27 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
28
29         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
30         (SLEEP): Added section and documentation.
31
32 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
33
34         PR fortran/30478
35         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
36         (variable_decl): Likewise.  Rewrap comment.
37         (match_attr_spec): Remove ENUM specific code.
38         (gfc_match_enum): Fix typo in error message.
39         (enumerator_decl): New function.
40         (gfc_match_enumerator_def): Use enumerator_decl instead of
41         variable_decl.  Adapt code accordingly.
42
43 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
44
45         PR fortran/30554
46         * module.c (find_symtree_for_symbol): New function to return
47         a symtree that is not a "unique symtree" given a symbol.
48         (read_module): Do not automatically set pointer_info to
49         referenced because this inhibits the generation of a unique
50         symtree.  Recycle the existing symtree if possible by calling
51         find_symtree_for_symbol.
52
53         PR fortran/30319
54         * decl.c (add_init_expr_to_sym): Make new charlen for an array
55         constructor initializer.
56
57 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
58
59         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
60         and __emutls_register_common.
61         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
62         * trans-common.c (build_common_decl): Don't check have_tls.
63         * trans-decl.c (gfc_finish_var_decl): Likewise.
64         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
65         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
66
67 2007-02-09  Tobias Burnus  <burnus@net-b.de>
68
69         PR fortran/30512
70         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
71           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
72
73 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
74
75         PR fortran/30720
76         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
77         function argument. Always generate code for negative extent.
78         Simplify said code.
79         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
80         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
81         of gfc_trans_create_temp_array.
82         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
83         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
84
85 2007-02-08  Roger Sayle  <roger@eyesopen.com>
86
87         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
88         mask expression is a compile-time constant (".true." or ".false.").
89
90 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
91
92         PR fortran/30611
93         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
94         arguments only once. Generate check that NCOPIES argument is not
95         negative.
96
97 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
98
99         PR fortran/30605
100         * fortran/invoke.texi: Update documentation.
101         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
102         and -pedantic.
103
104 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
105
106         * trans-array.c: Fix a comment typo.
107
108 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
109
110         PR fortran/30514
111         * array.c (match_array_element_spec): If the length of an array is
112         negative, adjust the upper limit to make it zero length.
113
114         PR fortran/30660
115         * resolve.c (pure_function, resolve_function): Initialize name to
116         null to clear up build warnings.
117         (resolve_fl_variable): Look at components explicitly to check for
118         default initializer, rather than using gfc_default_initializer.
119
120 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
121
122         PR fortran/30683
123         * resolve.c (resolve_generic_f): Check for non-NULL sym.
124
125 2007-02-02  Roger Sayle  <roger@eyesopen.com>
126
127         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
128         NON_LVALUE_EXPR nodes and useless type conversions.
129
130 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
131
132         PR fortran/30284
133         PR fortran/30626
134         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
135         from function and make sure that substring lengths are
136         translated.
137         (is_aliased_array): Remove static attribute.
138         * trans.c : Add prototypes for gfc_conv_aliased_arg and
139         is_aliased_array.
140         * trans-io.c (set_internal_unit): Add the post block to the
141         arguments of the function.  Use is_aliased_array to check if
142         temporary is needed; if so call gfc_conv_aliased_arg.
143         (build_dt): Pass the post block to set_internal_unit and
144         add to the block after all io activiy is done.
145
146 2007-02-01  Roger Sayle  <roger@eyesopen.com>
147
148         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
149         a temporary array to pass a constant non-character array constructor.
150         Generalize the descriptor generation code to handle scalarizer
151         "info" without an array reference.
152
153 2007-02-01  Roger Sayle  <roger@eyesopen.com>
154
155         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
156         dependency checking for array constructors.
157
158 2007-02-01  Roger Sayle  <roger@eyesopen.com>
159
160         * trans-stmt.c (compute_overall_iter_number): Document function
161         arguments.  Generalize "unconditional forall nest with constant
162         bounds" optimization to eliminate unconditional inner loops with
163         constant bounds.
164
165 2007-01-31  Tobias Burnus  <burnus@net-b.de>
166
167         PR fortran/30520
168         * interface.c (compare_actual_formal): Check conformance between
169           actual and VOLATILE dummy arguments.
170         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
171           multiple times in different scopes.
172         * decl.c (gfc_match_volatile): Search symbol in host association.
173
174 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
175
176         * simplify.c, trans-array.c: Fix comment typos.
177
178 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
179
180         * invoke.texi (Code Gen Options): Fix abbreviation typo.
181         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
182
183 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
184
185         PR fortran/30432
186         * trans-types.c (gfc_get_function_type):  Do not add void_type_node
187         to empty arg list.
188         * trans-decl.c (create_function_arglist): Change assert.
189
190 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
191
192         PR fortran/30554
193         * module.c (read_module): If a symbol is excluded by an ONLY
194         clause, check to see if there is a symtree already loaded. If
195         so, attach the symtree to the pointer_info.
196
197 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
198
199         PR libfortran/30389
200         * gfortran.h:  Remove gfc_simplify_init_1.
201         * arith.h:  Remove third argument from gfc_compare_string.
202         * arith.c(gfc_compare_expression):  Remove third argument
203         from call to gfc_compare_string.
204         (gfc_compare_string):  Remove third argument xcoll_table.
205         Remove use of xcoll_table.
206         * misc.c(gfc_init_1):  Remove call to gfc_simplify_init_1.
207         * simplify.c(ascii_table):  Remove.
208         (xascii_table): Likewise.
209         (gfc_simplify_achar):  ICE if extract_int fails.  Remove use of
210         ascii_table.  Warn if -Wsurprising and value < 0 or > 127.
211         (gfc_simplify_char):  ICE if extract_int fails. Error if
212         value < 0 or value > 255.
213         (gfc_simplify_iachar):  Remove use of xascii_table.
214         Char values outside of 0..255 are an ICE.
215         (gfc_simplify_lge):  Remove use of xascii_table.
216         (gfc_simplify_lgt):  Likewise.
217         (gfc_simplify_lle):  Likewise.
218         (gfc_simplify_llt):  Likewise.
219         (invert_table):  Remove.
220         (gfc_simplify_init_1):  Remove.
221
222 2007-01-27  Roger Sayle  <roger@eyesopen.com>
223
224         * trans-stmt.c (forall_info): Replace the next_nest and outer
225         fields that previously implemented a doubly-linked list with a
226         single prev_nest field (singly-linked list).
227         (gfc_trans_nested_forall_loop): The nested_forall_info argument
228         now denotes the innermost FORALL in the loop nest.
229         (compute_overall_iter_number): Use prev_nest instead of next_nest.
230         (gfc_trans_forall_1): Link/cons the new "info" to the head of the
231         nested_forall_info linked list.  Free the current "info" when done.
232
233 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
234
235         PR fortran/30407
236         * trans-expr.c (gfc_conv_operator_assign): New function.
237         * trans.h : Add prototype for gfc_conv_operator_assign.
238         * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for
239         a potential operator assignment subroutine.  If it is non-NULL
240         call gfc_conv_operator_assign instead of the first assignment.
241         ( gfc_trans_where_2): In the case of an operator assignment,
242         extract the argument expressions from the code for the
243         subroutine call and pass the symbol to gfc_trans_where_assign.
244         resolve.c (resolve_where, gfc_resolve_where_code_in_forall,
245         gfc_resolve_forall_body): Resolve the subroutine call for
246         operator assignments.
247
248 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
249             Steven G. Kargl <kargl@gcc.gnu.org>
250
251         PR fortran/30278
252         * fortran/io.c (next_char): Deal with backslash escaped characters.
253         Issue warnings in non -std=gnu cases.
254         * fortran/primary.c (next_string_char): Issue warnings in non
255
256 2007-01-26  Tobias Burnus  <burnus@net-b.de>
257
258         * lang-specs.h: Add support for .f03 and .F03 extensions.
259         * gfortran.texi: Document .f03 extension.
260         * options.c (form_from_filename): Recognize .f03.
261
262 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
263
264         PR fortran/30437
265         * lang.opt (Wall): Remove RejectNegative.
266         * options.c (gfc_handle_option): Wall can be disabled.
267         (set_Wall): Add a parameter for disabling Wall.
268         
269 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
270
271         PR fortran/30532
272         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
273         
274 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
275
276         PR fortran/30481
277         * match.c (gfc_match_namelist): Add check for assumed size character
278         in namelist and provide error if found.
279
280 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
281
282         * intrinsic.texi (ACHAR): Added cross-references.
283         (CHAR): Put cross-references in alphabetical order.
284         (IACHAR): Added cross-references.
285         (ICHAR): Added cross-references.
286
287 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
288
289         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
290         (MAXVAL): Corrected description of result characteristics.
291         (MINVAL): Same.
292         (UMASK): Added documentation.
293
294 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
295
296         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
297         parse.c, primary.c, options.c, misc.c, simplify.c:  Next installment
298         in the massive whitespace patch.
299
300 2007-01-20  Roger Sayle  <roger@eyesopen.com>
301
302         * module.c (mio_array_ref): The dimen_type fields of an array ref
303         are an enumerated type and can't be read/written directly with a
304         call to mio_integer.  Instead loop over and cast each element.
305
306 2007-01-20  Roger Sayle  <roger@eyesopen.com>
307
308         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
309         i.e. that the ARRAY_REF doesn't mention components.
310         * trans-array.c (gfc_constant_array_constructor_p): Export external
311         function renamed from constant_array_constructor_p.
312         (gfc_build_constant_array_constructor): Export.
313         (gfc_trans_array_constructor): Update call to the renamed function
314         constant_array_constructor_p.
315         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
316         (gfc_build_constant_array_constructor): Likewise.
317         * trans-expr.c (gfc_build_memcpy_call): New helper function split
318         out from gfc_trans_array_copy.
319         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
320         (gfc_trans_array_constructor_copy): New function to optimize
321         assigning an entire array from a constant array constructor.
322         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
323         when appropriate.
324
325 2007-01-20  Roger Sayle  <roger@eyesopen.com>
326
327         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
328         implementation for the SIGN intrinsic with integral operands.
329         (gfc_conv_intrinsic_minmax): Fix whitespace.
330
331 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
332
333         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
334         * lang.opt: Add -fallow-leading-underscore.
335         * match.c (gfc_match_name): Allow leading underscore in symbol
336         name if -fallow-leading-underscore is used.
337         * symbol.c (gfc_get_default_type): Add special case for symbol
338         names beginning with an underscore.
339         * trans-decl.c (gfc_get_extern_function_decl,
340         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
341         library symbols selected_int_kind, selected_real_kind and 
342         all specifics.
343         * options.c (gfc_init_options, gfc_handle_option): Handle the
344         new -fallow-leading-underscore option.
345
346 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
347
348         PR fortran/30446
349         * options.c (gfc_handle_module_path_options): Path used in -J
350         option is now added to the module search path.
351
352 2007-01-20  Richard Guenther  <rguenther@suse.de>
353
354         PR fortran/30223
355         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
356         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
357         sincos builtins if the target has sincos.
358
359 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
360
361         * intrinsic.texi (MATMUL): Corrected a typo.
362         (MAX): Separated @var arguments.
363         (MIN): Separated @var arguments.
364
365 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
366
367         * intrinsic.texi: general whitespace cleanup.
368         (menu): Added TIME8, removed UNMASK.
369         (AINT): Clarified argument requirement.
370         (ANINT): Clarified argument requirement.
371         (CEILING): Clarified argument requirement.
372         (CHAR): Clarified argument requirement.
373         (CMPLX): Clarified argument requirement.
374         (DCMPLX): Clarified argument requirement.
375         (FGET): Line rewrapping.
376         (FLOOR): Clarified argument requirement.
377         (GMTIME): Added documentation.
378         (IAND): Added cross-reference.
379         (IBCLR): Added cross-reference.
380         (IBSET): Added cross-reference.
381         (IEOR): Added cross-reference.
382         (INT): Collapsed examples, clarified argument requirement.
383         (IOR): Added cross-references.
384         (LEN_TRIM): Corrected result kind.
385         (LINK): Added cross-reference.
386         (LLT): Removed "documentation pending".
387         (LOGICAL): Added documentation.
388         (LSHIFT): Added documentation.
389         (LTIME): Added documentation.
390         (MATMUL): Added documentation.
391         (MAX): Added documentation.
392         (MAXLOC): Added documentation.
393         (MAXVAL): Added documentation.
394         (MERGE): Added documentation.
395         (MIN): Added documentation.
396         (MINLOC): Added documentation.
397         (MINVAL): Added documentation.
398         (MVBITS): Moved to correct place, added documentation.
399         (NOT): Added documentation.
400         (PERROR): Added documentation.
401         (RAN): Moved to correct place, added documentation.
402         (REAL): Clarified argument requirement.
403         (RENAME): Added documentation.
404         (RSHIFT): Clarified argument requirement.
405         (SIGN): Corrected table specification.
406         (SYMLNK): Added documentation.
407         (SYSTEM): Added documentation.
408         (TIME): Added documentation.
409         (TIME8): Added section and documentation.
410         (UNMASK): Removed erroneous section.
411
412 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
413
414         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
415
416 2007-01-18  Roger Sayle  <roger@eyesopen.com>
417
418         * trans-expr.c (copyable_array_p): Consider user derived types without
419         allocatable components to be copyable.
420
421 2007-01-18  Roger Sayle  <roger@eyesopen.com>
422
423         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
424         the number of interations in unconditional FORALL nests with constant
425         bounds.
426
427 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
428             Tobias Burnus  <burnus@net-b.de>
429
430         PR libfortran/29649
431         * gfortran.h (gfc_option_t): Add flag_dump_core.
432         * lang.opt: Add -fdump-core option.
433         * invoke.texi: Document the new options.
434         * trans-decl.c (gfc_build_builtin_function_decls): Add new
435           options to the call to set_std.
436         * options.c (gfc_init_options, gfc_handle_option): Set the
437           new options.
438
439 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
440
441         PR fortran/30476
442         * module.c (load_generic_interfaces): Make the marking of the
443         symbol as ambiguous conditional on the module names being
444         different.
445         (write_generic): Ensure that the generic interface has a
446         non-NULL module field.
447
448 2007-01-16  Roger Sayle  <roger@eyesopen.com>
449
450         PR fortran/30404
451         * trans-stmt.c (forall_info): Remove pmask field.
452         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
453         NVAR covers all the interation variables in the current forall_info.
454         Add an extra OUTER parameter, which specified the loop header in
455         which to place mask index initializations.
456         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
457         Change the semantics of MASK_FLAG to only control the mask in the
458         innermost loop.
459         (compute_overall_iter_number): Optimize the trivial case of a
460         top-level loop having a constant number of iterations.  Update
461         call to gfc_trans_nested_forall_loop.  Calculate the number of
462         times the inner loop will be executed, not to size of the 
463         iteration space.
464         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
465         sizeof(type) == 1.  Tidy up.
466         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
467         to gfc_trans_nested_forall_loop.
468         (gfc_trans_pointer_assign_need_temp): Likewise.
469         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
470         LENVAR local variables.  Split mask allocation into a separate
471         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
472         to allocate the FORALL mask with the correct size.  Update calls
473         to gfc_trans_nested_forall_loop.
474         (gfc_evaluate_where_mask): Update call to
475         gfc_trans_nested_forall_loop.
476         (gfc_trans_where_2): Likewise.
477
478 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
479
480         PR fortran/28172
481         * trans-stmt.c (gfc_trans_call): If it does not have one, get
482         a backend_decl for an alternate return.
483
484         PR fortran/29389
485         * resolve.c (pure_function): Statement functions are pure. Note
486         that this will have to recurse to comply fully with F95.
487
488         PR fortran/29712
489         * resolve.c (resolve_function): Only a reference to the final
490         dimension of an assumed size array is an error in an inquiry
491         function.
492
493         PR fortran/30283
494         * resolve.c (resolve_function): Make sure that the function
495         expression has a type.
496
497 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
498
499         PR fortran/30410
500         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
501         symbols must not have the module name prepended.
502
503 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
504
505         PR libfortran/30415
506         * iresolve.c (gfc_resolve_maxloc):  If the rank
507         of the return array is nonzero and we process an
508         integer array smaller than default kind, coerce
509         the array to default integer.
510         * iresolve.c (gfc_resolve_minloc):  Likewise.
511
512 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
513
514         * simplify.c: Update copyright to 2007.
515         * scanner.c: Same.
516
517 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
518
519         PR fortran/30430
520         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
521         only once!
522
523 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
524
525         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
526         (gfc_simplify_ibset): Same.
527
528 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
529
530         PR 30381
531         PR 30420
532         * simplify.c (convert_mpz_to_unsigned): New function.
533         (convert_mpz_to_signed): New function, largely based on
534         twos_complement().
535         (twos_complement): Removed.
536         (gfc_simplify_ibclr): Add conversions to and from an
537         unsigned representation before bit-twiddling.
538         (gfc_simplify_ibset): Same.
539         (gfc_simplify_ishftc): Add checks for overly large
540         constant arguments, only check the third argument if
541         it's present, carry over high bits into the result as
542         appropriate, and perform the final conversion back to
543         a signed representation using the correct sign bit.
544         (gfc_simplify_not): Removed unnecessary masking.
545
546 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
547
548         PR fortran/30408
549         * resolve.c (resolve_code): Use the code->expr character length
550         directly to set length of llen.
551
552 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
553
554         PR fortran/30408
555         * lang.opt: Add Wcharacter_truncation option.
556         * options.c (gfc_init_options): Initialize
557         gfc_option.warn_character_truncation to zero.
558         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
559
560 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
561
562         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
563         iresolve.c, match.c:  Update Copyright years.  Whitespace.
564
565 2007-01-08  Richard Guenther  <rguenther@suse.de>
566
567         * trans-io.c (transfer_array_desc): Use build_int_cst instead
568         of build_int_cstu.
569
570 2007-01-08  Roger Sayle  <roger@eyesopen.com>
571
572         * trans-array.c (constant_array_constructor_p): New function to
573         determine whether an array constructor consists only of constant
574         elements, and if so return it's size.
575         (gfc_build_constant_array_constructor): Construct a statically
576         initialized gfortran array for a given EXPR_ARRAY.
577         (gfc_trans_constant_array_constructor): Efficiently scalarize
578         a constant array constructor.
579         (gfc_trans_array_constructor):  Tidy up use of CONST_STRING.
580         Special case scalarization of constant array constructors, all of
581         whose elements are specified, using constant_array_constructor_p 
582         and gfc_trans_constant_array_constructor.
583         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
584         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
585
586 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
587
588         gfortran.texi: Fix typos.
589
590 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
591
592         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
593         convert.c:  Update Copyright dates.  Fix whitespace.
594
595 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
596
597         * data.c (gfc_assign_data_value): Fix whitespace.
598
599 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
600
601         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
602         Commentary typo fix.
603
604 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
605
606         PR fortran/27698
607         * match.c (gfc_match_name): Print diagnostics for invalid
608         character in names.
609
610 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
611
612         * array.c: Fix whitespace in comment table.
613
614 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
615
616         * array.c, bbt.c, check.c:  Update copyright years.  Whitespace.
617
618 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
619
620         * arith.c: Update copyright years.  Whitespace.
621
622 2007-01-05  Roger Sayle  <roger@eyesopen.com>
623
624         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
625         array assignments split out from gfc_trans_assignment.
626         (gfc_trans_array_copy): New function to implement array to array
627         copies via calls to __builtin_memcpy.
628         (copyable_array_p): New helper function to identify an array of
629         simple/POD types, that may be copied/assigned using memcpy.
630         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
631         whole array assignments considered suitable by copyable_array_p.
632         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
633
634 2007-01-05  Roger Sayle  <roger@eyesopen.com>
635
636         * trans-array.c (gfc_trans_array_constructor_value): Make the
637         static const "data" array as TREE_READONLY.
638         * trans-stmt.c (gfc_trans_character_select): Likewise.
639
640 2007-01-05  Roger Sayle  <roger@eyesopen.com>
641
642         * trans-array.c (gfc_conv_loop_setup):  Test whether the loop
643         stride is one, to avoid fold_build2 introducing a useless
644         NON_LVALUE_EXPR node.
645
646 2007-01-05  Tobias Burnus  <burnus@net-b.de>
647
648         * symbol.c (check_conflict): Fix error message.
649
650 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
651
652         PR fortran/23232
653         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
654         functions to signal that a DATA statement is being matched.
655         (gfc_match_data): Call gfc_set_in_match_data on entry and on
656         exit.
657         * gfortran.h : Add prototypes for above.
658         * expr.c (check_init_expr): Avoid check on parameter or
659         variable if gfc_in_match_data is true.
660         (gfc_match_init_expr): Do not call error on non-reduction of
661         expression if gfc_in_match_data is true.
662
663         PR fortran/27996
664         PR fortran/27998
665         * decl.c (gfc_set_constant_character_len): Add boolean arg to
666         flag array constructor resolution.  Warn if string is being
667         truncated.  Standard dependent error if string is padded. Set
668         new arg to false for all three calls to
669         gfc_set_constant_character_len.
670         * match.h : Add boolean arg to prototype for
671         gfc_set_constant_character_len.
672         * gfortran.h : Add warn_character_truncation to gfc_options.
673         * options.c (set_Wall): Set warn_character_truncation if -Wall
674         is set.
675         * resolve.c (resolve_code): Warn if rhs string in character
676         assignment has to be truncated.
677         * array.c (gfc_resolve_character_array_constructor): Set new
678         argument to true for call to gfc_set_constant_character_len.
679
680 2007-01-05  Tobias Burnus  <burnus@net-b.de>
681
682         PR fortran/29624
683         * interface.c (compare_parameter_intent): New function.
684           (check_intents): Support pointer intents.
685         * symbol.c (check_conflict): Support pointer intents,
686           better conflict_std message.
687         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
688           Support pointer intents.
689         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
690           Support pointer intents.
691
692 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
693
694         PR 30371
695         * check.c (gfc_check_kill_sub): Add checks for non-scalar
696         arguments.
697
698 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
699
700         * intrinsic.texi: Minor cleanup, reflowing overlong
701         paragraphs, and correcting whitespace.
702
703 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
704
705         * intrinsic.texi (LBOUND): Add documentation.
706         (LGE): Add documentation.
707         (LGT): Add documentation.
708         (LINK): Add documentation.
709         (LLE): Add documentation.
710         (LLT): Add documentation.
711         (LNBLNK): Add documentation.
712         (UBOUND): Add documentation.
713         (UNLINK): Add documentation.
714
715 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
716
717         * intrinsic.texi (IAND): Clarify argument specifications.
718         (IBCLR): Add documentation.
719         (IBITS): Add documentation.
720         (IBSET): Add documentation.
721         (IEOR): Add documentation.
722         (IERRNO): Add documentation.
723         (INDEX): Add documentation.
724         (IOR): Add documentation.
725         (ISHFT): Add documentation.
726         (ISHFTC): Add documentation.
727         (KILL): Add documentation.
728         (LEN_TRIM): Add documentation.
729
730 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
731
732         PR 30235
733         * interface.c (compare_actual_formal): check for
734         alternate returns when iterating over non-present
735         arguments.
736
737 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
738
739         * invoke.texi: Update manpage copyright to include 2007.
740
741 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
742
743         * gfortran.texi: Update copyright to include 2007.
744         * intrinsic.texi: Update copyright to include 2007.
745         * invoke.texi: Update copyright to include 2007.
746
747 2007-01-02  Tobias Burnus  <burnus@net-b.de>
748             Jakub Jelinek  <jakub@redhat.com>
749
750         PR fortran/30276
751         * scanner.c (open_included_file): Revert patch.
752           (gfc_open_included_file): Support absolute pathnames.
753           (gfc_open_intrinsic_module): Support absolute pathnames.
754
755 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
756
757         * gfortran.texi (GNU Fortran and GCC): Rewrite
758
759 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
760
761         * gfortran.texi (Introduction): Lower "Part I:
762         Introduction" to a chapter, renumber Parts II and III to
763         Parts I and II.
764         * intrinsic.texi (Introduction): Rename to "Introduction
765         to Intrinsics" to avoid conflict with the new chapter.
766
767 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
768
769         * intrinsic.texi (Introduction): Rewrite first paragraph.
770
771 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
772
773         * invoke.texi (OpenMP): Added index entry.
774         * gfortran.texi (title page): Removed erroneous '*'.
775
776 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
777
778         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
779         to description.
780         (Extensions): Miscellaneous minor rewriting and copyediting.
781         (BOZ-literal constants): Renamed from Hexadecimal constants.
782         (Hollerith constants support): Added explanation and 
783         suggestions for standard-conforming modern equivalents.
784
785 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
786
787         * intrinsic.texi: Improvements to index entries; change
788         @findex entries to @cindex entries.
789         * invoke.texi: Standardize and improve index entries.
790         * gfortran.texi: Fix @code in one index entry.
791
792 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
793
794         * invoke.texi: Change @code-type macros to appropriate
795         variants (@command, @option, etc.)
796         * gfortran.texi: Same.
797
798 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
799
800         * intrinsic.texi: Various minor cleanups.
801
802 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
803
804         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
805         build_int_cst.
806
807 2007-01-02  Tobias Burnus  <burnus@net-b.de>
808
809         PR fortran/30276
810         * scanner.c (open_included_file): Support full-path filenames.
811
812 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
813
814         PR fortran/20896
815         * interface.c (check_sym_interfaces): Remove call to
816         resolve_global_procedure.
817         gfortran.h : Remove prototype for resolve_global_procedure.
818         resolve.c (resolve_global_procedure): Add static attribute
819         to function declaration.
820
821 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
822
823         * ChangeLog: Copy to ...
824         * ChangeLog-2006: here.