OSDN Git Service

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