OSDN Git Service

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