OSDN Git Service

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