OSDN Git Service

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