OSDN Git Service

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