OSDN Git Service

PR fortran/31725
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2007-05-14  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
2
3         PR fortran/31725
4         * trans-expr.c (gfc_conv_substring): Evaluate substring bounds
5         only once.
6
7 2007-05-14  Rafael Avila de Espindola  <espindola@google.com>
8
9         * f95-lang.c (LANG_HOOKS_UNSIGNED_TYPE): Remove.
10         * trans-intrinsic.c (gfc_conv_intrinsic_ishft): Use unsigned_type_for
11         instead of gfc_unsigned_type.
12         * trans-stmt.c (gfc_trans_do): Use unsigned_type_for instead of
13         gfc_unsigned_type.
14         * trans-types.c (gfc_unsigned_type): Remove.
15         * trans-types.h (gfc_unsigned_type): Remove.
16
17 2007-05-12  Paul Thomas  <pault@gcc.gnu.org>
18
19         PR fortran/30746
20         * resolve.c (check_host_association): New function that detects
21         incorrect host association and corrects it.
22         (gfc_resolve_expr): Call the new function for variables and
23         functions.
24         * match.h : Remove prototype for gfc_match_rvalue.
25         * gfortran.h : Add prototype for gfc_match_rvalue.
26
27 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
28
29         PR fortran/30876
30         * trans-expr.c (gfc_conv_function_call): Reduce indirection for
31         direct assignments of recursive array valued functions.
32         * primary.c (gfc_match_rvalue): Correct error for recursive
33         function calls such that directly recursive calls of scalar
34         function without an explicit result are disallowed.
35
36 2007-05-11 Paul Thomas <pault@gcc.gnu.org>
37
38         PR fortran/30878
39         * resolve.c (resolve_fl_namelist): It is not an error if the
40         namelist element is the result variable of the enclosing
41         function.  Search for the symbol in current and all parent
42         namespaces for a potential conflict.
43         * symbol.c (check_conflict): Remove the conflict between
44         'in_namelist' and 'FL_PROCEDURE' because the symbol info
45         is not available to exclude function result variables.
46         * trans-io.c (nml_get_addr_expr): Use the fake result decl
47         if the symbol is an implicit result variable.
48
49 2007-05-11  Paul Thomas  <pault@gcc.gnu.org>
50
51         PR fortran/31474
52         * decl.c (get_proc_name): If an entry has already been declared
53         as a module procedure, pick up the symbol and the symtree and
54         use them for the entry.
55
56 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
57
58         PR fortran/31630
59         * resolve.c (resolve_symbol): Remove the flagging mechanism from the
60         formal namespace resolution and instead check that the formal
61         namespace is not the current namespace.
62
63 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
64
65         PR fortran/31692
66         * trans-array.c (gfc_conv_array_parameter): Convert full array
67         references to the result of the procedure enclusing the call.
68
69 2007-05-08  Paul Thomas  <pault@gcc.gnu.org>
70
71         PR fortran/29397
72         PR fortran/29400
73         * decl.c (add_init_expr_to_sym): Expand a scalar initializer
74         for a parameter array into an array expression with the right
75         shape.
76         * array.c (spec_dimen_size): Remove static attribute.
77         * gfortran.h : Prototype for spec_dimen_size.
78
79 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
80
81         PR fortran/31399
82         * trans-stmt.c (gfc_trans_do): Handle large loop counts.
83
84 2007-05-07  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
85
86         PR fortran/31764
87         * simplify.c (gfc_simplify_new_line): NEW_LINE can be simplified
88         even for non constant arguments.
89
90 2007-05-06  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
91             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
92
93         PR fortran/31201
94         * gfortran.h: Add runtime error codes from libgfortran.h. Define
95         MAX_UNIT_NUMBER.
96         * trans.c (gfc_trans_runtime_check): Update the format of runtime error
97         messages to match library runtime errors.  Use call to new library
98         function runtime_error_at().
99         * trans.h: Add prototype for new function gfc_trans_io_runtime_check.
100         Add declaration for library functions runtime_error_at and
101         generate_error.
102         * trans_io.c (gfc_trans_io_runtime_check): New function.
103         (set_parameter_value): Add error checking for UNIT numbers.
104         (set_parameter_ref): Initialize the users variable to zero. 
105         (gfc_trans_open): Move setting of unit number to after setting of common
106         flags so that runtime error trapping can be detected.
107         (gfc_trans_close): Likewise. (build_filepos): Likewise.
108         (gfc_trans_inquire): Likewise. (build_dt): Likewise.
109         * trans-decl.c: Add declarations for runtime_error_at and
110         generate_error. (gfc_build_builtin_function_decls): Build function
111         declarations for runtime_error_at and generate_error.
112
113 2007-05-06  Paul Thomas  <pault@gcc.gnu.org>
114
115         PR fortran/31540
116         * resolve.c (resolve_fl_procedure): Resolve constant character
117         lengths.
118
119 2007-05-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
120
121         PR fortran/31251
122         * decl.c (match_char_spec): Add check for invalid character lengths.
123
124 2007-05-04  Brooks Moses  <brooks.moses@codesourcery.com>
125
126         * intrinsic.texi (CMPLX): Document result kind.
127         (COMPLEX): Add documentation.
128
129 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
130
131         PR fortran/31760
132         * intrinsic.c (add_functions): Replaced calls to gfc_check_g77_math1
133         by gfc_check_fn_r to avoid checks for scalarity.
134         * check.c (gfc_check_besn): Removed check for scalarity.
135         (gfc_check_g77_math1): Removed.
136         * intrinsic.h (gfc_check_g77_math1): Removed.
137
138 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
139
140         * check.c (gfc_check_fseek_sub): Fixed typo.
141
142 2007-05-04  Daniel Franke  <franke.daniel@gmail.com>
143
144         PR fortran/22359
145         * intrinsic.c (add_subroutines): Added FSEEK.
146         * intrinsic.h (gfc_resolve_fseek_sub, gfc_check_fseek_sub): New.
147         * iresolve.c (gfc_resolve_fseek_sub): New.
148         * check.c (gfc_check_fseek_sub): New.
149         * intrinsic.texi (FSEEK): Updated.
150
151 2007-05-04  Tobias Burnus  <burnus@net-b.de>
152
153         PR fortran/31803
154         * expr.c (gfc_check_pointer_assign): Check for NULL pointer.
155
156 2007-05-04  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
157
158         PR fortran/31251
159         * simplify.c (gfc_simplify_len): Only simplify integer lengths.
160
161 2007-05-04  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
162
163         PR fortran/31781
164         * simplify.c (gfc_simplify_repeat): Don't put function call with
165         side effect in a gcc_assert().
166
167 2007-05-04  Tobias Burnus  <burnus@net-b.de>
168
169         PR fortran/25071
170         * interface.c (compare_actual_formal): Check character length.
171
172 2007-05-01  Thomas Koenig  <tkoenig@gcc.gnu.org>
173
174         PR fortran/31732
175         * dependency.c (gfc_full_array_ref_p):  If the reference is
176         to a single element, check that the array has a single
177         element and that the correct element is referenced.
178
179 2007-05-01  Daniel Franke  <franke.daniel@gmail.com>
180
181         * intrinsic.c (add_functions): Fixed ELEMENTAL specifications.
182         (add_subroutines): Replaced magic numbers in function calls by
183         ELEMENTAL and NOT_ELEMENTAL respectively.
184         * intrinsic.texi (MVBITS): Changed class to elemental subroutine.
185         (RANDOM_NUMBER): Changed class to subroutine.
186         (HUGE, TINY): Changed class to inquiry function.
187
188 2007-04-30  Brooks Moses  <brooks.moses@codesourcery.com>
189
190         * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int.
191         (gfc_conv_tree_to_mpz): New function.
192         (gfc_conv_mpfr_to_tree): Use real_from_mpfr.
193         (gfc_conv_tree_to_mpfr): New function.
194         * trans-const.h: (gfc_conv_tree_to_mpz): New prototype.
195         (gfc_conv_tree_to_mpfr): New prototype.
196
197 2007-04-30  Daniel Franke  <franke.daniel@gmail.com>
198
199         * intrinsic.texi (IERRNO): Changed class to non-elemental function.
200         (LOG10): Removed COMPLEX as accepted argument type.
201         (NEW_LINE): Changed class from elemental to inquiry function.
202         (SIGN): Removed requirement of scalar arguments.
203         (SNGL): Changed class to elemental function.
204
205 2007-04-29  Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
206
207         PR fortran/31591
208         * simplify.c (simplify_bound_dim): New function.
209         (simplify_bound): Use the above. Perform simplification of LBOUND
210         and UBOUND when DIM argument is not present.
211
212 2007-04-29  Daniel Franke  <franke.daniel@gmail.com>
213
214         * gfortran.texi: Cleaned up keyword index.
215         * invoke.texi: Likewise.
216         * intrinsic.texi: Likewise.
217                         
218 2007-04-29  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
219
220         PR fortran/31645
221         * scanner.c (load_file): Discard the byte order mark if one is
222         found on the first non-preprocessor line of a file.
223
224 2007-04-29  Paul Thomas  <pault@gcc.gnu.org>
225
226         PR fortran/31711
227         * trans-array.c (gfc_conv_resolve_dependencies): Create a temp
228         whenever a dependency is found.
229
230 2007-04-28  Tobias Schlüter  <tobi@gcc.gnu.org>
231
232         * options.c (gfc_handle_option): Ensure requested free form line
233         length is not too small.
234
235 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
236
237         * intrinsic.texi (Transfer): Improve documentation.
238
239 2007-04-27  Brooks Moses  <brooks.moses@codesourcery.com>
240
241         * gfortran.texi (Option Index): Add @samp as needed.
242
243 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
244
245         * gfortran.texi: Added node and menu entry for an option index.
246         * invoke.texi: Moved command line option related entries of the concept 
247         index to the option index.
248
249 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
250
251         * intrinsic.texi (AND, FPUT, FPUTC, MODULO, OR, SET_EXPONENT,
252         XOR): Fixed examples.
253
254 2007-04-27  Daniel Franke  <franke.daniel@gmail.com>
255
256         * intrinsic.texi (PRODUCT, RESHAPE, SPACING, SPREAD, SUM, 
257         SYSTEM_CLOCK, TRANSFER, UNPACK): New.
258         (DATE_AND_TIME, CPU_TIME, RRSPACING): Added cross references.
259
260 2007-04-26  Daniel Franke  <franke.daniel@gmail.com>
261
262         * intrinsic.texi (NULL, PACK, PRESENT, REPEAT, SCAN, SHAPE, 
263         SIZE, TRANSPOSE, TRIM, VERIFY): New.
264         (ADJUSTL, ADJUSTR, INDEX): Added cross references.
265         (INT, INT2, INT8, LONG): Enabled section header.
266
267 2007-04-25  Janne Blomqvist  <jb@gcc.gnu.org>
268
269         * module.c (module_char): Replace fgetc() with
270         getc(). 
271         (write_char): Replace fputc() with putc().
272         * scanner.c (load_line): Replace fgetc() with getc().
273         (gfc_read_orig_filename): Likewise.
274
275 2007-04-25  Tobias Burnus  <burnus@net-b.de>
276
277         PR fortran/31668
278         * error.c (error_print): Fix %% support.
279         * intrinsic.c (sort_actual): Improve error message.
280         * resolve.c (resolve_actual_arglist): Allow %VAL for
281         interfaces defined in the module declaration part.
282
283 2007-04-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
284
285         PR libfortran/31299
286         * intrinsic.texi (GETLOG): Update documentation to reflect
287         library changes.
288
289 2007-04-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
290
291         PR fortran/31587
292         * module.c (write_char): Add character to the MD5 buffer.
293         (read_md5_from_module_file): New function.
294         (gfc_dump_module): Compute MD5 for new module file. Call
295         read_md5_from_module_file. Only overwrite old module file
296         if the new MD5 is different.
297
298 2007-04-23  Paul Thomas  <pault@gcc.gnu.org>
299
300         PR fortran/31630
301         * resolve.c (resolve_symbol): Allow resolution of formal
302         namespaces nested within formal namespaces coming from modules.
303
304         PR fortran/31620
305         * trans-expr.c (gfc_trans_assignment): Make the call to
306         gfc_trans_zero_assign conditional on the lhs array ref being
307         the only reference.
308
309 2007-04-23  Tobias Burnus  <burnus@net-b.de>
310
311         * primary.c (match_integer_constant): Mention -fno-range-check
312         in the error message.
313
314 2007-04-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
315
316         PR fortran/31495
317         * scanner.c (load_line):  Remove check for comment after ampersand and
318         adjust tracking of ampersand.
319
320 2007-04-21  Andrew Pinski  <andrew_pinski@playstation.sony.com>
321
322         * f95-lang.c (lang_tree_node): Use GENERIC_NEXT
323         instead of checking GIMPLE_STMT_P in chain_next.
324
325 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
326
327         * trans-types.h (gfc_packed): New enum.
328         (gfc_get_nodesc_array_type): Change prototype to use new enum.
329         * trans-types.c (gfc_get_nodesc_array): Use gfc_packed for
330         argument packed.  Adapt all references to values accordingly.
331         (gfc_sym_type): Use enum values in call to gfc_get_nodesc_array.
332         (gfc_get_derived_type): Likewise.
333         * trans-array.c (gfc_build_constant_array_constructor): Likewise.
334         * trans-expr.c (gfc_get_interface_mapping_charlen): Changed packed
335         argument to type gfc_packed.
336         (gfc_add_interface_mapping): Use enum values in call to
337         gfc_get_interface_mapping.
338         * trans-decl.c (gfc_build_dummy_array_decl): Adapt to use enum
339         values when determining packing.
340
341         * trans-decl.c (gfc_finish_decl): Remove unused second argument
342         'init'.  Simplify code accordingly.  Remove calls to
343         gfc_fatal_error in favor of gcc_assert.
344         (create_function_arglist): Remove second argument from calls to
345         gfc_finish-decl.
346         (gfc_trans_dummy_character): Likewise.
347
348         * arith.h: Update copyright years.
349         * dependency.h: Likewise.
350         * gfortran.h: Likewise.
351         * lang-specs.h: Likewise.
352         * parse.h: Likewise.
353         * symbol.c: Likewise.
354         * trans.h: Likewise.
355         * trans.c: Likewise.
356         * trans-array.c: Likewise.
357         * trans-common.c: Likewise.
358         * trans-const.h: Likewise.
359         * trans-const.c: Likewise.
360         * trans-decl.c: Likewise.
361         * trans-expr.c: Likewise.
362         * trans-io.c: Likewise.
363         * trans-openmp.c: Likewise.
364         * trans-types.h: Likewise.
365         * types.def: Likewise.
366
367 2007-04-17  Tobias Schlüter  <tobi@gcc.gnu.org>
368
369         PR fortran/31144
370         * decl.c (gfc_sym_mangled_identifier): Use capital letters in name
371         mangling.
372         (gfc_sym_mangled_function_id): Likewise.
373
374 2007-04-15  Paul Thomas  <pault@gcc.gnu.org>
375
376         PR fortran/31204
377         * primary.c (check_for_implicit_index): New function to check
378         that a host associated variable is not an undeclared implied
379         do loop index.
380         (gfc_match_rvalue, match_variable): Use it and reset the
381         implied_index attribute.
382         * gfortran.h : Add the implied_index field to symbol_attribute.
383         * match.c (gfc_match_iterator): Mark the iterator variable
384         with the new attribute.
385         * decl.c (build_sym): Reset the new attribute.
386
387 2007-04-15  Kazu Hirata  <kazu@codesourcery.com>
388
389         * gfc-internals.texi: Fix typos.
390         * simplify.c: Fix a comment typo.
391
392 2007-04-14  Bernhard Fischer  <aldot@gcc.gnu.org>
393
394         * primary.c: Commentary typo fix; Add question about redundant (?)
395         set.
396
397 2007-04-14  Paul Thomas  <pault@gcc.gnu.org>
398
399         PR fortran/29507
400         PR fortran/31404
401         * expr.c (scalarize_intrinsic_call): New function to
402         scalarize elemental intrinsic functions in initialization
403         expressions.
404         (check_init_expr): Detect elemental intrinsic functions
405         in initalization expressions and call previous.
406
407 2007-04-13  Tobias Burnus  <burnus@net-b.de>
408
409         PR fortran/31559
410         * primary.c (match_variable): External functions
411         are no variables.
412
413 2007-04-13  Paul Thomas  <pault@gcc.gnu.org>
414
415         PR fortran/31550
416         * trans-types.c (copy_dt_decls_ifequal): Do not get pointer
417         derived type components.
418
419 2007-04-13  Tobias Schlüter  <tobi@gcc.gnu.org>
420
421         PR fortran/18937
422         * resolve.c: Include obstack.h and bitmap.h.  New variable
423         labels_obstack.
424         (code_stack): Add tail and reachable_labels fields.
425         (reachable_labels): New function.
426         (resolve_branch): Rework to use new fields in code_stack.
427         (resolve_code): Call reachable_labels.
428         (resolve_codes): Allocate and free labels_obstack.
429
430 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
431
432         PR fortran/31250
433         * decl.c (match_char_spec): Move check for negative CHARACTER
434         length ...
435         * resolve.c (resolve_charlen): ... here.
436         (resolve_types): Resolve CHARACTER lengths earlier.
437
438 2007-04-12  Daniel Franke  <franke.daniel@gmail.com>
439
440         PR fortran/31234
441         * intrinsic.texi (RANDOM_SEED, RANDOM_NUMBER): New.
442
443 2007-04-12  Tobias Schlüter  <tobi@gcc.gnu.org>
444
445         PR fortran/31266
446         * primary.c (gfc_variable_attr): Don't copy string length if it
447         doesn't make sense.
448         * resolve.c (resolve_code): Clarify error message.
449
450         PR fortran/31471
451         * decl.c (gfc_match_end): Also check for construct name in END
452         FORALL and END WERE statements.
453         * match.c (match_case_eos): Use uppercase for statement name in
454         error message.
455         (match_elsewhere): Construct name may appear iff construct has a
456         name.
457
458         * trans-types.c: Update copyright years.  Reformat long comment
459         explaining array descriptor format.  Remove obsolete mention of
460         TYPE_SET.
461
462         * arith.c (gfc_arith_uplus): Rename to ...
463         (gfc_arith_identity): ... this.
464         (gfc_parentheses): New function.
465         (gfc_uplus): Adapt to renamed function.
466         * arith.h (gfc_parentheses): Add prototype.
467         * expr.c (gfc_copy_expr): Deal with INTRINSIC_PARENTHESES.
468         (simplifiy_intrinsic_op): Treat INTRINSIC_UPLUS separately from
469         INTRINSIC_PARENTHESES.
470
471 2007-04-12  Tobias Burnus  <burnus@net-b.de>
472
473         PR fortran/31472
474         * decl.c (match_attr_spec): Allow PRIVATE/PUBLIC
475         attribute in type definitions.
476         (gfc_match_private): Allow PRIVATE statement only
477         in specification part of modules.
478         (gfc_match_public): Ditto for PUBLIC.
479         (gfc_match_derived_decl): Allow PRIVATE/PUBLIC attribute only in
480         specificification part of modules.
481
482 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
483
484         PR fortran/31257
485         * intrinsic.c (add_functions): Add ref. to gfc_resolve_achar.
486         * intrinsic.h : Add prototype for gfc_resolve_achar.
487         * iresolve.c (gfc_resolve_achar): New function.
488
489 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
490
491         PR fortran/30880
492         * resolve.c (resolve_fl_variable): Set flag to 2 for automatic
493         arrays.  Make condition for automatic array error explicit.
494         If a dummy, no error on an INTENT(OUT) derived type.
495
496 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
497
498         PR fortran/30872
499         * expr.c (find_array_element): Correct arithmetic for rank > 1.
500
501 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
502
503         PR fortran/31222
504         * check.c (numeric_check): If an expresson has not got a type,
505         see if it is a symbol for which a default type applies.
506
507 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
508
509         PR fortran/31214
510         * trans-decl.c (gfc_get_symbol_decl): Allow unreferenced use
511         associated symbols.
512
513 2007-04-07  Paul Thomas  <pault@gcc.gnu.org>
514
515         PR fortran/31293
516         * symbol.c (gfc_check_function_type): New function.
517         * gfortran.h : Add prototype for previous.
518         * parse.c (parse_progunit): Call it after parsing specification
519         statements.
520
521 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
522
523         PR fortran/31483
524         * trans-expr.c (gfc_conv_function_call): Give a dummy
525         procedure the correct type if it has alternate returns.
526
527 2007-04-05  Paul Thomas  <pault@gcc.gnu.org>
528
529         PR fortran/31292
530         * decl.c (gfc_match_modproc): Go up to the top of the namespace
531         tree to find the module namespace for gfc_get_symbol.
532
533 2007-04-03  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
534
535         PR fortran/31304
536         * fortran/gfortran.h (gfc_charlen_int_kind): New prototype.
537         * fortran/trans-types.c (gfc_charlen_int_kind): New variable.
538         (gfc_init_types): Define gfc_charlen_int_kind. 
539         * fortran/trans.h (gfor_fndecl_string_repeat): Remove prototype.
540         * fortran/trans-decl.c (gfor_fndecl_string_repeat): Delete.
541         (gfc_build_intrinsic_function_decls): Don't set
542         gfor_fndecl_string_repeat.
543         * fortran/trans-intrinsic.c (gfc_conv_intrinsic_repeat): Rewrite
544         so that we don't have to call a library function.
545         * fortran/simplify.c (gfc_simplify_repeat): Perform the necessary
546         checks on the NCOPIES argument, and work with arbitrary size
547         arguments.
548
549 2007-03-31  Tobias Burnus  <burnus@net-b.de>
550
551         * intrinsic.c (add_functions): Fix name of dummy argument
552           for new_line and exit intrinsic.
553
554 2007-03-31  Paul Thomas  <pault@gcc.gnu.org>
555
556         PR fortran/31160
557         * gfortran.texi: Add a section for the %VAL, %REF and %LOC
558         extensions.
559
560 2007-03-30  Rafael Avila de Espindola  <espindola@google.com>
561
562         * trans-types.c (gfc_signed_or_unsigned_type): Remove.
563         (gfc_unsigned_type): Use get_signed_or_unsigned_type instead of
564         gfc_signed_or_unsigned_type.
565         (gfc_signed_type): Ditto.
566         * trans-types.h (gfc_signed_or_unsigned_type): Remove.
567         * f95-lang.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove.
568
569 2007-03-30  Tobias Schlüter  <tobi@gcc.gnu.org>
570
571         * symbol.c (gfc_find_gsymbol): Simplify, don't unconditionally
572         descend into all branches.
573
574 2007-03-29  Tobias Schlüter  <tobi@gcc.gnu.org>
575
576         * intrinsic.c (conv_name): Let gfc_get_string handle the format.
577         (find_conv): Compare pointers instead of calling strcmp.
578         (find_sym): Likewise, but ensure that the compared pointer is in
579         the global string table.
580
581 2007-03-28  Tobias Schlüter  <tobi@gcc.gnu.org>
582
583         * gfc-internals.texi: Fix output filename.  Merge type index into
584         concept index.  Start documentation of gfc_code structure.
585
586 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
587
588         * gfc-internals.texi: New file,
589         * Make-lang.in: Add rules to convert it to dvi, pdf, and info.
590
591 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
592  
593         * error.c (show_locus): Remove always-false test.
594
595 2007-03-26  Brooks Moses  <brooks.moses@codesourcery.com>
596
597         * lang.opt: Minor edits to descriptions.
598
599 2007-03-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
600
601         PR fortran/30877
602         * fortran/interface.c (check_operator_interface): Implement
603         the standard checks on user operators extending intrinsic operators.
604         * fortran/resolve.c (resolve_operator): If the ranks of operators
605         don't match, don't error out but try the user-defined ones first.
606
607 2007-03-24  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
608
609         PR fortran/30655
610         * expr.c (check_dimension): Fix logic of comparisons.
611
612 2007-03-24  Paul Thomas  <pault@gcc.gnu.org>
613
614         PR fortran/31215
615         * trans-expr.c (gfc_apply_interface_mapping_to_expr): Return
616         int result that is non-zero if the expression is the function
617         result.  Only the characteristics of the result expression
618         can be used in a procedure interface, so simplify LEN in situ
619         using its character length.
620
621         PR fortran/31209
622         PR fortran/31200
623         * trans-expr.c (gfc_conv_function_call): Do not use
624         gfc_conv_expr_reference for actual pointer function with formal
625         target because a temporary is created that does not transfer
626         the reference correctly.  Do not indirect formal pointer
627         functions since it is the function reference that is needed.
628
629 2007-03-24  Brooks Moses  <brooks.moses@codesourcery.com>
630
631         * gfortran.h: Edit comments on GFC_STD_*.
632
633 2007-03-23  Brooks Moses  <brooks.moses@codesourcery.com>
634
635         * invoke.texi: Misc. small typo fixes.
636         (-Wcharacter-truncation): Add.
637         (-Wnonstd-intrinsics): Correct spelling.
638         (-std=): Edit.
639         (-fintrinsic-modules-path): Add.
640
641 2007-03-23  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
642
643         PR fortran/30834
644         * arith.c (complex_pow): Rewrite to handle large power.
645         (gfc_arith_power): Handle large power in the real and integer
646         cases.
647
648 2007-03-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
649
650         PR fortran/31262
651         * trans-const.c (gfc_conv_mpz_to_tree): Allow integer constants
652         larger than twice the width of a HOST_WIDE_INT.
653
654 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
655
656         PR fortran/31193
657         * trans-intrinsic.c (gfc_size_in_bytes): Remove function.
658         (gfc_conv_intrinsic_array_transfer): Remove calls to previous.
659         Explicitly extract TREE_TYPEs for source and mold.  Use these
660         to calculate length of source and mold, except for characters,
661         where the se string_length is used.  For mold, the TREE_TYPE is
662         recalculated using gfc_get_character_type_len so that the
663         result is correctly cast for character literals and substrings.
664         Do not use gfc_typenode_for_spec for the final cast.
665
666 2007-03-22  Tobias Schlüter  <tobi@gcc.gnu.org>
667
668         PR fortran/20897
669         * decl.c (gfc_match_derived_decl): Reliably reject
670         'doubleprecision' and 'doublecomplex' as type names.
671
672 2007-03-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
673
674         PR fortran/31203
675         * trans-expr.c (gfc_trans_init_string_length): Length should
676         never be negative.
677         (gfc_conv_function_call): Likewise.
678
679 2007-03-18  Paul Thomas  <pault@gcc.gnu.org>
680
681         PR fortran/30531
682         PR fortran/31086
683         * symbo.c : Add gfc_derived_types.
684         (gfc_free_dt_list): Free derived type list gfc_derived_types.
685         (gfc_free_namespace): Remove call to gfc_free_dt_list.
686         (gfc_symbol_done_2): Call  gfc_free_dt_list.
687         * gfortran.h : Declare gfc_derived_types to be external. Remove
688         derived types field from gfc_namespace.
689         * resolve.c (resolve_fl_derived): Refer to gfc_derived types
690         rather than namespace derived_types.
691         (resolve_fntype): Remove special treatment for module
692         derived type functions.
693         * trans-types.c (gfc_get_derived_type): Remove search for like
694         derived types.  Finish by copying back end declaration to like
695         derived types in the derived type list gfc_derived_types.
696
697         2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
698
699         PR fortran/31120
700         * trans-expr.c (gfc_conv_powi): Make n argument unsigned hwi.
701         (gfc_conv_cst_int_power): Handle integer exponent with care,
702         since it might be too large for us.
703
704 2007-03-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
705
706         PR fortran/31184
707         * invoke.texi: Fix typo.
708
709 2007-03-16  Tobias Burnus  <burnus@net-b.de>
710
711         * trans-decl.c (gfc_generate_function_code): Use all arguments of
712           set_std.
713
714 2007-03-15  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
715
716         * gfortran.h (gfc_option_t): Add flag_backtrace field.
717         * lang.opt: Add -fbacktrace option.
718         * invoke.texi: Document the new option.
719         * trans-decl.c (gfc_build_builtin_function_decls): Add new
720         option to the call to set_std.
721         * options.c (gfc_init_options, gfc_handle_option): Handle the
722         new option.
723
724 2007-03-15  Tobias Burnus  <burnus@gcc.gnu.org>
725             Paul Thomas  <pault@gcc.gnu.org>
726
727         PR fortran/30922
728         * decl.c (gfc_match_import): If the parent of the current name-
729         space is null, try looking for an imported symbol in the parent
730         of the proc_name interface.
731         * resolve.c (resolve_fl_variable): Do not check for blocking of
732         host association by a same symbol, if the symbol is in an
733         interface body.
734
735 2007-03-15  Paul Thomas  <pault@gcc.gnu.org>
736
737         PR fortran/30879
738         * decl.c (match_data_constant): Before going on to try to match
739         a name, try to match a structure component.
740
741
742         PR fortran/30870
743         * resolve.c (resolve_actual_arglist): Do not reject a generic
744         actual argument if it has a same name specific interface.
745
746         PR fortran/31163
747         * trans-array.c (parse_interface): Do not nullify allocatable
748         components if the symbol has the saved attribute.
749
750 2007-03-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
751
752         * trans-array.c (gfc_trans_auto_array_allocation): Replace
753         fold(convert()) by fold_convert().
754         (gfc_duplicate_allocatable): Likewise.
755         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product): Use
756         build_int_cst instead of converting an integer_zero_node
757         to the final type.
758
759 2007-03-14  Jakub Jelinek  <jakub@redhat.com>
760
761         * module.c (mio_typespec): Don't look at ts->cl if not BT_CHARACTER.
762
763 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
764
765         PR fortran/30933
766         PR fortran/30948
767         PR fortran/30953
768         * intrinsics.texi (CHDIR): Fix argument names, note
769         that STATUS must be a default integer.
770         (CTIME): Fix argument names, note that RESULT must
771         be a default integer.
772         (EXIT): Note that STATUS must be a default integer.
773
774 2007-03-13  Brooks Moses  <brooks.moses@codesourcery.com>
775
776         PR fortran/28068
777         * intrinsic.texi: General whitespace cleanup, remove
778         comment about missing intrinsics.
779         (menu): Add lines for new entries listed below.
780         (ACOSH): Mention specific function DACOSH, correct
781         description phrasing.
782         (ASINH): Mention specific function DASINH, correct
783         description phrasing.
784         (ATANH): Mention specific function DATANH, correct
785         description phrasing.
786         (COS): Add index entry for CCOS.
787         (CPU_TIME): Correct "REAL" to "REAL(*)".
788         (EXP): Add index entry for CEXP.
789         (INT): Correct argument name to "A".
790         (INT2): New entry.
791         (INT8): New entry.
792         (LONG): New entry.
793         (MAX): Add index entries for specific variants.
794         (MCLOCK): New entry.
795         (MCLOCK8): New entry.
796         (SECNDS): Adjust to a more standard form.
797         (SECOND): New entry.
798         (TIME): Add cross-reference to MCLOCK.
799         (TIME8): Add cross-reference to MCLOCK8.
800
801 2007-03-11  Paul Thomas  <pault@gcc.gnu.org>
802
803         PR fortran/30883
804         * parse.c (parse_interface): Use the default types from the
805         formal namespace if a function or its result do not have a type
806         after parsing the specification statements.
807
808 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
809
810         * intrinsic.texi: (ICHAR) Improve internal I/O note.
811         (ACHAR): Reference it.
812         (CHAR): Reference it.
813         (IACHAR): Reference it.
814
815 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
816
817         * intrinsic.texi: (LINK) Document function form.
818         (RENAME): Likewise.
819         (SYMLNK): Likewise.
820         (SYSTEM): Likewise.
821         (UNLINK): Likewise.
822
823 2007-03-08  Brooks Moses  <brooks.moses@codesourcery.com>
824
825         * intrinsic.texi: minor typo fixes, removed prologue.
826         (FSEEK): moved to correct place in alphabetical order.
827
828 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
829
830         PR fortran/30947
831         * check.c (gfc_check_alarm_sub): Added check for default integer 
832         kind of status argument.
833         * iresolve.c (gfc_resolve_alarm_sub): Removed conversion of 
834         status argument.
835         * intrinsic.texi (ALARM): Extended documentation.
836
837 2007-03-08  Daniel Franke  <franke.daniel@gmail.com>
838
839         * intrinsic.texi (GERROR, ISATTY, TTYNAM): New.
840         (ABORT, FLUSH, FNUM, IRAND, MALLOC, SIGNAL, SRAND): Fixed typo.
841         * intrinsic.c (add_subroutines): Adjusted dummy argument names 
842         of GERROR and TTYNAM.
843
844 2007-07-08  Tobias Burnus  <burnus@net-b.de>
845
846         * module.c (gfc_match_use): Support renaming of operators
847         in USE statements.
848         * gfortran.texi (Fortran 2003 Status): Document support of
849         renaming of operators.
850
851 2007-07-08  Tobias Burnus  <burnus@net-b.de>
852
853         PR fortran/30973
854         * module.c (read_module): Always import module name as symbol.
855         (gfc_match_use): Disallow module name in the only clause of
856         a use statement.
857
858 2007-03-08  Paul Thomas  <pault@gcc.gnu.org>
859
860         PR fortran/31011
861         * expr.c (find_array_section): Correct arithmetic for section
862         size.
863
864 2007-03-07  Brooks Moses  <brooks.moses@codesourcery.com>
865
866         * iresolve.c (gfc_resolve_ishftc): Correct s_kind value.
867
868 2007-03-06  Daniel Franke  <franke.daniel@gmail.com>
869
870         PR documentation/30950
871         * intrinsic.texi (AND, CPU_TIME): Fix dummy argument names.
872         (FREE): Fix call syntax.
873
874 2007-03-06  Brooks Moses  <brooks.moses@codesourcery.com>
875
876         * intrinsic.texi: Limit column widths to a total of .85.
877
878 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
879
880         * gfortran.texi (GFortran and G77): Rewrite completely.
881
882 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
883
884         * match.c (gfc_match_name): Expanded comment.
885
886 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
887
888         * gfortran.texi (Old-style kind specifications): Document
889         special handling of old-style kind specifiers for COMPLEX.
890         * decl.c (gfc_match_old_kind_spec): Document kind/bytesize
891         assumptions for COMPLEX in comment.
892
893 2007-03-05  Brooks Moses  <brooks.moses@codesourcery.com>
894
895         PR 31050
896         * gfortranspec.c (lang_specific_driver): Update program
897         name and copyright date.
898
899 2007-03-03  Paul Thomas  <pault@gcc.gnu.org>
900
901         PR fortran/30882
902         * check.c (dim_rank_check): The shape of subsections of
903         assumed-size arrays is known.
904
905 2007-03-02  Paul Thomas  <pault@gcc.gnu.org>
906             Tobias Burnus  <burnus@net-b.de>
907
908         PR fortran/30873
909         * decl.c (gfc_match_entry): Remove erroneous entry result check.
910
911 2007-03-01  Brooks Moses  <brooks.moses@codesourcery.com>
912
913         * Make-lang.in: Add install-pdf target as copied from
914         automake v1.10 rules.
915
916 2007-03-01  Tobias Burnus  <burnus@net-b.de>
917
918         PR fortran/30865
919         * trans-intrinsic.c (gfc_conv_intrinsic_size): Compare pointers.
920
921 2007-02-28  Tobias Burnus  <burnus@net-b.de>
922             Paul Thomas  <pault@gcc.gnu.org>
923
924         PR fortran/30888
925         PR fortran/30887
926         * resolve.c (resolve_actual_arglist): Allow by-value
927         arguments and non-default-kind for %VAL().
928         * trans-expr.c (conv_arglist_function): Allow
929         non-default-kind for %VAL().
930
931 2007-02-28  Tobias Burnus  <burnus@net-b.de>
932
933         PR fortran/30968
934         * primary.c (next_string_char): Correct reading a character
935         after the delimiter.
936         (match_string_constant): Print warning message only once.
937
938 2007-02-27  Richard Guenther  <rguenther@suse.de>
939
940         * trans-array.c (structure_alloc_comps): Use correct type
941         for null pointer constant.
942
943 2007-02-26  Brooks Moses  <brooks.moses@codesourcery.com>
944
945         * gfortran.texi: Standardize title page, remove version number
946         from copyright page.
947
948 2007-02-26  Thomas Koenig  <Thomas.Koenig@online.de>
949             Paul Thomas  <pault@gcc.gnu.org>
950
951         PR fortran/30865
952         * trans-intrinsic.c (gfc_conv_intrinsic_size):
953         If dim is an optional argument, check for its
954         presence and call size0 or size1, respectively.
955
956 2007-02-23  Paul Thomas <pault@gcc.gnu.org>
957
958         PR fortran/30660
959         * resolve.c (has_default_initializer): New function.
960         (resolve_fl_variable): Call has_default_initializer to determine if
961         the derived type has a default initializer to its ultimate
962         components.
963
964
965 2007-02-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
966
967         * options.c (set_default_std_flags): New function to consolidate
968         setting the flags.
969         (gfc_init_options): Use new function.
970         (gfc_handle_option): Use new function.
971
972 2007-02-22  Brooks Moses  <brooks.moses@codesourcery.com>
973
974         * gfortran.texi (Old-style kind specifications): Document
975         special handling of old-style kind specifiers for COMPLEX.
976         * decl.c (gfc_match_old_kind_spec): Documented kind/bytesize
977         assumptions in comment.
978
979 2007-02-21  Bernhard Fischer  <aldot@gcc.gnu.org>
980
981         * parse.c (next_free): Gooble spaces after OpenMP sentinel.
982
983 2007-02-20  Thomas Koenig  <Thomas.Koenig@online.de>
984
985         PR fortran/30869
986         * match.c (gfc_match_iterator): Remove conflict between
987         loop variable and pointer.
988
989 2007-02-20  Tobias Burnus  <burnus@net-b.de>
990
991         PR fortran/30522
992         * symbol.c (gfc_add_volatile): Allow to set VOLATILE
993           attribute for host-associated variables.
994         * gfortran.h (symbol_attribute): Save namespace
995           where VOLATILE has been set.
996         * trans-decl.c (gfc_finish_var_decl): Move variable
997           declaration to the top.
998
999 2007-02-20  Tobias Burnus  <burnus@net-b.de>
1000
1001         PR fortran/30783
1002         * resolve.c (resolve_symbol): Add character dummy VALUE check.
1003
1004 2007-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
1005
1006         PR libfortran/30533
1007         * fortran/iresolve.c (gfc_resolve_maxloc): Remove coercion of
1008         argument to default integer.
1009         (gfc_resolve_minloc): Likewise.
1010
1011 2007-02-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1012
1013         PR fortran/30681
1014         * options.c (gfc_init_options): Relax warning level for obsolescent.
1015         * match.c (match_arithmetic_if): Change to obsolescent from deleted.
1016         (gfc_match_if): Same.
1017
1018 2007-02-18  Roger Sayle  <roger@eyesopen.com>
1019
1020         * trans-array.c (gfc_build_constant_array_constructor): When the
1021         shape of the constructor is known, use that to construct the
1022         gfc_array_spec.
1023         (gfc_trans_constant_array_constructor): Initialize the "info"
1024         information for all of the dimensions of the array constructor.
1025         (constant_array_constructor_loop_size): New function.
1026         (gfc_trans_array_constructor): Use it to determine whether a
1027         loop is suitable for "constant array constructor" optimization.
1028
1029         * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Use fold_build2
1030         instead of build2, to avoid conditions like "(a != b) != 0".
1031
1032 2007-02-18  Roger Sayle  <roger@eyesopen.com>
1033             Paul Thomas <pault@gcc.gnu.org>
1034
1035         PR fortran/30400
1036         * match.c (match_forall_iterator): Use gfc_match_expr instead
1037         of gfc_match_variable to match the iterator variable.  Return
1038         MATCH_NO if not a variable.  Remove the reset of the symbol's
1039         flavor in cleanup.
1040
1041 2007-02-16  Tobias Burnus  <burnus@net-b.de>
1042
1043         PR fortran/30793
1044         * trans-decl.c (gfc_generate_function_code): Do not initialize
1045         pointers to derived components.
1046
1047 2007-02-15  Sandra Loosemore  <sandra@codesourcery.com>
1048             Brooks Moses  <brooks.moses@codesourcery.com>
1049             Lee Millward  <lee.millward@codesourcery.com>
1050
1051         * trans-expr.c (gfc_conv_power_op): Use build_call_expr.
1052         (gfc_conv_string_tmp): Likewise.
1053         (gfc_conv_concat_op): Likewise.
1054         (gfc_build_compare_string): Likewise.
1055         (gfc_conv_function_call): Use build_call_list instead of build3.
1056
1057         * trans-array.c (gfc_trans_allocate_array_storage): Use
1058         build_call_expr.
1059         (gfc_grow_array): Likewise.
1060         (gfc_trans_array_ctor_element): Likewise.
1061         (gfc_trans_array_constructor_value): Likewise.
1062         (gfc_array_allocate): Likewise.
1063         (gfc_array_deallocate): Likewise.
1064         (gfc_trans_auto_array_allocation): Likewise.
1065         (gfc_trans_dummy_array_bias): Likewise.
1066         (gfc_conv_array_parameter): Likewise.
1067         (gfc_trans_dealloc_allocated): Likewise.
1068         (gfc_duplicate_allocatable): Likewise.
1069
1070         * trans-openmp.c (gfc_trans_omp_barrier): Use build_call_expr.
1071         (gfc_trans_omp_flush): Likewise.
1072
1073         * trans-stmt.c (gfc_conv_elementel_dependencies): Use build_call_expr.
1074         (gfc_trans_pause): Likewise.
1075         (gfc_trans_stop): Likewise.
1076         (gfc_trans_character_select): Likewise.
1077         (gfc_do_allocate): Likewise.
1078         (gfc_trans_assign_need_temp): Likewise.
1079         (gfc_trans_pointer_assign_need_temp): Likewise.
1080         (gfc_trans_forall_1): Likewise.
1081         (gfc_trans_where_2): Likewise.
1082         (gfc_trans_allocate): Likewise.
1083         (gfc_trans_deallocate): Likewise.
1084
1085         * trans.c (gfc_trans_runtime_check): Use build_call_expr.
1086
1087         * trans-io.c (gfc_trans_open): Use build_call_expr.
1088         (gfc_trans_close): Likewise.
1089         (build_filepos): Likewise.
1090         (gfc_trans_inquire): Likewise.
1091         (NML_FIRST_ARG): Delete.
1092         (NML_ADD_ARG): Delete.
1093         (transfer_namelist_element): Use build_call_expr.
1094         (build_dt): Likewise.
1095         (gfc_trans_dt_end): Likewise.
1096         (transfer_expr): Likewise.
1097         (transfer_array-desc): Likewise.
1098
1099         * trans-decl.c (gfc_generate_function_code): Use build_call_expr.
1100         (gfc_generate_constructors): Likewise.
1101
1102         * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Use build_call_expr.
1103         (gfc_conv_intrinsic_fdate): Likewise.
1104         (gfc_conv_intrinsic_ttynam): Likewise.
1105         (gfc_conv_intrinsic_array_transfer): Likewise.
1106         (gfc_conv_associated): Likewise.
1107         (gfc_conv_intrinsic_si_kind): Likewise.
1108         (gfc_conv_intrinsic_trim): Likewise.
1109         (gfc_conv_intrinsic_repeat: Likewise.
1110         (gfc_conv_intrinsic_iargc): Likewise.
1111
1112 2007-02-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1113
1114         PR fortran/30779
1115         * scanner.c (gfc_next_char_literal): Add check for end of file after
1116         call to advance_line.
1117
1118 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1119
1120         PR fortran/30799
1121         * primary.c (match_logical_constant): Return MATCH_ERROR on invalid
1122         kind.
1123
1124 2007-02-14  Steven G. Kargl  <kargl@gcc.gnu.org>
1125
1126         * misc.c (gfc_typename): Fix potential buffer overflow.
1127
1128 2007-02-13  Paul Thomas  <pault@gcc.gnu.org>
1129
1130         PR fortran/30554
1131         * module.c (read_module): Set pointer_info to referenced if the
1132         symbol has no namespace.
1133
1134 2007-02-12  Nick Clifton  <nickc@redhat.com>
1135
1136         * lang.opt: Add Warning attribute to warning options.
1137
1138 2007-02-11  Daniel Franke  <franke.daniel@gmail.com>
1139
1140         * intrinsic.texi (HOSTNM): Fix typographical error in syntax.
1141         (SLEEP): Added section and documentation.
1142
1143 2007-02-11  Tobias Schlüter  <tobi@gcc.gnu.org>
1144
1145         PR fortran/30478
1146         * decl.c (add_init_expr_to_sym): Remove ENUM specific code.
1147         (variable_decl): Likewise.  Rewrap comment.
1148         (match_attr_spec): Remove ENUM specific code.
1149         (gfc_match_enum): Fix typo in error message.
1150         (enumerator_decl): New function.
1151         (gfc_match_enumerator_def): Use enumerator_decl instead of
1152         variable_decl.  Adapt code accordingly.
1153
1154 2007-02-11  Paul Thomas  <pault@gcc.gnu.org>
1155
1156         PR fortran/30554
1157         * module.c (find_symtree_for_symbol): New function to return
1158         a symtree that is not a "unique symtree" given a symbol.
1159         (read_module): Do not automatically set pointer_info to
1160         referenced because this inhibits the generation of a unique
1161         symtree.  Recycle the existing symtree if possible by calling
1162         find_symtree_for_symbol.
1163
1164         PR fortran/30319
1165         * decl.c (add_init_expr_to_sym): Make new charlen for an array
1166         constructor initializer.
1167
1168 2007-02-10  Richard Henderson  <rth@redhat.com>, Jakub Jelinek  <jakub@redhat.com>
1169
1170         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
1171         and __emutls_register_common.
1172         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
1173         * trans-common.c (build_common_decl): Don't check have_tls.
1174         * trans-decl.c (gfc_finish_var_decl): Likewise.
1175         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
1176         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
1177
1178 2007-02-09  Tobias Burnus  <burnus@net-b.de>
1179
1180         PR fortran/30512
1181         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc,
1182           gfc_conv_intrinsic_minmaxval): Use HUGE-1 for most negative integer.
1183
1184 2007-02-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1185
1186         PR fortran/30720
1187         * trans-array.c (gfc_trans_create_temp_array): Remove use of the
1188         function argument. Always generate code for negative extent.
1189         Simplify said code.
1190         * trans-array.h (gfc_trans_create_temp_array): Change prototype.
1191         * trans-expr.c (gfc_conv_function_call): Remove use of last argument
1192         of gfc_trans_create_temp_array.
1193         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Likewise.
1194         * trans-stmt.c (gfc_conv_elemental_dependencies): Likewise.
1195
1196 2007-02-08  Roger Sayle  <roger@eyesopen.com>
1197
1198         * trans-stmt.c (gfc_trans_forall_1): Optimize the cases where the
1199         mask expression is a compile-time constant (".true." or ".false.").
1200
1201 2007-02-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1202
1203         PR fortran/30611
1204         * trans-intrinsic.c (gfc_conv_intrinsic_repeat): Evaluate
1205         arguments only once. Generate check that NCOPIES argument is not
1206         negative.
1207
1208 2007-02-04  Steven G. Kargl <kargl@gcc.gnu.org>
1209
1210         PR fortran/30605
1211         * fortran/invoke.texi: Update documentation.
1212         * fortran/options.c (gfc_post_options): Deal with tabs with -std=f2003
1213         and -pedantic.
1214
1215 2007-02-03  Kazu Hirata  <kazu@codesourcery.com>
1216
1217         * trans-array.c: Fix a comment typo.
1218
1219 2007-02-03  Paul Thomas  <pault@gcc.gnu.org>
1220
1221         PR fortran/30514
1222         * array.c (match_array_element_spec): If the length of an array is
1223         negative, adjust the upper limit to make it zero length.
1224
1225         PR fortran/30660
1226         * resolve.c (pure_function, resolve_function): Initialize name to
1227         null to clear up build warnings.
1228         (resolve_fl_variable): Look at components explicitly to check for
1229         default initializer, rather than using gfc_default_initializer.
1230
1231 2007-02-02  Steven G. Kargl <kargl@gcc.gnu.org>
1232
1233         PR fortran/30683
1234         * resolve.c (resolve_generic_f): Check for non-NULL sym.
1235
1236 2007-02-02  Roger Sayle  <roger@eyesopen.com>
1237
1238         * trans.c (gfc_build_array_ref): Use STRIP_TYPE_NOPS to eliminate
1239         NON_LVALUE_EXPR nodes and useless type conversions.
1240
1241 2007-02-02  Paul Thomas  <pault@gcc.gnu.org>
1242
1243         PR fortran/30284
1244         PR fortran/30626
1245         * trans-expr.c (gfc_conv_aliased_arg): Remove static attribute
1246         from function and make sure that substring lengths are
1247         translated.
1248         (is_aliased_array): Remove static attribute.
1249         * trans.c : Add prototypes for gfc_conv_aliased_arg and
1250         is_aliased_array.
1251         * trans-io.c (set_internal_unit): Add the post block to the
1252         arguments of the function.  Use is_aliased_array to check if
1253         temporary is needed; if so call gfc_conv_aliased_arg.
1254         (build_dt): Pass the post block to set_internal_unit and
1255         add to the block after all io activiy is done.
1256
1257 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1258
1259         * trans-array.c (gfc_conv_expr_descriptor): We don't need to use
1260         a temporary array to pass a constant non-character array constructor.
1261         Generalize the descriptor generation code to handle scalarizer
1262         "info" without an array reference.
1263
1264 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1265
1266         * dependency.c (gfc_check_dependency) <EXPR_ARRAY>: Implement
1267         dependency checking for array constructors.
1268
1269 2007-02-01  Roger Sayle  <roger@eyesopen.com>
1270
1271         * trans-stmt.c (compute_overall_iter_number): Document function
1272         arguments.  Generalize "unconditional forall nest with constant
1273         bounds" optimization to eliminate unconditional inner loops with
1274         constant bounds.
1275
1276 2007-01-31  Tobias Burnus  <burnus@net-b.de>
1277
1278         PR fortran/30520
1279         * interface.c (compare_actual_formal): Check conformance between
1280           actual and VOLATILE dummy arguments.
1281         * symbol.c (gfc_add_volatile): Allow setting of VOLATILE
1282           multiple times in different scopes.
1283         * decl.c (gfc_match_volatile): Search symbol in host association.
1284
1285 2007-01-31  Kazu Hirata  <kazu@codesourcery.com>
1286
1287         * simplify.c, trans-array.c: Fix comment typos.
1288
1289 2007-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
1290
1291         * invoke.texi (Code Gen Options): Fix abbreviation typo.
1292         * intrinsic.texi (ACCESS, LSHIFT, RSHIFT): Fix typos.
1293
1294 2007-01-30  Steve Ellcey  <sje@cup.hp.com>
1295
1296         PR fortran/30432
1297         * trans-types.c (gfc_get_function_type): Do not add void_type_node
1298         to empty arg list.
1299         * trans-decl.c (create_function_arglist): Change assert.
1300
1301 2007-01-29  Paul Thomas  <pault@gcc.gnu.org>
1302
1303         PR fortran/30554
1304         * module.c (read_module): If a symbol is excluded by an ONLY
1305         clause, check to see if there is a symtree already loaded. If
1306         so, attach the symtree to the pointer_info.
1307
1308 2007-01-28  Thomas Koenig  <Thomas.Koenig@online.de>
1309
1310         PR libfortran/30389
1311         * gfortran.h: Remove gfc_simplify_init_1.
1312         * arith.h: Remove third argument from gfc_compare_string.
1313         * arith.c (gfc_compare_expression): Remove third argument
1314         from call to gfc_compare_string.
1315         (gfc_compare_string): Remove third argument xcoll_table.
1316         Remove use of xcoll_table.
1317         * misc.c (gfc_init_1): Remove call to gfc_simplify_init_1.
1318         * simplify.c (ascii_table): Remove.
1319         (xascii_table): Likewise.
1320         (gfc_simplify_achar): ICE if extract_int fails.  Remove use of
1321         ascii_table.  Warn if -Wsurprising and value < 0 or > 127.
1322         (gfc_simplify_char): ICE if extract_int fails. Error if
1323         value < 0 or value > 255.
1324         (gfc_simplify_iachar): Remove use of xascii_table.
1325         Char values outside of 0..255 are an ICE.
1326         (gfc_simplify_lge): Remove use of xascii_table.
1327         (gfc_simplify_lgt): Likewise.
1328         (gfc_simplify_lle): Likewise.
1329         (gfc_simplify_llt): Likewise.
1330         (invert_table): Remove.
1331         (gfc_simplify_init_1): Remove.
1332
1333 2007-01-27  Roger Sayle  <roger@eyesopen.com>
1334
1335         * trans-stmt.c (forall_info): Replace the next_nest and outer
1336         fields that previously implemented a doubly-linked list with a
1337         single prev_nest field (singly-linked list).
1338         (gfc_trans_nested_forall_loop): The nested_forall_info argument
1339         now denotes the innermost FORALL in the loop nest.
1340         (compute_overall_iter_number): Use prev_nest instead of next_nest.
1341         (gfc_trans_forall_1): Link/cons the new "info" to the head of the
1342         nested_forall_info linked list.  Free the current "info" when done.
1343
1344 2007-01-27  Paul Thomas  <pault@gcc.gnu.org>
1345
1346         PR fortran/30407
1347         * trans-expr.c (gfc_conv_operator_assign): New function.
1348         * trans.h : Add prototype for gfc_conv_operator_assign.
1349         * trans-stmt.c (gfc_trans_where_assign): Add a gfc_symbol for
1350         a potential operator assignment subroutine.  If it is non-NULL
1351         call gfc_conv_operator_assign instead of the first assignment.
1352         ( gfc_trans_where_2): In the case of an operator assignment,
1353         extract the argument expressions from the code for the
1354         subroutine call and pass the symbol to gfc_trans_where_assign.
1355         resolve.c (resolve_where, gfc_resolve_where_code_in_forall,
1356         gfc_resolve_forall_body): Resolve the subroutine call for
1357         operator assignments.
1358
1359 2007-01-26  Steven Bosscher  <stevenb.gcc@gmail.com>
1360             Steven G. Kargl <kargl@gcc.gnu.org>
1361
1362         PR fortran/30278
1363         * fortran/io.c (next_char): Deal with backslash escaped characters.
1364         Issue warnings in non -std=gnu cases.
1365         * fortran/primary.c (next_string_char): Issue warnings in non
1366
1367 2007-01-26  Tobias Burnus  <burnus@net-b.de>
1368
1369         * lang-specs.h: Add support for .f03 and .F03 extensions.
1370         * gfortran.texi: Document .f03 extension.
1371         * options.c (form_from_filename): Recognize .f03.
1372
1373 2007-01-25  Manuel Lopez-Ibanez  <manu@gcc.gnu.org>
1374
1375         PR fortran/30437
1376         * lang.opt (Wall): Remove RejectNegative.
1377         * options.c (gfc_handle_option): Wall can be disabled.
1378         (set_Wall): Add a parameter for disabling Wall.
1379         
1380 2007-01-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1381
1382         PR fortran/30532
1383         * scanner.c (load_line): Remove check fot ctrl-z and don't gobble.
1384         
1385 2007-01-23  Paul Thomas  <pault@gcc.gnu.org>
1386
1387         PR fortran/30481
1388         * match.c (gfc_match_namelist): Add check for assumed size character
1389         in namelist and provide error if found.
1390
1391 2007-01-21  Brooks Moses  <brooks.moses@codesourcery.com>
1392
1393         * intrinsic.texi (ACHAR): Added cross-references.
1394         (CHAR): Put cross-references in alphabetical order.
1395         (IACHAR): Added cross-references.
1396         (ICHAR): Added cross-references.
1397
1398 2007-01-20  Brooks Moses  <brooks.moses@codesourcery.com>
1399
1400         * intrinsic.texi: Edited all "Syntax" examples to a consistent form.
1401         (MAXVAL): Corrected description of result characteristics.
1402         (MINVAL): Same.
1403         (UMASK): Added documentation.
1404
1405 2007-01-20  Steven G. Kargl  <kargl@gcc.gnu.org>
1406
1407         * openmp.c, matchexp.c, module.c, scanner.c, resolve.c, st.c,
1408         parse.c, primary.c, options.c, misc.c, simplify.c: Next installment
1409         in the massive whitespace patch.
1410
1411 2007-01-20  Roger Sayle  <roger@eyesopen.com>
1412
1413         * module.c (mio_array_ref): The dimen_type fields of an array ref
1414         are an enumerated type and can't be read/written directly with a
1415         call to mio_integer.  Instead loop over and cast each element.
1416
1417 2007-01-20  Roger Sayle  <roger@eyesopen.com>
1418
1419         * dependency.c (gfc_full_array_ref_p): Check that ref->next is NULL,
1420         i.e. that the ARRAY_REF doesn't mention components.
1421         * trans-array.c (gfc_constant_array_constructor_p): Export external
1422         function renamed from constant_array_constructor_p.
1423         (gfc_build_constant_array_constructor): Export.
1424         (gfc_trans_array_constructor): Update call to the renamed function
1425         constant_array_constructor_p.
1426         * trans-array.h (gfc_constant_array_constructor_p): Prototype here.
1427         (gfc_build_constant_array_constructor): Likewise.
1428         * trans-expr.c (gfc_build_memcpy_call): New helper function split
1429         out from gfc_trans_array_copy.
1430         (gfc_trans_array_copy): Use gfc_build_memcpy_call.
1431         (gfc_trans_array_constructor_copy): New function to optimize
1432         assigning an entire array from a constant array constructor.
1433         (gfc_trans_assignment): Call gfc_trans_array_constructor_copy
1434         when appropriate.
1435
1436 2007-01-20  Roger Sayle  <roger@eyesopen.com>
1437
1438         * trans-intrinsic.c (gfc_conv_intrinsic_sign): New branchless
1439         implementation for the SIGN intrinsic with integral operands.
1440         (gfc_conv_intrinsic_minmax): Fix whitespace.
1441
1442 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1443
1444         * gfortran.h (gfc_options_t): Add flag_allow_leading_underscore.
1445         * lang.opt: Add -fallow-leading-underscore.
1446         * match.c (gfc_match_name): Allow leading underscore in symbol
1447         name if -fallow-leading-underscore is used.
1448         * symbol.c (gfc_get_default_type): Add special case for symbol
1449         names beginning with an underscore.
1450         * trans-decl.c (gfc_get_extern_function_decl,
1451         gfc_build_intrinsic_function_decls): Add _gfortran prefix to
1452         library symbols selected_int_kind, selected_real_kind and 
1453         all specifics.
1454         * options.c (gfc_init_options, gfc_handle_option): Handle the
1455         new -fallow-leading-underscore option.
1456
1457 2007-01-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1458
1459         PR fortran/30446
1460         * options.c (gfc_handle_module_path_options): Path used in -J
1461         option is now added to the module search path.
1462
1463 2007-01-20  Richard Guenther  <rguenther@suse.de>
1464
1465         PR fortran/30223
1466         * f95-lang.c (gfc_init_builtin_functions): Provide cbrt and
1467         cexpi builtins if we have TARGET_C99_FUNCTIONS.  Provide
1468         sincos builtins if the target has sincos.
1469
1470 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
1471
1472         * intrinsic.texi (MATMUL): Corrected a typo.
1473         (MAX): Separated @var arguments.
1474         (MIN): Separated @var arguments.
1475
1476 2007-01-19  Brooks Moses  <brooks.moses@codesourcery.com>
1477
1478         * intrinsic.texi: general whitespace cleanup.
1479         (menu): Added TIME8, removed UNMASK.
1480         (AINT): Clarified argument requirement.
1481         (ANINT): Clarified argument requirement.
1482         (CEILING): Clarified argument requirement.
1483         (CHAR): Clarified argument requirement.
1484         (CMPLX): Clarified argument requirement.
1485         (DCMPLX): Clarified argument requirement.
1486         (FGET): Line rewrapping.
1487         (FLOOR): Clarified argument requirement.
1488         (GMTIME): Added documentation.
1489         (IAND): Added cross-reference.
1490         (IBCLR): Added cross-reference.
1491         (IBSET): Added cross-reference.
1492         (IEOR): Added cross-reference.
1493         (INT): Collapsed examples, clarified argument requirement.
1494         (IOR): Added cross-references.
1495         (LEN_TRIM): Corrected result kind.
1496         (LINK): Added cross-reference.
1497         (LLT): Removed "documentation pending".
1498         (LOGICAL): Added documentation.
1499         (LSHIFT): Added documentation.
1500         (LTIME): Added documentation.
1501         (MATMUL): Added documentation.
1502         (MAX): Added documentation.
1503         (MAXLOC): Added documentation.
1504         (MAXVAL): Added documentation.
1505         (MERGE): Added documentation.
1506         (MIN): Added documentation.
1507         (MINLOC): Added documentation.
1508         (MINVAL): Added documentation.
1509         (MVBITS): Moved to correct place, added documentation.
1510         (NOT): Added documentation.
1511         (PERROR): Added documentation.
1512         (RAN): Moved to correct place, added documentation.
1513         (REAL): Clarified argument requirement.
1514         (RENAME): Added documentation.
1515         (RSHIFT): Clarified argument requirement.
1516         (SIGN): Corrected table specification.
1517         (SYMLNK): Added documentation.
1518         (SYSTEM): Added documentation.
1519         (TIME): Added documentation.
1520         (TIME8): Added section and documentation.
1521         (UNMASK): Removed erroneous section.
1522
1523 2007-01-18  H.J. Lu  <hongjiu.lu@intel.com>
1524
1525         * trans-stmt.c (compute_overall_iter_number): Fix a typo.
1526
1527 2007-01-18  Roger Sayle  <roger@eyesopen.com>
1528
1529         * trans-expr.c (copyable_array_p): Consider user derived types without
1530         allocatable components to be copyable.
1531
1532 2007-01-18  Roger Sayle  <roger@eyesopen.com>
1533
1534         * trans-stmt.c (compute_overall_iter_number): Enhance to precompute
1535         the number of interations in unconditional FORALL nests with constant
1536         bounds.
1537
1538 2007-01-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1539             Tobias Burnus  <burnus@net-b.de>
1540
1541         PR libfortran/29649
1542         * gfortran.h (gfc_option_t): Add flag_dump_core.
1543         * lang.opt: Add -fdump-core option.
1544         * invoke.texi: Document the new options.
1545         * trans-decl.c (gfc_build_builtin_function_decls): Add new
1546           options to the call to set_std.
1547         * options.c (gfc_init_options, gfc_handle_option): Set the
1548           new options.
1549
1550 2007-01-17  Paul Thomas  <pault@gcc.gnu.org>
1551
1552         PR fortran/30476
1553         * module.c (load_generic_interfaces): Make the marking of the
1554         symbol as ambiguous conditional on the module names being
1555         different.
1556         (write_generic): Ensure that the generic interface has a
1557         non-NULL module field.
1558
1559 2007-01-16  Roger Sayle  <roger@eyesopen.com>
1560
1561         PR fortran/30404
1562         * trans-stmt.c (forall_info): Remove pmask field.
1563         (gfc_trans_forall_loop): Remove NVAR argument, instead assume that
1564         NVAR covers all the interation variables in the current forall_info.
1565         Add an extra OUTER parameter, which specified the loop header in
1566         which to place mask index initializations.
1567         (gfc_trans_nested_forall_loop): Remove NEST_FLAG argument.
1568         Change the semantics of MASK_FLAG to only control the mask in the
1569         innermost loop.
1570         (compute_overall_iter_number): Optimize the trivial case of a
1571         top-level loop having a constant number of iterations.  Update
1572         call to gfc_trans_nested_forall_loop.  Calculate the number of
1573         times the inner loop will be executed, not to size of the 
1574         iteration space.
1575         (allocate_temp_for_forall_nest_1): Reuse SIZE as BYTESIZE when
1576         sizeof(type) == 1.  Tidy up.
1577         (gfc_trans_assign_need_temp): Remove NEST_FLAG argument from calls
1578         to gfc_trans_nested_forall_loop.
1579         (gfc_trans_pointer_assign_need_temp): Likewise.
1580         (gfc_trans_forall_1): Remove unused BYTESIZE, TMPVAR, SIZEVAR and
1581         LENVAR local variables.  Split mask allocation into a separate
1582         hunk/pass from mask population.  Use allocate_temp_for_forall_nest
1583         to allocate the FORALL mask with the correct size.  Update calls
1584         to gfc_trans_nested_forall_loop.
1585         (gfc_evaluate_where_mask): Update call to
1586         gfc_trans_nested_forall_loop.
1587         (gfc_trans_where_2): Likewise.
1588
1589 2007-01-15  Paul Thomas  <pault@gcc.gnu.org>
1590
1591         PR fortran/28172
1592         * trans-stmt.c (gfc_trans_call): If it does not have one, get
1593         a backend_decl for an alternate return.
1594
1595         PR fortran/29389
1596         * resolve.c (pure_function): Statement functions are pure. Note
1597         that this will have to recurse to comply fully with F95.
1598
1599         PR fortran/29712
1600         * resolve.c (resolve_function): Only a reference to the final
1601         dimension of an assumed size array is an error in an inquiry
1602         function.
1603
1604         PR fortran/30283
1605         * resolve.c (resolve_function): Make sure that the function
1606         expression has a type.
1607
1608 2007-01-14  Paul Thomas  <pault@gcc.gnu.org>
1609
1610         PR fortran/30410
1611         * trans-decl.c (gfc_sym_mangled_function_id): Module, external
1612         symbols must not have the module name prepended.
1613
1614 2007-01-11  Thomas Koenig  <Thomas.Koenig@online.de>
1615
1616         PR libfortran/30415
1617         * iresolve.c (gfc_resolve_maxloc): If the rank
1618         of the return array is nonzero and we process an
1619         integer array smaller than default kind, coerce
1620         the array to default integer.
1621         * iresolve.c (gfc_resolve_minloc): Likewise.
1622
1623 2007-01-11  Brooks Moses  <brooks.moses@codesourcery.com>
1624
1625         * simplify.c: Update copyright to 2007.
1626         * scanner.c: Same.
1627
1628 2007-01-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1629
1630         PR fortran/30430
1631         * scanner.c (gfc_release_include_path): Free gfc_option.module_dir
1632         only once!
1633
1634 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
1635
1636         * simplify.c (gfc_simplify_ibclr): Fix POS comparison.
1637         (gfc_simplify_ibset): Same.
1638
1639 2007-01-09  Brooks Moses  <brooks.moses@codesourcery.com>
1640
1641         PR 30381
1642         PR 30420
1643         * simplify.c (convert_mpz_to_unsigned): New function.
1644         (convert_mpz_to_signed): New function, largely based on
1645         twos_complement().
1646         (twos_complement): Removed.
1647         (gfc_simplify_ibclr): Add conversions to and from an
1648         unsigned representation before bit-twiddling.
1649         (gfc_simplify_ibset): Same.
1650         (gfc_simplify_ishftc): Add checks for overly large
1651         constant arguments, only check the third argument if
1652         it's present, carry over high bits into the result as
1653         appropriate, and perform the final conversion back to
1654         a signed representation using the correct sign bit.
1655         (gfc_simplify_not): Removed unnecessary masking.
1656
1657 2007-01-09  Paul Thomas  <pault@gcc.gnu.org>
1658
1659         PR fortran/30408
1660         * resolve.c (resolve_code): Use the code->expr character length
1661         directly to set length of llen.
1662
1663 2007-01-09  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1664
1665         PR fortran/30408
1666         * lang.opt: Add Wcharacter_truncation option.
1667         * options.c (gfc_init_options): Initialize
1668         gfc_option.warn_character_truncation to zero.
1669         (gfc_handle_option): Add case for OPT_Wcharacter_truncation.
1670
1671 2007-01-08  Steven G. Kargl  <kargl@gcc.gnu.org>
1672
1673         * interface.c, intrinsic.c, gfortranspec.c, io.c, f95-lang.c,
1674         iresolve.c, match.c: Update Copyright years.  Whitespace.
1675
1676 2007-01-08  Richard Guenther  <rguenther@suse.de>
1677
1678         * trans-io.c (transfer_array_desc): Use build_int_cst instead
1679         of build_int_cstu.
1680
1681 2007-01-08  Roger Sayle  <roger@eyesopen.com>
1682
1683         * trans-array.c (constant_array_constructor_p): New function to
1684         determine whether an array constructor consists only of constant
1685         elements, and if so return it's size.
1686         (gfc_build_constant_array_constructor): Construct a statically
1687         initialized gfortran array for a given EXPR_ARRAY.
1688         (gfc_trans_constant_array_constructor): Efficiently scalarize
1689         a constant array constructor.
1690         (gfc_trans_array_constructor): Tidy up use of CONST_STRING.
1691         Special case scalarization of constant array constructors, all of
1692         whose elements are specified, using constant_array_constructor_p 
1693         and gfc_trans_constant_array_constructor.
1694         (gfc_conv_scalarized_array_ref): Check whetger info->offset is zero
1695         before adding it to index, to avoid creating a NON_LVALUE_EXPR.
1696
1697 2007-01-08  Kazu Hirata  <kazu@codesourcery.com>
1698
1699         gfortran.texi: Fix typos.
1700
1701 2007-01-07  Steven G. Kargl  <kargl@gcc.gnu.org>
1702
1703         * decl.c, dump-parse-tree.c, error.c, data.c, expr.c, dependency.c,
1704         convert.c: Update Copyright dates.  Fix whitespace.
1705
1706 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1707
1708         * data.c (gfc_assign_data_value): Fix whitespace.
1709
1710 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1711
1712         * trans-array.c (gfc_trans_create_temp_array, gfc_array_init_size):
1713         Commentary typo fix.
1714
1715 2007-01-07  Bernhard Fischer  <aldot@gcc.gnu.org>
1716
1717         PR fortran/27698
1718         * match.c (gfc_match_name): Print diagnostics for invalid
1719         character in names.
1720
1721 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1722
1723         * array.c: Fix whitespace in comment table.
1724
1725 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1726
1727         * array.c, bbt.c, check.c: Update copyright years.  Whitespace.
1728
1729 2007-01-06  Steven G. Kargl  <kargl@gcc.gnu.org>
1730
1731         * arith.c: Update copyright years.  Whitespace.
1732
1733 2007-01-05  Roger Sayle  <roger@eyesopen.com>
1734
1735         * trans-expr.c (gfc_trans_assignment_1): New subroutine to scalarize
1736         array assignments split out from gfc_trans_assignment.
1737         (gfc_trans_array_copy): New function to implement array to array
1738         copies via calls to __builtin_memcpy.
1739         (copyable_array_p): New helper function to identify an array of
1740         simple/POD types, that may be copied/assigned using memcpy.
1741         (gfc_trans_assignment): Use gfc_trans_array_copy to handle simple
1742         whole array assignments considered suitable by copyable_array_p.
1743         Invoke gfc_trans_assignment_1 to perform the fallback scalarization.
1744
1745 2007-01-05  Roger Sayle  <roger@eyesopen.com>
1746
1747         * trans-array.c (gfc_trans_array_constructor_value): Make the
1748         static const "data" array as TREE_READONLY.
1749         * trans-stmt.c (gfc_trans_character_select): Likewise.
1750
1751 2007-01-05  Roger Sayle  <roger@eyesopen.com>
1752
1753         * trans-array.c (gfc_conv_loop_setup): Test whether the loop
1754         stride is one, to avoid fold_build2 introducing a useless
1755         NON_LVALUE_EXPR node.
1756
1757 2007-01-05  Tobias Burnus  <burnus@net-b.de>
1758
1759         * symbol.c (check_conflict): Fix error message.
1760
1761 2007-01-05  Paul Thomas  <pault@gcc.gnu.org>
1762
1763         PR fortran/23232
1764         * decl.c (gfc_in_match_data, gfc_set_in_match_data): New
1765         functions to signal that a DATA statement is being matched.
1766         (gfc_match_data): Call gfc_set_in_match_data on entry and on
1767         exit.
1768         * gfortran.h : Add prototypes for above.
1769         * expr.c (check_init_expr): Avoid check on parameter or
1770         variable if gfc_in_match_data is true.
1771         (gfc_match_init_expr): Do not call error on non-reduction of
1772         expression if gfc_in_match_data is true.
1773
1774         PR fortran/27996
1775         PR fortran/27998
1776         * decl.c (gfc_set_constant_character_len): Add boolean arg to
1777         flag array constructor resolution.  Warn if string is being
1778         truncated.  Standard dependent error if string is padded. Set
1779         new arg to false for all three calls to
1780         gfc_set_constant_character_len.
1781         * match.h : Add boolean arg to prototype for
1782         gfc_set_constant_character_len.
1783         * gfortran.h : Add warn_character_truncation to gfc_options.
1784         * options.c (set_Wall): Set warn_character_truncation if -Wall
1785         is set.
1786         * resolve.c (resolve_code): Warn if rhs string in character
1787         assignment has to be truncated.
1788         * array.c (gfc_resolve_character_array_constructor): Set new
1789         argument to true for call to gfc_set_constant_character_len.
1790
1791 2007-01-05  Tobias Burnus  <burnus@net-b.de>
1792
1793         PR fortran/29624
1794         * interface.c (compare_parameter_intent): New function.
1795           (check_intents): Support pointer intents.
1796         * symbol.c (check_conflict): Support pointer intents,
1797           better conflict_std message.
1798         * expr.c (gfc_check_assign,gfc_check_pointer_assign):
1799           Support pointer intents.
1800         * resolve.c (resolve_deallocate_expr,resolve_allocate_expr):
1801           Support pointer intents.
1802
1803 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1804
1805         PR 30371
1806         * check.c (gfc_check_kill_sub): Add checks for non-scalar
1807         arguments.
1808
1809 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1810
1811         * intrinsic.texi: Minor cleanup, reflowing overlong
1812         paragraphs, and correcting whitespace.
1813
1814 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1815
1816         * intrinsic.texi (LBOUND): Add documentation.
1817         (LGE): Add documentation.
1818         (LGT): Add documentation.
1819         (LINK): Add documentation.
1820         (LLE): Add documentation.
1821         (LLT): Add documentation.
1822         (LNBLNK): Add documentation.
1823         (UBOUND): Add documentation.
1824         (UNLINK): Add documentation.
1825
1826 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1827
1828         * intrinsic.texi (IAND): Clarify argument specifications.
1829         (IBCLR): Add documentation.
1830         (IBITS): Add documentation.
1831         (IBSET): Add documentation.
1832         (IEOR): Add documentation.
1833         (IERRNO): Add documentation.
1834         (INDEX): Add documentation.
1835         (IOR): Add documentation.
1836         (ISHFT): Add documentation.
1837         (ISHFTC): Add documentation.
1838         (KILL): Add documentation.
1839         (LEN_TRIM): Add documentation.
1840
1841 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1842
1843         PR 30235
1844         * interface.c (compare_actual_formal): check for
1845         alternate returns when iterating over non-present
1846         arguments.
1847
1848 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1849
1850         * invoke.texi: Update manpage copyright to include 2007.
1851
1852 2007-01-04  Brooks Moses  <brooks.moses@codesourcery.com>
1853
1854         * gfortran.texi: Update copyright to include 2007.
1855         * intrinsic.texi: Update copyright to include 2007.
1856         * invoke.texi: Update copyright to include 2007.
1857
1858 2007-01-02  Tobias Burnus  <burnus@net-b.de>
1859             Jakub Jelinek  <jakub@redhat.com>
1860
1861         PR fortran/30276
1862         * scanner.c (open_included_file): Revert patch.
1863           (gfc_open_included_file): Support absolute pathnames.
1864           (gfc_open_intrinsic_module): Support absolute pathnames.
1865
1866 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1867
1868         * gfortran.texi (GNU Fortran and GCC): Rewrite
1869
1870 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1871
1872         * gfortran.texi (Introduction): Lower "Part I:
1873         Introduction" to a chapter, renumber Parts II and III to
1874         Parts I and II.
1875         * intrinsic.texi (Introduction): Rename to "Introduction
1876         to Intrinsics" to avoid conflict with the new chapter.
1877
1878 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1879
1880         * intrinsic.texi (Introduction): Rewrite first paragraph.
1881
1882 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1883
1884         * invoke.texi (OpenMP): Added index entry.
1885         * gfortran.texi (title page): Removed erroneous '*'.
1886
1887 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1888
1889         * gfortran.texi (GFORTRAN_DEFAULT_RECL): Added units
1890         to description.
1891         (Extensions): Miscellaneous minor rewriting and copyediting.
1892         (BOZ-literal constants): Renamed from Hexadecimal constants.
1893         (Hollerith constants support): Added explanation and 
1894         suggestions for standard-conforming modern equivalents.
1895
1896 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1897
1898         * intrinsic.texi: Improvements to index entries; change
1899         @findex entries to @cindex entries.
1900         * invoke.texi: Standardize and improve index entries.
1901         * gfortran.texi: Fix @code in one index entry.
1902
1903 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1904
1905         * invoke.texi: Change @code-type macros to appropriate
1906         variants (@command, @option, etc.)
1907         * gfortran.texi: Same.
1908
1909 2007-01-03  Brooks Moses  <brooks.moses@codesourcery.com>
1910
1911         * intrinsic.texi: Various minor cleanups.
1912
1913 2007-01-02  Steven G. Kargl  <kargls@comcast.net>
1914
1915         * trans-intrinsic.c (gfc_conv_intrinsic_ibits): Fix call to
1916         build_int_cst.
1917
1918 2007-01-02  Tobias Burnus  <burnus@net-b.de>
1919
1920         PR fortran/30276
1921         * scanner.c (open_included_file): Support full-path filenames.
1922
1923 2007-01-02  Paul Thomas  <pault@gcc.gnu.org>
1924
1925         PR fortran/20896
1926         * interface.c (check_sym_interfaces): Remove call to
1927         resolve_global_procedure.
1928         gfortran.h : Remove prototype for resolve_global_procedure.
1929         resolve.c (resolve_global_procedure): Add static attribute
1930         to function declaration.
1931
1932 2007-01-01  Steven G. Kargl  <kargls@comcast.net>
1933
1934         * ChangeLog: Copy to ...
1935         * ChangeLog-2006: here.