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