OSDN Git Service

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