OSDN Git Service

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