OSDN Git Service

2006-11-24 Paul Thomas <pault@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2006-11-24  Paul Thomas  <pault@gcc.gnu.org>
2
3         PR fortran/20880
4         * parse.c (parse_interface): Error if procedure name is that of
5         encompassing scope.
6         * resolve.c (resolve_fl_procedure): Error if procedure is
7         ambiguous.
8
9         PR fortran/29387
10         * interface.c (compare_actual_formal): Add missing condition
11         that 'where' be present for error that asserts that actual
12         arguments be definable.
13
14 2006-11-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
15
16         * resolve.c (resolve_actual_arglist): Remove the special case for
17         CHAR.
18         * intrinsic.c (add_functions): Remove the special case for CHAR.
19
20 2006-11-22  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
21
22         PR fortran/29441
23         * intrinsic.c (gfc_intrinsic_func_interface): Always check if
24         intrinsic is allowed in initialization expression.
25
26 2006-11-22  Paul Thomas  <pault@gcc.gnu.org>
27
28         PR fortran/25087
29         * resolve.c (resolve_fl_procedure): Add an error if an external
30         automatic character length function does not have an explicit
31         interface.
32
33 2006-11-22  Paul Thomas  <pault@gcc.gnu.org>
34
35         PR fortran/29652
36         * interface.c (check_interface1): Use a local value, instead of
37         the dummy, as the inner iterator over interface symbols.
38
39 2006-11-21  Paul Thomas  <pault@gcc.gnu.org>
40
41         PR fortran/29820
42         * trans-array.c (gfc_get_derived_type): Once done, spread the
43         backend_decl to all identical derived types in all sibling
44         namespaces.
45
46 2006-11-20  Tobias Burnus  <burnus@net-b.de>
47
48         PR fortran/27546
49         * primary.c (gfc_match_rvalue): Added IMPORT support.
50
51 2006-11-20  Tobias Burnus  <burnus@net-b.de>
52
53         * symbol.c (check_conflict): Add conflict between VOLATILE
54           attribute and program name.
55
56 2006-11-20  Bernhard Fischer  <aldot@gcc.gnu.org>
57
58         PR fortran/24783
59         * resolve.c (resolve_variable): Get the implicit type from the
60         symbols namespace rather than the default namespace. Fix whitespace.
61         (resolve_formal_arglist, resolve_equivalence): Fix typo.
62
63 2006-11-19  Erik Edelmann  <eedelman@gcc.gnu.org>
64
65         * resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of
66           nonzero rank part references too.
67
68 2006-11-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
69
70         * module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code.
71         Check that intrinsic and non-intrinsic modules don't conflict.
72         (use_iso_fortran_env_module): New function.
73         (create_int_parameter): New function.
74         * trans-types.c (gfc_init_kinds): Choose values for
75         gfc_numeric_storage_size and gfc_character_storage_size.
76         (gfc_numeric_storage_size, gfc_character_storage_size): New variables.
77         * resolve.c (resolve_symbol): Do no check intrinsic modules
78         against the list of intrinsic symbols.
79         * iso-fortran-env.def: New file.
80         * gfortran.h (gfc_numeric_storage_size,
81         gfc_character_storage_size): Add prototypes.
82
83 2006-11-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
84
85         PR fortran/24285
86         * io.c (check_format): Allow dollars everywhere in format, and
87         issue a warning.
88
89 2006-11-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
90
91         * gfortran.h (gfc_add_intrinsic_modules_path,
92         gfc_open_intrinsic_module): New prototypes.
93         (gfc_add_include_path, gfc_open_included_file): Update prototypes.
94         * lang.opt: Add -fintrinsic-modules-path option.
95         * module.c (gfc_match_use): Match the Fortran 2003 form of
96         USE statement.
97         (gfc_use_module): Also handle intrinsic modules. 
98         * scanner.c (gfc_directorylist): Add use_for_modules for field.
99         (intrinsic_modules_dirs): New static variable.
100         (add_path_to_list, gfc_add_intrinsic_modules_path): New functions.
101         (gfc_add_include_path): Use the new add_path_to_list helper
102         function.
103         (gfc_release_include_path): Free memory for intrinsic_modules_dirs.
104         (open_included_file, gfc_open_intrinsic_module): New functions.
105         (gfc_open_included_file): Use the new open_included_file
106         helper function.
107         * lang-specs.h: Use the new -fintrinsic-modules-path option.
108         * parse.c (decode_statement): Do not match the required space
109         after USE here.
110         * options.c (gfc_handle_option): Handle the new option. Use new
111         prototype for gfc_add_include_path.
112         (gfc_post_options): Use new prototype for gfc_add_include_path.
113
114 2006-11-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
115
116         PR fortran/29391
117         PR fortran/29489
118         * simplify.c (simplify_bound): Fix the simplification of
119         LBOUND/UBOUND intrinsics.
120         * trans-intrinsic.c (simplify_bound): Fix the logic, and
121         remove an erroneous assert.
122
123 2006-11-16  Francois-Xavier Coudert  <fxcoudert@gcc.gnu,org>
124
125         * trans-decl.c (gfc_get_symbol_decl): Fix formatting.
126
127 2006-11-15  Brooks Moses  <brooks.moses@codesourcery.com>
128
129         * data.c: Remove trailing periods from error messages.
130         * decl.c: Likewise.
131         * expr.c: Likewise.
132         * io.c: Likewise.
133         * match.c: Likewise.
134         * module.c: Likewise.
135         * options.c: Likewise.
136         * resolve.c: Likewise.
137         * symbol.c: Likewise.
138         * trans-io.c: Likewise.
139
140 2006-11-15  Brooks Moses  <brooks.moses@codesourcery.com>
141
142         * lang.opt: Rearrange entries back into ASCII order.
143
144 2006-11-15  Tobias Burnus  <burnus@net-b.de>
145
146         * parse.c (parse_contained): Fix indention
147           of one line.
148
149 2006-11-15  Tobias Burnus  <burnus@net-b.de>
150
151         PR fortran/27546
152         * decl.c (gfc_match_import,variable_decl):
153           Add IMPORT support.
154           (gfc_match_kind_spec): Fix typo in gfc_error.
155         * gfortran.h (gfc_namespace, gfc_statement):
156           Add IMPORT support.
157         * parse.c (decode_statement,gfc_ascii_statement,
158           verify_st_order): Add IMPORT support.
159         * match.h: Add gfc_match_import.
160         * gfortran.texi: Add IMPORT to the supported
161           Fortran 2003 features.
162
163 2006-11-15  Tobias Burnus  <burnus@net-b.de>
164             Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
165
166         PR fortran/27588
167         * trans-expr.c (gfc_conv_substring): Add bounds checking.
168           (gfc_conv_variable, gfc_conv_substring_expr): Pass more
169           arguments to gfc_conv_substring.
170
171 2006-11-15  Tobias Burnus  <burnus@net-b.de>
172
173         PR fortran/29806
174         * parse.c (parse_contained): Check for empty contains statement.
175
176 2006-11-15  Bud Davis <bdavis9659@sbcglobal.net>
177
178         PR fortran/28974
179         * gfortran.h (gfc_expr): Add element which holds a splay-tree
180         for the exclusive purpose of quick access to a constructor by
181         offset.
182         * data.c (find_con_by_offset): Use the splay tree for the search.
183         (gfc_assign_data_value): Use the splay tree.
184         (gfc_assign_data_value_range): ditto.
185         * expr.c (gfc_get_expr): Initialize new element to null.
186         (gfc_free_expr): Delete splay tree when deleting gfc_expr.
187
188 2006-11-14  Brooks Moses  <brooks.moses@codesourcery.com>
189
190         PR fortran/29702
191         * error.c (show_loci): Move column-offset calculation to
192         show_locus.
193         (show_locus): Remove blank lines before "Included in"
194         lines, clean up code, calculate column-offsets, print
195         column number is error-header lines as appropriate.
196         (error_integer): (new function) Print integer to error
197         buffer.
198         (error_print): Use error_integer, avoid possible buffer
199         overflows from buggy error formats.
200
201 2006-11-14  Brooks Moses  <brooks.moses@codesourcery.com>
202  
203         * gfortran.h (GFC_MAX_LINE): Remove constant definition.
204         (gfc_option_t): Clarify comments.
205         * options.c: Set default line length limits to actual default
206         values, rather than flag values.
207         * scanner.c: Eliminate checking and handling of the
208         fixed/free_line_length flag values.
209
210 2006-11-14  Brooks Moses  <brooks.moses@codesourcery.com>
211  
212         * lang.opt: Remove -fno-backend option.
213         * gfortran.h (gfc_option_t): Remove flag_no_backend.
214         * options.c (gfc_init_options): Remove flag_no_backend.
215         (gfc_handle_option): Remove -fno-backend option handler.
216         * parse.c (gfc_parse_file): Remove references to
217         gfc_option.flag_no_backend.
218
219 2006-11-14  Tobias Burnus  <burnus@net-b.de>
220
221         * match.c (gfc_match_namelist): Add missing space to
222           error message.
223
224 2006-11-14  Tobias Burnus  <burnus@net-b.de>
225
226         PR fortran/29657
227         * symbol.c (check_conflict): Add further conflicts.
228
229 2006-11-13  Jakub Jelinek  <jakub@redhat.com>
230
231         PR fortran/29759
232         * fortran/scanner.c (skip_free_comments): Clear openmp_flag
233         before returning true.
234
235 2006-11-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>
236
237         PR fortran/26994
238         * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the
239         new CONST_DECL.
240
241 2006-11-11  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
242
243         * array.c: Add 2006 to copyright years.
244         * data.c: Same.
245         * interface.c: Same.
246         * misc.c: Same.
247         * trans-io.c: Same.
248
249 2006-11-11  Richard Guenther  <rguenther@suse.de>
250
251         * trans-intrinsic.c (enum rounding_mode): New enum.
252         (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
253         gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR,
254         FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR.
255
256 2006-11-10  Brooks Moses  <brooks.moses@codesourcery.com>
257
258         * lang.opt (-fmodule-private): Remove option.
259         * gfortran.h (gfc_option_t): Remove module_access_private flag.
260         * options.c (gfc_init_options): Remove initialization for it.
261         (gfc_handle_option): Remove handling for -fmodule-private.
262         * module.c (gfc_check_access): Add comments, remove check for
263         gfc_option.flag_module_access_private.
264
265 2006-11-10 Paul Thomas <pault@gcc.gnu.org>
266
267         PR fortran/29758
268         * check.c (gfc_check_reshape): Check that there are enough
269         elements in the source array as to be able to fill an array
270         defined by shape, when pad is absent.
271
272 2006-11-10 Paul Thomas <pault@gcc.gnu.org>
273
274         PR fortran/29315
275         * trans-expr.c (is_aliased_array): Treat correctly the case where the
276         component is itself and array or array reference.
277
278 2006-11-09  Brooks Moses  <brooks.moses@codesourcery.com>
279
280         * check.c (same_type_check): Typo fix in comment.
281
282 2006-11-09 Paul Thomas <pault@gcc.gnu.org>
283
284         PR fortran/29431
285         * trans-array.c    (get_array_ctor_strlen): If we fall through to
286         default, use a constant character length if it is available.
287
288 2006-11-09 Paul Thomas <pault@gcc.gnu.org>
289
290         PR fortran/29744
291         * trans-types.c (gfc_get_derived_type): Ensure that the
292         proc_name namespace is not the same as the owner namespace and
293         that identical derived types in the same namespace share the
294         same backend_decl.
295
296 2006-11-09 Paul Thomas <pault@gcc.gnu.org>
297
298         PR fortran/29699
299         * trans-array.c (structure_alloc_comps): Detect pointers to
300         arrays and use indirect reference to declaration.
301         * resolve.c (resolve_fl_variable): Tidy up condition.
302         (resolve_symbol): The same and only add initialization code if
303         the symbol is referenced.
304         * trans-decl.c (gfc_trans_deferred_vars): Call gfc_trans_
305         deferred_array before gfc_trans_auto_array_allocation.
306
307         PR fortran/21370
308         * symbol.c (check_done): Remove.
309         (gfc_add_attribute): Remove reference to check_done and remove
310         the argument attr_intent.
311         (gfc_add_allocatable, gfc_add_dimension, gfc_add_external,
312         gfc_add_intrinsic, gfc_add_optional, gfc_add_pointer,
313         gfc_add_cray_pointer, gfc_add_cray_pointee, gfc_add_result,
314         gfc_add_target, gfc_add_in_common, gfc_add_elemental,
315         gfc_add_pure, gfc_add_recursive, gfc_add_procedure,
316         gfc_add_type): Remove references to check_done.
317         * decl.c (attr_decl1): Eliminate third argument in call to
318         gfc_add_attribute.
319         * gfortran.h : Change prototype for gfc_add_attribute.
320
321 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
322
323         * invoke.texi: Added documentation for -fmax-errors option.
324
325 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
326
327         * lang.opt: Add -fmax-errors= option.
328         * gfortran.h (gfc_option_t): Add max_errors element.
329         * options.c (gfc_init_options): Set max_errors default value
330         to 25.
331         (gfc_handle_options): Assign -fmax_errors value to
332         gfc_option.max_errors.
333         * error.c (gfc_increment_error_count): New function, which
334         also checks whether the error count exceeds max_errors.
335         (gfc_warning): Use it.
336         (gfc_warning_now): Use it.
337         (gfc_notify_std): Use it.
338         (gfc_error): Use it.
339         (gfc_error_now): Use it.
340         (gfc_error_check): Use it.
341
342 2006-11-08  Brooks Moses  <brooks.moses@codesourcery.com>
343
344         * lang.opt: Remove non-working -qkind= option.
345         * gfortran.h (gfc_option_t): Remove q_kind member.
346         * options.c (gfc_init_options): Remove q_kind initialization.
347         (gfc_handle_option): Remove -qkind= option handling.
348         * primary.c: (match_real_constant): Remove 'Q' exponent.
349
350 2006-11-08  Tobias Burnus  <burnus@net-b.de>
351
352         * gfortran.texi: Add volatile and internal-file
353           namelist to Fortran 2003 status.
354         * intrinsic.texi: Correct CHMOD entry.
355
356 2006-11-07  Paul Thomas  <pault@gcc.gnu.org>
357
358         PR fortran/29539
359         PR fortran/29634
360         * decl.c (variable_decl): Add test for presence of proc_name.
361         * error.c (gfc_error_flag_test): New function.
362         * gfortran.h : Prototype for gfc_error_flag_test.
363
364 2006-11-07  Tobias Burnus  <burnus@net-b.de>
365
366         PR fortran/29601
367         * symbol.c (check_conflict, gfc_add_volatile): Add volatile support.
368         * decl.c (match_attr_spec, gfc_match_volatile): Add volatile support.
369         * gfortran.h (symbol_attribute): Add volatile_ to struct.
370         * resolve.c (was_declared): Add volatile support.
371         * trans-decl.c (gfc_finish_var_decl): Add volatile support.
372         * match.h: Declare gfc_match_volatile.
373         * parse.c (decode_statement): Recognize volatile.
374         * modules.c (ab_attribute, attr_bits, mio_symbol_attribute):
375           Add volatile support.
376         * dump-parse-tree.c (gfc_show_attr): Add volatile support.
377
378 2006-11-06  Tobias Burnus  <burnus@net-b.de>
379
380         * decl.c (match_attr_spec, gfc_match_enum): Unify gfc_notify_std
381           message for GFC_STD_F2003.
382         * array.c (gfc_match_array_constructor): Unify gfc_notify_std
383           message for GFC_STD_F2003.
384         * io.c (check_io_constraints): Unify gfc_notify_std message for
385           GFC_STD_F2003.
386         * resolve.c (resolve_actual_arglist): Unify gfc_notify_std message
387           for GFC_STD_F2003.
388
389 2006-11-06  Brooks Moses  <brooks.moses@codesourcery.com>
390
391         * intrinsic.texi: Added documentation for FTELL, GETLOG, and
392         HOSTNM intrinsics.
393
394 2006-11-06  Erik Edelmann  <eedelman@gcc.gnu.org>
395
396         PR fortran/29630
397         PR fortran/29679
398         * expr.c (find_array_section): Support vector subscripts.  Don't
399           add sizes for dimen_type == DIMEN_ELEMENT to the shape array.
400
401 2006-11-05  Bernhard Fischer  <aldot@gcc.gnu.org>
402
403         PR fortran/21061
404         * error.c (gfc_warning): If warnings_are_errors then treat
405         warnings as errors with respect to the exit code.
406         (gfc_notify_std): Ditto.
407         (gfc_warning_now): Ditto.
408
409 2006-11-05  Francois-Xavier Coudert  <fxcoudert@gcc.gnu,org>
410             Paul Thomas  <pault@gcc.gnu.org>
411
412         PR fortran/24518
413         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Use built_in fmod
414         for both MOD and MODULO, if it is available.
415
416         PR fortran/29565
417         * trans-expr.c (gfc_conv_aliased_arg): For an INTENT(OUT), save
418         the declarations from the unused loops by merging the block
419         scope for each; this ensures that the temporary is declared.
420
421 2006-11-04  Brooks Moses  <brooks.moses@codesourcery.com>
422
423         * error.c (show_locus): Add trailing colon in error messages.
424         (error_print): Avoid leading space in error lines.
425
426 2006-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
427
428         PR fortran/29713
429         * expr.c (gfc_simplify_expr): Correct memory allocation.
430
431 2006-11-02  Brooks Moses  <brooks.moses@codesourcery.com>
432
433         * error.c (show_locus): Remove "In file" from error messages.
434
435 2006-10-31  Geoffrey Keating  <geoffk@apple.com>
436
437         * trans-decl.c (gfc_generate_constructors): Update for removal
438         of get_file_function_name.
439
440 2006-11-01  Bernhard Fischer  <aldot@gcc.gnu.org>
441
442         PR fortran/29537
443         * trans-common.c (gfc_trans_common): If the blank common is
444         in a procedure or program without a name then proc_name is null, so
445         use the locus of the common.
446         (gfc_sym_mangled_common_id): Fix whitespace.
447         * match.c (gfc_match_common): Emit warning about blank common in
448         block data.
449
450 2006-10-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
451
452         PR fortran/29067
453         * decl.c (gfc_set_constant_character_len): NULL-terminate the
454         character constant string.
455         * data.c (create_character_intializer): Likewise.
456         * expr.c (gfc_simplify_expr): NULL-terminate the substring
457         character constant.
458         * primary.c (match_hollerith_constant): NULL-terminate the
459         character constant string.
460
461 2006-10-31  Paul Thomas  <pault@gcc.gnu.org>
462
463         PR fortran/29387
464         * trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have
465         a specific case for EXPR_VARIABLE and, in default, build an ss
466         to call gfc_conv_expr_descriptor for array expressions..
467
468         PR fortran/29490
469         * trans-expr.c (gfc_set_interface_mapping_bounds): In the case
470         that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor
471         values for it and GFC_TYPE_ARRAY_UBOUND.
472
473         PR fortran/29641
474         * trans-types.c (gfc_get_derived_type): If the derived type
475         namespace has neither a parent nor a proc_name, set NULL for
476         the search namespace.
477
478 2006-10-30  Tobias Burnus  <burnus@net-b.de>
479
480         PR fortran/29452
481         * io.c (check_io_constraints): Fix keyword string comparison.
482
483 2006-10-30  Andrew Pinski  <pinskia@gmail.com>
484
485         PR fortran/29410
486         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer):
487         Change over to create VIEW_CONVERT_EXPR instead of using an
488         ADDR_EXPR, a cast and then an indirect reference
489
490 2006-10-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
491
492         * trans-intrinsic.c (gfc_conv_intrinsic_loc): Make LOC return a
493         signed integer node.
494
495 2006-10-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
496
497         PR fortran/17741
498         * decl.c (get_proc_name): Bump current namespace refs count.
499
500 2006-10-29  Jakub Jelinek  <jakub@redhat.com>
501
502         PR fortran/29629
503         * trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor
504         of init_val_sym and outer_sym to FL_VARIABLE.
505
506 2006-10-29  Kazu Hirata  <kazu@codesourcery.com>
507
508         * intrinsic.texi: Fix a typo.
509
510 2006-10-27  Steven G. Kargl  <kargl@gcc.gnu.org>
511
512         * gfortran.h: Remove GFC_MPFR_TOO_OLD.
513         * arith.c (arctangent2): Remove function
514         (gfc_check_real_range): Remove subnormal kludge.
515         * arith.h: Remove arctangent2 prototype.
516         * simplify.c: (gfc_simplify_atan2): Remove use of arctangent2.
517         (gfc_simplify_exponent, gfc_simplify_log, gfc_simplify_nearest,
518         gfc_simplify_rrspacing, gfc_simplify_spacing): Remove mpfr kludges.
519
520 2006-10-28  Tobias Burnus  <burnus@net-b.de>
521
522         PR fortran/28224
523         * io.c (check_io_constraints): Allow namelists
524           for internal files for Fortran 2003.
525
526 2006-10-27  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
527
528         PR fortran/27954
529         * decl.c (gfc_free_data_all): New function to free all data structures
530         after errors in DATA statements and declarations.
531         (top_var_list): Use new function.(top_val_list): Use new function.
532         (gfc_match_data_decl): Use new function.
533         * misc.c (gfc_typename): Fixed incorrect function name in error text. 
534
535 2006-10-24  Erik Edelmann  <eedelman@gcc.gnu.org>
536
537         PR fortran/29393
538         * expr.c (simplify_parameter_variable): Keep rank of original
539         expression.
540
541 2006-10-23 Rafael Avila de Espindola  <rafael.espindola@gmail.com>
542
543         * Make-lang.in (f951$(exeext)): Depend on and link with attribs.o.
544         * trans.h (builtin_function): Rename to gfc_builtin_function.
545         Change the signature.
546         * 95-lang.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
547         gfc_builtin_function.
548         (builtin_function): Rename to gfc_builtin_function. Move common
549         code to builtin_function.
550         (gfc_define_builtin): Replace calls to builtin_function with
551         gfc_define_builtin.
552
553 2006-10-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
554
555         PR fortran/26025
556         * lang.opt: Add -fexternal-blas and -fblas-matmul-limit options.
557         * options.c (gfc_init_options): Initialize new flags.
558         (gfc_handle_option): Handle new flags.
559         * gfortran.h (gfc_option): Add flag_external_blas and
560         blas_matmul_limit flags.
561         * trans-expr.c (gfc_conv_function_call): Use new argument
562         append_args, appending it at the end of the argument list
563         built for a function call.
564         * trans-stmt.c (gfc_trans_call): Use NULL_TREE for the new
565         append_args argument to gfc_trans_call.
566         * trans.h (gfc_conv_function_call): Update prototype.
567         * trans-decl.c (gfc_build_intrinsic_function_decls): Add
568         prototypes for BLAS ?gemm routines.
569         * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Generate the
570         extra arguments given to the library matmul function, and give
571         them to gfc_conv_function_call.
572         * invoke.texi: Add documentation for -fexternal-blas and
573         -fblas-matmul-limit.
574
575 2006-10-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
576
577         * Make-lang.in (F95_LIBS): Delete.
578         * f951$(exeext): Use $(LIBS) instead of $(F95_LIBS).
579         * config-lang.in (need_gmp): Delete.
580
581 2006-10-19  Brooks Moses  <bmoses@stanford.edu>
582
583         * invoke.texi: Fixed "denormal" typo.
584
585 2006-10-19  Paul Thomas <pault@gcc.gnu.org>
586
587         PR fortran/29216
588         PR fortran/29314
589         * gfortran.h : Add EXEC_INIT_ASSIGN.
590         * dump-parse-tree.c (gfc_show_code_node): The same.
591         * trans-openmp.c (gfc_trans_omp_array_reduction): Set new
592         argument for gfc_trans_assignment to false.
593         * trans-stmt.c (gfc_trans_forall_1): The same.
594         * trans-expr.c (gfc_conv_function_call, gfc_trans_assign,
595         gfc_trans_arrayfunc_assign, gfc_trans_assignment): The
596         same. In the latter function, use the new flag to stop
597         the checking of the lhs for deallocation.
598         (gfc_trans_init_assign): New function.
599         * trans-stmt.h : Add prototype for gfc_trans_init_assign.
600         * trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN.
601         * trans.h : Add new boolean argument to the prototype of
602         gfc_trans_assignment.
603         * resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by
604         EXEC_INIT_ASSIGN.
605         (resolve_code): EXEC_INIT_ASSIGN does not need resolution.
606         (apply_default_init): New function.
607         (resolve_symbol): Call it for derived types that become
608         defined but which do not already have an initialization
609         expression..
610         * st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN.
611
612 2006-10-16  Tobias Burnus  <burnus@net-b.de>
613
614         * primary.c: Revert 'significand'-to-'significant' comment change.
615         * invoke.texi (Warning Options): Minor cleanup for
616           -Wimplicit-interface.
617
618 2006-10-17  Paul Thomas <pault@gcc.gnu.org>
619
620         PR fortran/29451
621         * trans-array.c (gfc_trans_array_bounds): Test for and set
622         negative stride of a non-constant bound array to zero.
623
624         PR fortran/29392
625         * data.c (create_character_intializer): Copy and simplify
626         the expressions for the start and end of a sub-string
627         reference.
628
629 2006-10-16  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
630
631         * io.c (gfc_match_close): Ensure that status is terminated by
632         a NULL element.
633
634 2006-10-16  Tobias Burnus  <burnus@net-b.de>
635
636         * trans-stmt.c: Fix a typo
637         * invoke.texi: Fix typos
638         * resolve.c: Fix a comment typo
639         * trans-decl.c: Fix a comment typo
640         * primary.c: Fix a comment typo
641
642 2006-10-15  Steven G. Kargl  <kargl@gcc.gnu.org>
643
644         PR fortran/29403
645         * io.c (match_io):  Check for a default-char-expr for PRINT format.
646
647 2006-10-15  Bernhard Fischer  <aldot@gcc.gnu.org>
648
649         PR fortran/24767
650         * lang.opt (Wunused-labels): Remove.
651         * options.c: Remove references to gfc_option.warn_unused_labels.
652         * gfortran.h: Remove variable warn_unused_labels.               
653         * resolve.c (warn_unused_fortran_label) : Use warn_unused_label
654         instead of gfc_option.warn_unused_labels.
655         * invoke.texi: Remove documentation of -Wunused-labels.
656
657 2006-10-14  Tobias Burnus  <burnus@net-b.de>
658
659         * gfortran.texi: Add link to GFortran apps
660         * intrinsic.texi: Updated documentation of ACCESS and CHMOD
661
662 2006-10-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
663
664         PR fortran/19261
665         * scanner.c (load_line): Add checks for illegal use of '&' and issue
666         warnings.  Issue errors with -pedantic.
667
668 2006-10-14 Paul Thomas <pault@gcc.gnu.org>
669
670         PR fortran/29371
671         * trans-expr.c (gfc_trans_pointer_assignment): Add the expression
672         for the assignment of null to the data field to se->pre, rather
673         than block.     
674
675 2006-10-14  Kazu Hirata  <kazu@codesourcery.com>
676
677         * intrinsic.texi: Fix typos.
678         * trans-array.c: Fix a comment typo.
679
680 2006-10-13  Brooks Moses  <bmoses@stanford.edu>
681
682         * intrinsic.texi (STAT): Reverted a format in example code to
683         octal; noted this in accompanying string.
684
685 2006-10-13 Paul Thomas <pault@gcc.gnu.org>
686
687         PR fortran/29373
688         * decl.c (get_proc_name, gfc_match_function_decl): Add
689         attr.implicit_type to conditions that throw error for
690         existing explicit interface and that allow new type-
691         spec to be applied.
692
693         PR fortran/29407
694         * resolve.c (resolve_fl_namelist): Do not check for
695         namelist/procedure conflict, if the symbol corresponds
696         to a good local variable declaration.
697
698         PR fortran/27701
699         * decl.c (get_proc_name): Replace the detection of a declared
700         procedure by the presence of a formal argument list by the
701         attributes of the symbol and the presence of an explicit
702         interface.
703
704         PR fortran/29232
705         * resolve.c (resolve_fl_variable): See if the host association
706         of a derived type is blocked by the presence of another type I
707         object in the current namespace.
708
709         PR fortran/29364
710         * resolve.c (resolve_fl_derived): Check for the presence of
711         the derived type for a derived type component.
712
713         PR fortran/24398
714         * module.c (gfc_use_module): Check that the first words in a
715         module file are 'GFORTRAN module'.
716
717         PR fortran/29422
718         * resolve.c (resolve_transfer): Test functions for suitability
719         for IO, as well as variables.
720
721         PR fortran/29428
722         * trans-expr.c (gfc_trans_scalar_assign): Remove nullify of
723         rhs expression.
724
725 2006-10-13  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
726
727         PR fortran/29391
728         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Generate correct
729         code for LBOUND and UBOUND intrinsics.
730
731 2006-10-13  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
732
733         PR fortran/21435
734         * io.c (compare_to_allowed_values): New function.
735         (gfc_match_open): Add checks for constant values of specifiers.
736         (gfc_match_close): Add checks for constant values of the STATUS
737         specifier.
738
739 2006-10-12  Brooks Moses  <bmoses@stanford.edu>
740
741         * intrinsic.texi (STAT): Fixed a format typo in sample code.
742
743 2006-10-12  Brooks Moses  <bmoses@stanford.edu>
744
745         * intrinsic.texi (STAT): Shortened lines in sample code.
746
747 2006-10-11  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
748
749         * gfortran.h (gfc_show_actual_arglist, gfc_show_array_ref,
750         gfc_show_array_spec, gfc_show_attr, gfc_show_code,
751         gfc_show_components, gfc_show_constructor, gfc_show_equiv,
752         gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol,
753         gfc_show_typespec): Add prototypes.
754         * dump-parse-tree.c (gfc_show_actual_arglist, gfc_show_array_ref,
755         gfc_show_array_spec, gfc_show_attr, gfc_show_code,
756         gfc_show_components, gfc_show_constructor, gfc_show_equiv,
757         gfc_show_expr, gfc_show_namelist, gfc_show_ref, gfc_show_symbol,
758         gfc_show_typespec): Remove 'static' from declaration.
759
760 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
761
762         * invoke.texi, gfortran.texi: Corrected erronous dashes.
763
764 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
765
766         * Make-lang.in: Added "fortran.pdf", "gfortran.pdf" target
767         support.
768
769 2006-10-10  Daniel Franke  <franke.daniel@gmail.com>
770
771         * intrinsic.texi: added documentation for FSTAT, GETARG,GET_COMMAND,
772         GET_COMMAND_ARGUMENT, GETENV, GET_ENVIRONMENT_VARIABLE, IAND, IARGC,
773         LSTAT and STAT, removed the reference to PR19292 from ACCESS, CHMOD,
774         GMTIME, LSHIFT, LTIME, RSHIFT.
775
776 2006-10-10  Brooks Moses  <bmoses@stanford.edu>
777
778         * gfortran.texi (Standards): Update to current status.
779
780 2006-10-09  Brooks Moses  <bmoses@stanford.edu>
781
782         * Make-lang.in: Added intrinsic.texi to GFORTRAN_TEXI
783         dependences.
784
785 2006-10-09  Brooks Moses  <bmoses@stanford.edu>
786
787         * intrinsic.texi (MOVE_ALLOC): changed "Options" to "Standards".
788
789 2006-10-09  Steven G. Kargl  <kargl@gcc.gnu.org>
790
791         * gfortran.h: Define GFC_MPFR_TOO_OLD via mpfr version info.
792         * arith.c (arctangent, gfc_check_real_range): Use it.   
793         * simplify.c (gfc_simplify_atan2, gfc_simplify_exponent,
794         gfc_simplify_log, gfc_simplify_nearest): Use it.
795
796         PR fortran/15441
797         PR fortran/29312
798         * iresolve.c (gfc_resolve_rrspacing): Give rrspacing library
799         routine hidden precision argument.
800         (gfc_resolve_spacing): Give spacing library routine hidden
801         precision, emin - 1, and tiny(x) arguments.
802         * simplify.c (gfc_simplify_nearest): Remove explicit subnormalization.
803         (gfc_simplify_rrspacing): Implement formula from Fortran 95 standard.
804         (gfc_simplify_spacing): Implement formula from Fortran 2003 standard.
805         * trans-intrinsic.c (gfc_intrinsic_map_t) Declare rrspacing and
806         spacing via LIBF_FUNCTION
807         (prepare_arg_info, call_builtin_clz, gfc_conv_intrinsic_spacing,
808         gfc_conv_intrinsic_rrspacing): Remove functions.
809         (gfc_conv_intrinsic_function): Remove calls to
810         gfc_conv_intrinsic_spacing and gfc_conv_intrinsic_rrspacing.
811         * f95-lang.c (gfc_init_builtin_functions): Remove __builtin_clz,
812         __builtin_clzl and __builtin_clzll
813
814 2006-10-09  Richard Henderson  <rth@redhat.com>
815
816         Revert emutls patch.
817
818 2006-10-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
819
820         * intrinsic.c (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s,
821         add_sym_4s, add_sym_5s, add_functions): Use macro ACTUAL_NO,
822         ACTUAL_YES, NOT_ELEMENTAL and ELEMENTAL instead of constants
823         0 and 1 as second and third arguments to add_sym* functions.
824
825 2006-10-08  Erik Edelmann <edelmann@gcc.gnu.org>
826             Paul Thomas <pault@gcc.gnu.org>
827
828         PR fortran/20541
829         * interface.c (gfc_compare_derived_types): Add comparison of
830         the allocatable field.
831         * intrinsic.c (add_subroutines): Add MOVE_ALLOC.
832         * trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign,
833         gfc_trans_subcomponent_assign, gfc_conv_string_parameter,
834         gfc_trans_scalar_assign): Add extra arguments l_is_temp
835         and r_is_var to references to latter function.
836         (gfc_conv_function_call): Add enum for types of argument and
837         an associated variable parm_kind. Deallocate components of
838         INTENT(OUT) and non-variable arrays.
839         (gfc_trans_subcomponent_assign): Add block to assign arrays
840         to allocatable components.
841         (gfc_trans_scalar_assign): Add block to handle assignments of
842         derived types with allocatable components, using the above new
843         arguments to control allocation/deallocation of memory and the
844         copying of allocated arrays.
845         * trans-array.c (gfc_array_allocate): Remove old identification 
846         of pointer and replace with that of an allocatable array. Add
847         nullify of structures with allocatable components. 
848         (gfc_conv_array_initializer): Treat EXPR_NULL.
849         (gfc_conv_array_parameter): Deallocate allocatable components
850         of non-variable structures.
851         (gfc_trans_dealloc_allocated): Use second argument of library
852         deallocate to inhibit, without error, freeing NULL pointers.
853         (get_full_array_size): New function to return the size of a
854         full array.
855         (gfc_duplicate_allocatable): New function to allocate and copy
856         allocated data.
857         (structure_alloc_comps): New recursive function to deallocate,
858         nullify or copy allocatable components.
859         (gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp,
860         gfc_copy_alloc_comp): New interface functions to call previous.
861         (gfc_trans_deferred_array): Add the code to nullify allocatable
862         components, when entering scope, and to deallocate them on
863         leaving. Do not call gfc_trans_static_array_pointer and return
864         for structures with allocatable components and default
865         initializers.
866         * symbol.c (gfc_set_component_attr): Set allocatable field.
867         (gfc_get_component_attr): Set the allocatable attribute.
868         * intrinsic.h : Prototype for gfc_check_move_alloc.
869         * decl.c (build_struct): Apply TR15581 constraints for
870         allocatable components.
871         (variable_decl): Default initializer is always NULL for
872         allocatable components.
873         (match_attr_spec): Allow, or not, allocatable components,
874         according to the standard in force.
875         * trans-array.h : Prototypes for gfc_nullify_alloc_comp,
876         gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and
877         gfc_duplicate_allocatable.
878         * gfortran.texi : Add mention of TR15581 extensions.
879         * gfortran.h : Add attribute alloc_comp, add
880         gfc_components field allocatable and add the prototype
881         for gfc_expr_to_initialize.
882         * trans-stmt.c (generate_loop_for_temp_to_lhs,
883         generate_loop_for_rhs_to_temp, gfc_trans_where_assign,
884         gfc_trans_where_3): Add extra arguments to calls to
885         gfc_trans_scalar_assign and set appropriately.
886         (gfc_trans_allocate): Nullify allocatable components.
887         (gfc_trans_deallocate): Deallocate to ultimate allocatable
888         components but stop at ultimate pointer components.
889         * module.c (mio_symbol_attribute, mio_symbol_attribute,
890         mio_component): Add module support for allocatable
891         components.
892         * trans-types.c (gfc_get_derived_type): Treat allocatable
893         components.
894         * trans.h : Add two boolean arguments to
895         gfc_trans_scalar_assign.
896         * resolve.c (resolve_structure_cons): Check conformance of
897         constructor element and the component.
898         (resolve_allocate_expr): Add expression to nullify the
899         constructor expression for allocatable components.
900         (resolve_transfer): Inhibit I/O of derived types with
901         allocatable components.
902         (resolve_fl_derived): Skip check of bounds of allocatable
903         components.
904         * trans-decl.c (gfc_get_symbol_decl): Add derived types
905         with allocatable components to deferred variable.
906         (gfc_trans_deferred_vars): Make calls for derived types
907         with allocatable components to gfc_trans_deferred_array.
908         (gfc_generate_function_code): Nullify allocatable
909         component function result on entry.
910         * parse.c (parse_derived): Set symbol attr.allocatable if
911         allocatable components are present.
912         * check.c (gfc_check_allocated): Enforce attr.allocatable
913         for intrinsic arguments.
914         (gfc_check_move_alloc): Check arguments of move_alloc.
915         * primary.c (gfc_variable_attr): Set allocatable attribute.
916         * intrinsic.texi : Add index entry and section for
917         for move_alloc.
918
919 2006-10-08  Paul Thomas <pault@gcc.gnu.org>
920
921         PR fortran/29115
922         * resolve.c (resolve_structure_cons): It is an error if the
923         pointer component elements of a derived type constructor are
924         not pointer or target.
925
926
927         PR fortran/29211
928         * trans-stmt.c (generate_loop_for_temp_to_lhs,
929         generate_loop_for_rhs_to_temp): Provide a string length for
930         the temporary by copying that of the other side of the scalar
931         assignment.
932
933 2006-10-08  Tobias Burnus  <burnus@net-b.de>
934
935         PR fortran/28585
936         * intrinsic.c (add_functions): Add new_line Fortran 2003 intrinsic.
937         * intrinsic.h: Add gfc_simplify_new_line and gfc_check_new_line
938         prototypes.
939         * check.c (gfc_check_new_line): New function.
940         * simplify.c (gfc_simplify_new_line): New function.
941         * intrinsic.texi: Document new_line intrinsic.
942
943 2006-10-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
944
945         PR fortran/16580
946         PR fortran/29288
947         * gcc/fortran/intrinsic.c (add_sym): Define the actual_ok when a
948         gfc_intrinsic_sym structure is filled.
949         (gfc_intrinsic_actual_ok): New function.
950         (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s, add_sym_4s,
951         add_sym_5s): Intrinsic subroutines are not allowed as actual
952         arguments, so we remove argument actual_ok.
953         (add_functions): Correct the values for actual_ok of all intrinsics.
954         Add comments for gfc_check_access_func and gfc_resolve_index_func.
955         (add_subroutines): Remove the actual_ok argument, which was never used.
956         * gcc/fortran/intrinsic.h (gfc_intrinsic_actual_ok): New prototype.
957         * gcc/fortran/gfortran.h (gfc_resolve_index_func): New prototype.
958         * gcc/fortran/resolve.c (resolve_actual_arglist): Check whether
959         an intrinsic used as an argument list is allowed there.
960         * gcc/fortran/iresolve.c (gfc_resolve_index_func): New function.
961         (gfc_resolve_len): Change intrinsic function name to agree with
962         libgfortran.
963         * gcc/fortran/trans-decl.c (gfc_get_extern_function_decl): Add
964         new case, because some specific intrinsics take 3 arguments.
965         * gcc/fortran/intrinsic.texi: DIMAG is a GNU extension.
966
967 2006-10-06  Jakub Jelinek  <jakub@redhat.com>
968
969         PR fortran/28415
970         * trans-decl.c (gfc_finish_var_decl): With -fno-automatic, don't
971         make artificial variables or pointer to variable automatic array
972         TREE_STATIC.
973
974         * scanner.c (skip_free_comments): Return bool instead of void.
975         (gfc_next_char_literal): Don't return ' ' if & is missing after
976         !$omp or !$.  Use skip_{free,fixed}_comments directly instead
977         of gfc_skip_comments.
978
979 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
980
981         * gfortran.texi: (Current Status): update and rewrite to reflect
982         actual status more accurately.
983
984 2006-10-04  Brooks Moses  <bmoses@stanford.edu>
985
986         * gfortran.texi: Consistently refer to the compiler as "GNU
987         Fortran".
988         * intrinsic.texi: Ditto.
989         * invoke.texi: Ditto.
990
991 2006-10-04  Richard Henderson  <rth@redhat.com>
992             Jakub Jelinek  <jakub@redhat.com>
993
994         * f95-lang.c (gfc_init_builtin_functions): Add __emutls_get_address
995         and __emutls_register_common.
996         * openmp.c (gfc_match_omp_threadprivate): Don't error if !have_tls.
997         * trans-common.c (build_common_decl): Don't check have_tls.
998         * trans-decl.c (gfc_finish_var_decl): Likewise.
999         * types.def (BT_WORD, BT_FN_PTR_PTR): New.
1000         (BT_FN_VOID_PTR_WORD_WORD_PTR): New.
1001
1002 2006-10-04  Paul Thomas <pault@gcc.gnu.org>
1003
1004         PR fortran/29343
1005         * resolve.c (resolve_allocate_expr): Exclude derived types from
1006         search for dependences between allocated variables and the
1007         specification expressions for other allocations in the same
1008         statement.
1009
1010 2006-10-04  Paul Thomas  <pault@gcc.gnu.org>
1011
1012         PR fortran/29098
1013         * resolve.c (resolve_structure_cons): Do not return FAILURE if
1014         component expression is NULL.
1015
1016 2006-10-03  Paul Thomas  <pault@gcc.gnu.org>
1017
1018         PR fortran/20779
1019         PR fortran/20891
1020         * resolve.c (find_sym_in_expr): New function that returns true
1021         if a symbol is found in an expression.
1022         (resolve_allocate_expr): Check whether the STAT variable is
1023         itself allocated in the same statement.  Use the call above to
1024         check whether any of the allocated arrays are used in array
1025         specifications in the same statement.
1026
1027 2006-10-03  Steven G. Kargl  <kargl@gcc.gnu.org>
1028
1029         * arith.c (gfc_check_real_range):  Use correct exponent range for
1030         subnormal numbers.
1031
1032 2006-10-03  Paul Thomas  <pault@gcc.gnu.org>
1033
1034         PR fortran/29284
1035         PR fortran/29321
1036         PR fortran/29322
1037         * trans-expr.c (gfc_conv_function_call): Check the expression
1038         and the formal symbol are present when testing the actual
1039         argument.
1040
1041         PR fortran/25091
1042         PR fortran/25092
1043         * resolve.c (resolve_entries): It is an error if the entries
1044         of an array-valued function do not have the same shape.
1045
1046 2006-10-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1047
1048         PR middle-end/27478
1049         * trans-decl.c (gfc_get_fake_result_decl): Mark var as
1050         TREE_ADDRESSABLE.
1051
1052 2006-10-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1053
1054         PR fortran/19262
1055         * gfortran.h (gfc_option_t): Add max_continue_fixed and
1056         max_continue_free.
1057         * options.c (gfc_init_options): Initialize fixed form and free form
1058         consecutive continuation line limits.
1059         * scanner.c (gfc_scanner_init_1): Initialize continue_line
1060         and continue_count. (gfc_next_char_literal): Count the number of
1061         continuation lines in the current statement and warn if limit
1062         is exceeded.
1063
1064 2006-10-02  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1065
1066         PR fortran/19260
1067         * scanner.c (gfc_next_char_literal): Add check for missing '&'
1068         and warn if in_string, otherwise return ' '.
1069
1070 2006-10-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1071
1072         PR fortran/29210
1073         * primary.c (match_sym_complex_part): Named constants as real or
1074         imaginary part of complex a named constant are only allowed in
1075         Fortran 2003.
1076
1077 2006-10-01  Brooks Moses  <bmoses@stanford.edu>
1078
1079         * gfortran.texi: Corrected references to MALLOC intrinsic.
1080         * invoke.texi: Minor cleanup and clarification to the Dialect
1081         Options section.
1082
1083 2006-09-30  Brooks Moses  <bmoses@stanford.edu>
1084
1085         * invoke.texi:  Add mention of BOZ constants and integer
1086         overflow to -fno-range-check.
1087         * gfortran.texi:  Add mention of -fno-range-check to
1088         section on BOZ contants.
1089
1090 2006-09-30  Bernhard Fischer  <aldot@gcc.gnu.org>
1091
1092         * resolve.c: Fix commentary typo.  Fix whitespace.
1093
1094 2006-09-28  Steven G. Kargl  <kargl@gcc.gnu.org>
1095
1096         fortran/29147
1097         * arith.c (gfc_check_integer_range): Disable range checking via
1098         -fno-range-check.
1099
1100 2006-09-28  Steven G. Kargl <kargl@gcc.gnu.org>
1101
1102         * arith.c: Change conditional test for inclusion of arctangent().
1103         (gfc_check_real_range): Change conditional test for use of
1104         mpfr_subnormalize.
1105         * simplify.c (gfc_simplify_atan2): Fix conditional for use of
1106         mpfr_atan2() instead of arctangent().
1107         (gfc_simplify_exponent): Fix conditional for use of mpfr_get_exp().
1108         (gfc_simplify_log): Fix conditional for use of mpfr_atan2() instead
1109          of arctangent().
1110         (gfc_simplify_nearest): Fix conditional for use of mpfr_nextafter(). 
1111
1112 2006-09-27  Steven G. Kargl  <kargl@gcc.gnu.org>
1113
1114         * arith.c: Conditionally include arctangent2().
1115         (gfc_check_real_range): Use mpfr_subnormalize in preference to local
1116         hack.
1117         * trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Append
1118         l for long double functions.
1119         * simplify.c: Wrap Copyright to new line.
1120         (gfc_simplify_atan2): Use mpfr_atan2 in preference to arctangent2().
1121         (gfc_simplify_log): Ditto.
1122
1123
1124         PR fortran/28276
1125         * simplify.c (gfc_simplify_exponent): Use mpfr_get_exp in
1126         preference to broken local hack.
1127
1128         PR fortran/27021
1129         * simplify.c (gfc_simplify_nearest): Use mpfr_nexttoward and
1130         mpfr_subnormalize to handle numbers near zero in preference to broken
1131          local hack.
1132
1133 2006-09-26  Jakub Jelinek  <jakub@redhat.com>
1134
1135         PR fortran/29097
1136         * scanner.c (include_line): Handle conditional include.
1137
1138 2006-09-25  Tobias Schluter  <tobias.schlueter@physik.uni-muenchen.de>
1139
1140         PR fortran/21203
1141         * error.c (show_loci): No need to risk an ICE to output a
1142         slightly nicer error message.
1143
1144 2006-09-19 Paul Thomas <pault@gcc.gnu.org>
1145            Steven Bosscher  <steven@gcc.gnu.org>
1146
1147         PR fortran/29101
1148         * trans-stmt.c (gfc_trans_character_select): Store the label
1149         from select_string and then clean up any temporaries from the
1150         conversion of the select expression, before branching to the
1151         selected case.
1152
1153 2006-09-18 Paul Thomas <pault@gcc.gnu.org>
1154
1155         PR fortran/28526
1156         * primary.c (match_variable): If the compiler is in a module
1157         specification block, an interface block or a contains section,
1158         reset host_flag to force the changed symbols mechanism.
1159
1160         PR fortran/29101
1161         * trans-stmt.c (gfc_trans_character_select): Add the post block
1162         for the expression to the main block, after the call to
1163         select_string and the last label.
1164
1165 2006-09-18  Paul Thomas  <pault@gcc.gnu.org>
1166
1167         PR fortran/29060
1168         * iresolve.c (resolve_spread): Build shape for result if the
1169         source shape is available and dim and ncopies are constants.
1170
1171 2006-09-18  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1172
1173         PR fortran/28817
1174         PR fortran/21918
1175         * trans-decl.c (generate_local_decl): Change from 'warning' to
1176         'gfc_warning' to have line numbers correctly reported.
1177
1178 2006-09-15  Paul Thomas  <pault@gcc.gnu.org>
1179
1180         PR fortran/29051
1181         * decl.c (match_old_style_init): Set the 'where' field of the
1182         gfc_data structure 'newdata'.
1183
1184         * match.c (match_case_eos): Add a comprehensible error message.
1185
1186 2006-09-13  Wolfgang Gellerich  <gellerich@de.ibm.com>
1187
1188         * trans-expr.c (gfc_add_interface_mapping): For characters, dereference
1189         pointer if necessary and then perform the cast.
1190
1191 2006-09-11  Steven G. Kargl  <kargl@gcc.gnu.org>
1192
1193         * intrinsic.c: Update Copyright date.
1194         * intrinsic.h: Ditto.
1195
1196 2006-09-11  Paul Thomas  <pault@gcc.gnu.org>
1197
1198         PR fortran/28890
1199         * trans-expr.c (gfc_conv_function_call): Obtain the string length
1200         of a dummy character(*) function from the symbol if it is not
1201         already translated.  For a call to a character(*) function, use
1202         the passed, hidden string length argument, which is available
1203         from the backend_decl of the formal argument.
1204         * resolve.c (resolve_function): It is an error if a function call
1205         to a character(*) function is other than a dummy procedure or
1206         an intrinsic.
1207
1208 2006-09-10  Paul Thomas  <pault@gcc.gnu.org>
1209
1210         PR fortran/28959
1211         * trans-types.c (gfc_get_derived_type): Use the parent namespace of
1212         the procedure if the type's own namespace does not have a parent.
1213
1214 2006-09-10  Paul Thomas  <pault@gcc.gnu.org>
1215
1216         PR fortran/28923
1217         * expr.c (find_array_section): Only use the array lower and upper
1218         bounds for the start and end of the sections, where the expr is
1219         NULL.
1220
1221 2006-09-10  Paul Thomas <pault@gcc.gnu.org>
1222
1223         PR fortran/28914
1224         * trans-array.c (gfc_trans_array_constructor_value): Create a temporary
1225         loop variable to hold the current loop variable in case it is modified
1226         by the array constructor.
1227
1228 2006-09-07  Steven G. Kargl  <kargls@comcast.net>
1229
1230         * gfortran.h (gfc_integer_info): Eliminate max_int.
1231         * arith.c (gfc_arith_init_1): Remove initialization of max_int.
1232         (gfc_arith_done_1): Remove clearing of max_int.
1233         (gfc_check_integer_range): Fix range chekcing of overflow.
1234         * simplify.c (gfc_simplify_not): Construct mask that was max_int.
1235
1236 2006-09-05  Paul Thomas <pault@gcc.gnu.org>
1237
1238         PR fortran/28908
1239         * gfortran.h : Restore the gfc_dt_list structure and reference
1240         to it in gfc_namespace.
1241         * resolve.c (resolve_fl_derived): Restore the building of the
1242         list of derived types for the current namespace. Modify the
1243         restored code so that a check is made to see if the symbol is
1244         already in the list.
1245         (resolve_fntype): Make sure that the specification block
1246         version of the derived type is used for a module function that
1247         returns that type. 
1248         * symbol.c (gfc_free_dt_list): Restore.
1249         (gfc_free_namespace): Restore call to previous.
1250         * trans-types.c (copy_dt_decls_ifequal): Restore.
1251         (gfc_get_derived_type): Restore all the paraphenalia for
1252         association of derived types, including calls to previous.
1253         Modify the restored code such that all derived types are built
1254         if their symbols are found in the parent namespace; not just
1255         non-module types.  Add backend_decls to like derived types in
1256         sibling namespaces, as well as that of the derived type.
1257
1258 2006-08-30  Kazu Hirata  <kazu@codesourcery.com>
1259
1260         * match.c: Fix a comment typo.
1261
1262 2006-08-30  Paul Thomas  <pault@gcc.gnu.org>
1263
1264         PR fortran/28885
1265         * trans-expr.c (gfc_conv_aliased_arg): Ensure that the temp
1266         declaration is retained for INTENT(OUT) arguments.
1267
1268         PR fortran/28873
1269         PR fortran/20067
1270         * resolve.c (resolve_generic_f): Make error message more
1271         comprehensible.
1272         (resolve_generic_s): Restructure search for specific procedures
1273         to be similar to resolve_generic_f and change to similar error
1274         message.  Ensure that symbol reference is refreshed, in case
1275         the search produces a NULL.
1276         (resolve_specific_s): Restructure search, as above and as
1277         resolve_specific_f. Ensure that symbol reference is refreshed,
1278         in case the search produces a NULL.
1279
1280         PR fortran/25077
1281         PR fortran/25102
1282         * interface.c (check_operator_interface): Throw error if the
1283         interface assignment tries to change intrinsic type assigments
1284         or has less than two arguments.  Also, it is an error if an
1285         interface operator contains an alternate return.
1286
1287         PR fortran/24866
1288         * parse.c (gfc_fixup_sibling_symbols): Do not modify the symbol
1289         if it is a dummy in the contained namespace.
1290
1291 2006-08-29  Steven G. Kargl  <kargls@comcast.net>
1292
1293         PR fortran/28866
1294         * match.c: Wrap copyright.
1295         (gfc_match_assignment):  Return MATCH_NO for failed lvalue.  Remove
1296         gotos.  Move error handling of FL_PARAMETER to ...
1297         * gfc_match_if: Deal with MATCH_NO from above.
1298         * primary.c: Wrap copyright.
1299         (match_variable): ... here.  Improve error messages.
1300
1301 2006-08-29  Paul Thomas  <pault@gcc.gnu.org>
1302
1303         PR fortran/28788
1304         * symbol.c (gfc_use_derived): Never eliminate the symbol,
1305         following reassociation of use associated derived types.
1306
1307 2006-08-26  Steven G. Kargl  <kargls@comcast.net>
1308
1309         * arith.h: Update Copyright dates.  Fix whitespace.
1310         * arith.c: Update Copyright dates.  Fix whitespace.  Fix comments.
1311         (gfc_arith_done_1): Clean up pedantic_min_int and subnormal.
1312
1313 2006-08-26  Tobias Burnus  <burnus@net-b.de>
1314
1315         * gfortran.texi: Note variable initialization causes SAVE attribute.
1316         * intrinsic.texi: Clarify support for KIND=16 and KIND=10.
1317         Mention -std=f2003.  Cross reference INQUIRE from ACCESS intrinsic.
1318         Add missing ) in ACOS.
1319
1320 2006-08-26  Daniel Franke  <franke.daniel@gmail.com>
1321
1322         * intrinsic.texi: Update Copyright date.  Added documentation
1323         for ACOSH, AND, ASINH, ATANH, CHDIR, FGET, FGETC, FPUT, FPUTC,
1324         GETCWD, OR and XOR intrinsics, removed inadvertently introduced
1325         doc-stubs for EQV and NEQV, corrected some typographical errors.
1326
1327 2006-08-24  Daniel Franke  <franke.daniel@gmail.com>,
1328             Brooks Moses  <bmoses@stanford.edu>
1329
1330         * intrinsic.texi: Added doc-stubs for undocumented intrinsics,
1331         added a "See Also" section, renamed the "Options" section to
1332         "Standard", improved the index, and made numerous minor
1333         typo corrections and grammatical fixes.
1334
1335 2006-08-24  Paul Thomas  <pault@gcc.gnu.org>
1336
1337         PR fortran/28788
1338         * symbol.c (shift_types): Shift the derived type references in
1339         formal namespaces.
1340         (gfc_use_derived): Return if the derived type symbol is already
1341         in another namspace.  Add searches for the derived type in
1342         sibling namespaces.
1343
1344         PR fortran/28771
1345         * decl.c (add_init_expr_to_sym): Restore the original but
1346         restricted to parameter arrays to fix a regression.
1347
1348 2006-08-23  Steven G. Kargl  <kargls@comcast.net>
1349
1350         * gfortran.texi:  Fix last commit where a "no" was deleted and
1351         a grammatical error was introduced.
1352
1353 2006-08-23  Steven G. Kargl  <kargls@comcast.net>
1354
1355         * gfortran.texi:  Spell check.  Add a few contributors to
1356         Chapter 9.  Expand the description of BOZ constant handling.
1357
1358 2006-08-20  Janne Blomqvist  <jb@gcc.gnu.org>
1359
1360         PR fortran/25828
1361         * gfortran.texi: Mention STREAM I/O among supported F2003
1362         features.
1363
1364 2006-08-20  Paul Thomas  <pault@gcc.gnu.org>
1365
1366         PR fortran/28601
1367         PR fortran/28630
1368         * gfortran.h : Eliminate gfc_dt_list structure and reference
1369         to it in gfc_namespace.
1370         * resolve.c (resolve_fl_derived): Remove the building of the
1371         list of derived types for the current namespace.
1372         * symbol.c (find_renamed_type): New function to find renamed
1373         derived types by symbol name rather than symtree name.
1374         (gfc_use_derived): Search parent namespace for identical
1375         derived type and use it, even if local version is complete,
1376         except in interface bodies. Ensure that renamed derived types
1377         are found by call to find_renamed_type. Recurse for derived
1378         type components.
1379         (gfc_free_dt_list): Remove.
1380         (gfc_free_namespace): Remove call to previous.
1381         * trans-types.c (copy_dt_decls_ifequal): Remove.
1382         (gfc_get_derived_type): Remove all the paraphenalia for
1383         association of derived types, including calls to previous.
1384         * match.c (gfc_match_allocate): Call gfc_use_derived to
1385         associate any derived types that are being allocated.
1386
1387         PR fortran/20886
1388         * resolve.c (resolve_actual_arglist): The passing of
1389         a generic procedure name as an actual argument is an
1390         error.
1391
1392         PR fortran/28735
1393         * resolve.c (resolve_variable): Check for a symtree before
1394         resolving references.
1395
1396         PR fortran/28762
1397         * primary.c (match_variable): Return MATCH_NO if the symbol
1398         is that of the program.
1399
1400         PR fortran/28425
1401         * trans-expr.c (gfc_trans_subcomponent_assign): Translate
1402         derived type component expressions other than another derived
1403         type constructor.
1404
1405         PR fortran/28496
1406         * expr.c (find_array_section): Correct errors in
1407         the handling of a missing start value for the
1408         index triplet in an array reference.
1409
1410         PR fortran/18111
1411         * trans-decl.c (gfc_build_dummy_array_decl): Before resetting
1412         reference to backend_decl, set it DECL_ARTIFICIAL.
1413         (gfc_get_symbol_decl): Likewise for original dummy decl, when
1414         a copy is made of an array.
1415         (create_function_arglist): Likewise for the _entry paramter
1416         in entry_masters.
1417         (build_entry_thunks): Likewise for dummies in entry thunks.
1418
1419         PR fortran/28600
1420         * trans-decl.c (gfc_get_symbol_decl): Ensure that the
1421         DECL_CONTEXT of the length of a character dummy is the
1422         same as that of the symbol declaration.
1423
1424         PR fortran/28771
1425         * decl.c (add_init_expr_to_sym): Remove setting of charlen for
1426         an initializer of an assumed charlen variable.
1427
1428         PR fortran/28660
1429         * trans-decl.c (generate_expr_decls): New function.
1430         (generate_dependency_declarations): New function.
1431         (generate_local_decl): Call previous if not either a dummy or
1432         a declaration in an entry master.
1433
1434 2006-08-19  Erik Edelmann  <eedelman@gcc.gnu.org>
1435
1436         PR fortran/25217
1437         * resolve.c (resolve_fl_variable): Set a default initializer for
1438         derived types with INTENT(OUT) even if 'flag' is true.
1439         * trans-expr.c (gfc_conv_function_call): Insert code to
1440         reinitialize INTENT(OUT) arguments of derived type with default
1441         initializers.
1442
1443 2006-08-15  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1444
1445         PR fortran/25828
1446         * gfortran.h: Add new pointer for stream position to st_inquire.
1447         Rename gfc_large_io_int_kind to gfc_intio_kind.
1448         * trans-types.c (gfc_init_kinds): use gfc_intio_kind.
1449         * io.c: Add new IO tag for file position going in and another for out.
1450         (match_dt_element): Match new tag_spos.
1451         (gfc_resolve_dt): Resolve new tag_spos.
1452         (gfc_free_inquire): Free inquire->strm_pos.
1453         (match_inquire_element): Match new tag_strm_out.
1454         (gfc_resolve_inquire): Resolve new tag_strm_out.
1455         * trans-io.c: Rename IOPARM_type_large_io_int to IOPARM_type_intio.
1456         (gfc_build_st_parameter): Same.
1457         (gfc_build_io_library_fndecls) Same. and add build pointer type pintio.
1458         (gfc_trans_inquire): Translate strm_pos for inquire.
1459         * ioparm.def: Reorder flags to accomodate addition of new inquire
1460         flag for strm_pos_out and add it in.
1461
1462 2006-08-06  Paul Thomas  <pault@gcc.gnu.org>
1463
1464         PR fortran/28590
1465         * parse.c (parse_derived): Remove the test for sequence type
1466         components of a sequence type.
1467         * resolve.c (resolve_fl_derived): Put the test here so that
1468         pointer components are tested.
1469
1470 2006-08-05  Steven G. Kargl <kargls@comcast.nt>
1471
1472         PR fortran/28548
1473         * resolve.c(resolve_elemental_actual): Add flags.h to use -pedantic
1474         and exclude conversion functions in conditional.  Change gfc_error
1475         to gfc_warning.
1476         (warn_unused_label) Rename to ...
1477         (warn_unused_fortran_label) avoid warn_unused_label in flags.h.
1478
1479 2006-07-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1480
1481         * intrinsic.c (add_functions): Add ACCESS, CHMOD, RSHIFT, LSHIFT.
1482         (add_subroutines): Add LTIME, GMTIME and CHMOD.
1483         * intrinsic.h (gfc_check_access_func, gfc_check_chmod,
1484         gfc_check_chmod_sub, gfc_check_ltime_gmtime, gfc_simplify_rshift,
1485         gfc_simplify_lshift, gfc_resolve_access, gfc_resolve_chmod,
1486         gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
1487         gfc_resolve_gmtime, gfc_resolve_ltime): Add prototypes.
1488         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_ACCESS,
1489         GFC_ISYM_CHMOD, GFC_ISYM_LSHIFT, GFC_ISYM_RSHIFT.
1490         * iresolve.c (gfc_resolve_access, gfc_resolve_chmod,
1491         gfc_resolve_rshift, gfc_resolve_lshift, gfc_resolve_chmod_sub,
1492         gfc_resolve_gmtime, gfc_resolve_ltime): New functions.
1493         * check.c (gfc_check_access_func, gfc_check_chmod,
1494         gfc_check_chmod_sub, gfc_check_ltime_gmtime): New functions.
1495         * trans-intrinsic.c (gfc_conv_intrinsic_rlshift): New function.
1496         (gfc_conv_intrinsic_function): Add cases for the new GFC_ISYM_*.
1497
1498 2006-07-28  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1499
1500         * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
1501
1502 2006-07-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1503
1504         * intrinsic.c (add_functions): Add INT2, SHORT, INT8, LONG,
1505         LSTAT, MCLOCK and MCLOCK8 intrinsic functions.
1506         (add_subroutines): Add LSTAT intrinsic subroutine.
1507         * gfortran.h (gfc_generic_isym_id): Add GFC_ISYM_INT2,
1508         GFC_ISYM_INT8, GFC_ISYM_LONG, GFC_ISYM_LSTAT, GFC_ISYM_MCLOCK
1509         and GFC_ISYM_MCLOCK8.
1510         * iresolve.c (gfc_resolve_int2, gfc_resolve_int8,
1511         gfc_resolve_long, gfc_resolve_lstat, gfc_resolve_mclock,
1512         gfc_resolve_mclock8, gfc_resolve_lstat_sub): New functions.
1513         * check.c (gfc_check_intconv): New function.
1514         * trans-intrinsic.c (gfc_conv_intrinsic_function): Add cases for
1515         the added GFC_ISYM_*.
1516         * simplify.c (gfc_simplify_intconv, gfc_simplify_int2,
1517         gfc_simplify_int8, gfc_simplify_long): New functions.
1518         * intrinsic.h (gfc_check_intconv, gfc_simplify_int2,
1519         gfc_simplify_int8, gfc_simplify_long, gfc_resolve_int2,
1520         gfc_resolve_int8, gfc_resolve_long, gfc_resolve_lstat,
1521         gfc_resolve_mclock, gfc_resolve_mclock8, gfc_resolve_lstat_sub):
1522         Add prototypes.
1523
1524 2006-07-24  Erik Edelmann  <eedelman@gcc.gnu.org>
1525
1526         PR fortran/28416
1527         * trans-array.c (gfc_conv_array_parameter): Give special treatment for
1528         ALLOCATABLEs if they are themselves dummy variables.
1529
1530 2006-07-23  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1531
1532         PR fortran/25289
1533         * gfortran.h: Declare gfc_large_io_int_kind.
1534         * trans-types.c (gfc_init_kinds): Set gfc_large_io_int_kind
1535         to size 8 or 4.
1536         * trans-io.c (enum iofield_type): Add large_io_int type.
1537         (gfc_build_st_parameter): Same.
1538         (gfc_build_io_library_fndecls): Same.
1539         * ioparm_def: Use large_io_int to define rec.
1540
1541 2006-07-22  Steven Bosscher  <steven@gcc.gnu.org> 
1542
1543         PR fortran/28439
1544         * trans-stmt.c (gfc_trans_arithmetic_if): Evaluate the condition once.
1545
1546 2006-07-16  Jakub Jelinek  <jakub@redhat.com>
1547
1548         PR fortran/28390
1549         * trans-openmp.c (gfc_trans_omp_do): Look for LASTPRIVATE in
1550         code->exp.omp_clauses rather than in the 3rd function argument.
1551
1552 2006-07-16  Paul Thomas  <pault@gcc.gnu.org>
1553
1554         PR fortran/28384
1555         * trans-common.c (translate_common): If common_segment is NULL
1556         emit error that common block does not exist.
1557
1558         PR fortran/20844
1559         * io.c (check_io_constraints): It is an error if an ADVANCE
1560         specifier appears without an explicit format.
1561
1562         PR fortran/28201
1563         * resolve.c (resolve_generic_s): For a use_associated function,
1564         do not search for an alternative symbol in the parent name
1565         space.
1566
1567         PR fortran/20893
1568         * resolve.c (resolve_elemental_actual): New function t combine
1569         all the checks of elemental procedure actual arguments. In
1570         addition, check of array valued optional args(this PR) has
1571         been added.
1572         (resolve_function, resolve_call): Remove parts that treated
1573         elemental procedure actual arguments and call the above.
1574
1575 2006-07-14  Steven G. Kargl  <kargls@comcast.net>
1576
1577         * trans-expr.c (gfc_trans_string_copy): Evaluate the string lengths
1578
1579 006-07-13  Paul Thomas  <pault@gcc.gnu.org>
1580
1581         PR fortran/28353
1582         * trans-expr.c (gfc_conv_aliased_arg): Missing formal arg means
1583         that intent is INOUT (fixes regression).
1584
1585         PR fortran/25097
1586         * check.c (check_present): The only permitted reference is a
1587         full array reference.
1588
1589         PR fortran/20903
1590         * decl.c (variable_decl): Add error if a derived type is not
1591         from the current namespace if the namespace is an interface
1592         body.
1593
1594 2006-07-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1595
1596         PR fortran/28163
1597         * trans-expr.c (gfc_trans_string_copy): Generate inline code
1598         to perform string copying instead of calling a library function.
1599         * trans-decl.c (gfc_build_intrinsic_function_decls): Don't build
1600         decl for copy_string.
1601         * trans.h (gfor_fndecl_copy_string): Remove prototype.
1602
1603 2006-07-11  Feng Wang  <fengwang@nudt.edu.cn>
1604
1605         PR fortran/28213
1606         * trans-io.c (transfer_expr): Deal with Hollerith constants used in
1607         I/O list.
1608
1609 2006-07-07  Kazu Hirata  <kazu@codesourcery.com>
1610
1611         * intrinsic.texi: Fix typos.
1612
1613 2006-07-07  Paul Thomas  <pault@gcc.gnu.org>
1614
1615         PR fortran/28237
1616         PR fortran/23420
1617         * io.c (resolve_tag): Any integer that is not an assigned
1618         variable is an error.
1619
1620 2006-07-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1621
1622         PR fortran/28129
1623         * trans-array.c (gfc_trans_array_bound_check): Add a locus
1624         argument, and use it in the error messages.
1625         (gfc_conv_array_index_offset): Donc perform bounds checking on
1626         the last dimension of assumed-size arrays.
1627
1628 2006-07-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1629
1630         PR fortran/27874
1631         * trans-stmt.c (compute_inner_temp_size): Don't perform bounds
1632         checking when calculating the bounds of scalarization.
1633
1634 2006-07-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1635
1636         PR fortran/20892
1637         * interface.c (gfc_match_interface): Don't allow dummy procedures
1638         to have a generic interface.
1639
1640 2006-07-04  Paul Thomas  <pault@gcc.gnu.org>
1641
1642         PR fortran/28174
1643         * trans-array.c (gfc_conv_expr_descriptor): When building temp,
1644         ensure that the substring reference uses a new charlen.
1645         * trans-expr.c (gfc_conv_aliased_arg): Add the formal intent to
1646         the argument list, lift the treatment of missing string lengths
1647         from the above and implement the use of the intent.
1648         (gfc_conv_function_call): Add the extra argument to the call to
1649         the above.
1650
1651         PR fortran/28167
1652         * trans-array.c (get_array_ctor_var_strlen): Treat a constant
1653         substring reference.
1654         * array.c (gfc_resolve_character_array_constructor): Remove 
1655         static attribute and add the gfc_ prefix, make use of element
1656         charlens for the expression and pick up constant string lengths
1657         for expressions that are not themselves constant.
1658         * gfortran.h : resolve_character_array_constructor prototype
1659         added.
1660         * resolve.c (gfc_resolve_expr): Call resolve_character_array_
1661         constructor again after expanding the constructor, to ensure
1662         that the character length is passed to the expression.
1663
1664 2006-07-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1665             Daniel Franke  <franke.daniel@gmail.com>
1666
1667         * intrinsic.c (add_subroutines): Add ITIME and IDATE.
1668         * intrinsic.h (gfc_check_itime_idate,gfc_resolve_idate,
1669         fc_resolve_itime): New protos.
1670         * iresolve.c (gfc_resolve_itime, gfc_resolve_idate): New functions.
1671         * check.c (gfc_check_itime_idate): New function.
1672         * intrinsic.texi: Document the new intrinsics.
1673
1674 2006-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1675
1676         * intrinsics/date_and_time.c (itime0,idate0,itime_i4,itime_i8,
1677         idate_i4,idate_i8): New functions.
1678
1679
1680 2006-07-03  Asher Langton  <langton2@llnl.gov>
1681
1682         * decl.c (match_old_style_init): Add data attribute to symbol.
1683
1684 2006-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1685
1686         * iresolve.c (gfc_resolve_cpu_time, gfc_resolve_random_number):
1687         Remove ATTRIBUTE_UNUSED for used argument.
1688
1689 2006-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1690
1691         * intrinsic.texi: Document new intrinsics.
1692
1693 2006-07-01  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1694
1695         PR fortran/19259
1696         * parse.c (next_free): Error out on line starting with semicolon.
1697         (next_fixed): Fix formatting.  Error out on line starting with
1698         semicolon.
1699
1700 2006-06-30  Kazu Hirata  <kazu@codesourcery.com>
1701
1702         * check.c: Fix a comment typo.
1703
1704 2006-06-25  Paul Thomas  <pault@gcc.gnu.org>
1705
1706         PR fortran/25056
1707         * interface.c (compare_actual_formal): Signal an error if the formal
1708         argument is a pure procedure and the actual is not pure.
1709
1710         PR fortran/27554
1711         * resolve.c (resolve_actual_arglist): If the type of procedure
1712         passed as an actual argument is not already declared, see if it is
1713         an intrinsic.
1714
1715         PR fortran/25073
1716         * resolve.c (resolve_select): Use bits 1 and 2 of a new int to
1717         keep track of  the appearance of constant logical case expressions.
1718         Signal an error is either value appears more than once.
1719
1720         PR fortran/20874
1721         * resolve.c (resolve_fl_procedure): Signal an error if an elemental
1722         function is not scalar valued.
1723
1724         PR fortran/20867
1725         * match.c (recursive_stmt_fcn): Perform implicit typing of variables.
1726
1727         PR fortran/22038
1728         * match.c (match_forall_iterator): Mark new variables as
1729         FL_UNKNOWN if the match fails.
1730
1731         PR fortran/28119
1732         * match.c (gfc_match_forall): Remove extraneous call to
1733         gfc_match_eos.
1734
1735         PR fortran/25072
1736         * resolve.c (resolve_code, resolve_function): Rework
1737         forall_flag scheme so that it is set and has a value of
1738         2, when the code->expr (ie. the forall mask) is resolved.
1739         This is used to change "block" to "mask" in the non-PURE
1740         error message.
1741
1742 2006-06-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1743
1744         PR fortran/28081
1745         * resolve.c (resolve_substring): Don't issue out-of-bounds
1746         error messages when the range has zero size.
1747
1748 2006-06-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1749
1750         PR fortran/23862
1751         * lang-specs.h (f95-cpp-input): Pass -ffree-form to f951 unless
1752         -ffixed-form is explicitly specified.
1753
1754 2006-06-24  Paul Thomas  <pault@gcc.gnu.org>
1755
1756         PR fortran/28118
1757         * trans-array.c (gfc_conv_expr_descriptor): When building temp,
1758         use the substring reference to calculate the length if the
1759         expression does not have a charlen.
1760
1761 2006-06-24  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1762
1763         PR fortran/28094
1764         * trans-intrinsic.c (gfc_conv_intrinsic_mod): Support cases where
1765         there is no integer kind equal to the resulting real kind.
1766         * intrinsic.c (add_functions): MODULO is not allowed as an actual
1767         argument.
1768
1769 2006-06-23  Steven G. Kargl  <kargls@comcast.net>
1770
1771         PR fortran/27981
1772         * match.c (gfc_match_if):  Handle errors in assignment in simple if.
1773
1774 2006-06-22  Asher Langton  <langton2@llnl.gov>
1775
1776         PR fortran/24748
1777         * primary.c (gfc_match_rvalue): Don't call match_substring for
1778         implicit non-character types.
1779
1780 2006-06-22  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1781
1782         PR libfortran/26769
1783         * iresolve.c (gfc_resolve_reshape): Call reshape_r4 and
1784         reshape_r8 instead of reshape_4 and reshape_8.
1785         (gfc_resolve_transpose): Likewise for transpose.
1786
1787 2006-06-21  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1788
1789         * trans-expr.c (gfc_conv_missing_dummy, gfc_conv_unary_op,
1790         gfc_conv_cst_int_power, gfc_conv_string_tmp,
1791         gfc_conv_function_call): Replace calls to convert on constant
1792         integer nodes by build_int_cst.
1793         * trans-stmt.c (gfc_trans_do): Likewise.
1794         * trans-io.c (set_internal_unit, transfer_namelist_element):
1795         Likewise.
1796         * trans-decl.c (build_entry_thunks): Likewise.
1797
1798 2006-06-20  Steven G. Kargl  <kargls@comcast.net>
1799
1800         * simplify.c (gfc_simplify_rrspacing): Initialize and clear mpfr_t
1801         variable.
1802
1803 2006-06-20  Paul Thomas  <pault@gcc.gnu.org>
1804
1805         PR fortran/25049
1806         PR fortran/25050
1807         * check.c (non_init_transformational): New function.
1808         (find_substring_ref): New function to signal use of disallowed
1809         transformational intrinsic in an initialization expression.
1810         (gfc_check_all_any): Call previous if initialization expr.
1811         (gfc_check_count): The same.
1812         (gfc_check_cshift): The same.
1813         (gfc_check_dot_product): The same.
1814         (gfc_check_eoshift): The same.
1815         (gfc_check_minloc_maxloc): The same.
1816         (gfc_check_minval_maxval): The same.
1817         (gfc_check_gfc_check_product_sum): The same.
1818         (gfc_check_pack): The same.
1819         (gfc_check_spread): The same.
1820         (gfc_check_transpose): The same.
1821         (gfc_check_unpack): The same.
1822
1823         PR fortran/18769
1824         *intrinsic.c (add_functions): Add gfc_simplify_transfer.
1825         *intrinsic.h : Add prototype for gfc_simplify_transfer.
1826         *simplify.c (gfc_simplify_transfer) : New function to act as
1827         placeholder for eventual implementation.  Emit error for now.
1828
1829         PR fortran/16206
1830         * expr.c (find_array_element): Eliminate condition on length of
1831         offset. Add bounds checking. Rearrange exit. Return try and
1832         put gfc_constructor result as an argument.
1833         (find_array_section): New function.
1834         (find_substring_ref): New function.
1835         (simplify_const_ref): Add calls to previous.
1836         (simplify_parameter_variable): Return on NULL expr.
1837         (gfc_simplify_expr): Only call gfc_expand_constructor for full
1838         arrays.
1839
1840         PR fortran/20876
1841         * match.c (gfc_match_forall): Add missing locus to gfc_code.
1842
1843 2006-06-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1844
1845         PR fortran/26801
1846         * trans-intrinsic.c (gfc_conv_associated): Use pre and post blocks
1847         of the scalarization expression.
1848
1849 2006-06-18  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
1850
1851         PR fortran/19310
1852         PR fortran/19904
1853         * arith.c (gfc_range_check): Return ARITH_OK if -fno-range-check. Add
1854         return of ARITH_NAN, ARITH_UNDERFLOW, and ARITH_OVERFLOW.
1855         (gfc_arith_divide): If -fno-range-check allow mpfr to divide by zero.
1856         * gfortran.h (gfc_option_t): Add new flag.
1857         * invoke.texi: Document new flag.
1858         * lang.opt: Add option -frange-check.
1859         * options.c (gfc_init_options): Initialize new flag.
1860         (gfc_handle_options): Set flag if invoked.
1861         * simplify.c (range_check): Add error messages for
1862         overflow, underflow, and other errors.
1863         * trans-const.c (gfc_conv_mpfr_to_tree): Build NaN and Inf from mpfr
1864         result.
1865
1866 2006-06-17  Karl Berry  <karl@gnu.org>
1867
1868         * gfortran.texi (@dircategory): Use "Software development"
1869         instead of "Programming", following the Free Software Directory.
1870
1871 2006-06-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1872
1873         PR fortran/27965
1874         * trans-array.c (gfc_conv_ss_startstride): Correct the runtime
1875         conditions for bounds-checking. Check for nonzero stride.
1876         Don't check the last dimension of assumed-size arrays. Fix the
1877         dimension displayed in the error message.
1878
1879 2006-06-15  Thomas Koenig <Thomas.Koenig@online.de>
1880
1881         * trans-array.h (gfc_trans_create_temp_array):  Add bool
1882         argument.
1883         * trans-arrray.c (gfc_trans_create_temp_array): Add extra
1884         argument "function" to show if we are translating a function.
1885         If we are translating a function, perform checks whether
1886         the size along any argument is negative.  In that case,
1887         allocate size 0.
1888         (gfc_trans_allocate_storage):  Add function argument (as
1889         false) to gfc_trans_create_temp_array call.
1890         * trans-expr.c (gfc_conv_function_call):  Add function
1891         argument (as true) to gfc_trans_create_temp_array call.
1892         * trans-stmt.c (gfc_conv_elemental_dependencies): Add
1893         function argument (as false) to gfc_trans_create_temp_array
1894         call.
1895         * trans-intrinsic.c:  Likewise.
1896
1897 2006-06-10  Paul Thomas  <pault@gcc.gnu.org>
1898
1899         PR fortran/24558
1900         PR fortran/20877
1901         PR fortran/25047
1902         * decl.c (get_proc_name): Add new argument to flag that a
1903         module function entry is being treated. If true, correct
1904         error condition, add symtree to module namespace and add
1905         a module procedure.
1906         (gfc_match_function_decl, gfc_match_entry,
1907         gfc_match_subroutine): Use the new argument in calls to
1908         get_proc_name.
1909         * resolve.c (resolve_entries): ENTRY symbol reference to
1910         to master entry namespace if a module function.
1911         * trans-decl.c (gfc_create_module_variable): Return if
1912         the symbol is an entry.
1913         * trans-exp.c (gfc_conv_variable): Check that parent_decl
1914         is not NULL.
1915
1916 2006-06-09  Jakub Jelinek  <jakub@redhat.com>
1917
1918         PR fortran/27916
1919         * trans-openmp.c (gfc_omp_clause_default_ctor): New function.
1920         * trans.h (gfc_omp_clause_default_ctor): New prototype.
1921         * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_DEFAULT_CTOR): Define.
1922
1923 2006-06-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1924
1925         PR fortran/27958
1926         * trans-expr.c (gfc_conv_substring): If the substring start is
1927         greater than its end, the length of the substring is zero, and
1928         not negative.
1929         (gfc_trans_string_copy): Don't generate a call to
1930         _gfortran_copy_string when destination length is zero.
1931
1932 2006-06-08  Asher Langton  <langton2@llnl.gov>
1933         
1934         PR fortran/27786
1935         * trans-array.c (gfc_conv_array_ref): Eliminate bounds checking
1936         for assumed-size Cray pointees.
1937
1938 2006-06-08  Steven G. Kargl  <kargls@comcat.net>
1939
1940         * intrinsic.c (add_subroutine):  Make make_noreturn() conditional on
1941         the appropriate symbol name.
1942         
1943 2006-06-07  Paul Thomas  <pault@gcc.gnu.org>
1944
1945         PR fortran/23091
1946         * resolve.c (resolve_fl_variable): Error if an automatic
1947         object has the SAVE attribute.
1948
1949         PR fortran/24168
1950         * expr.c (simplify_intrinsic_op): Transfer the rank and
1951         the locus to the simplified expression.
1952
1953         PR fortran/25090
1954         PR fortran/25058
1955         * gfortran.h : Add int entry_id to gfc_symbol.
1956         * resolve.c : Add static variables current_entry_id and
1957         specification_expr.
1958         (resolve_variable): During code resolution, check if a
1959         reference to a dummy variable in an executable expression
1960         is preceded by its appearance as a parameter in an entry.
1961         Likewise check its specification expressions.
1962         (resolve_code): Update current_entry_id on EXEC_ENTRY.
1963         (resolve_charlen, resolve_fl_variable): Set and reset
1964         specifiaction_expr.
1965         (is_non_constant_shape_array): Do not return on detection
1966         of a variable but continue to resolve all the expressions.
1967         (resolve_codes): set current_entry_id to an out of range
1968         value.
1969
1970 2006-06-06  Mike Stump  <mrs@apple.com>
1971
1972         * Make-lang.in: Rename to htmldir to build_htmldir to avoid
1973         installing during build.
1974
1975 2006-06-06  Paul Thomas  <pault@gcc.gnu.org>
1976
1977         PR fortran/27897
1978         * match.c (gfc_match_common):  Fix code typo.  Remove
1979         sym->name, since sym is NULL, and replace with name.
1980
1981 2006-06-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1982
1983         PR libfortran/27895
1984         * resolve.c (compute_last_value_for_triplet): New function.
1985         (check_dimension): Correctly handle zero-sized array sections.
1986         Add checking on last element of array sections.
1987
1988 2006-06-05  Steven G. Kargl  <kargls@comcast.net>
1989
1990         * data.c (gfc_assign_data_value):  Fix comment typo.  Remove
1991         a spurious return.
1992
1993 2006-06-05  Paul Thomas  <pault@gcc.gnu.org>
1994
1995         PR fortran/14067
1996         * data.c (create_character_intializer): Add warning message
1997         for truncated string.
1998
1999         PR fortran/16943
2000         * symbol.c : Include flags.h.
2001         (gfc_add_type): If a procedure and types are the same do not
2002         throw an error unless standard is less than gnu or pedantic.
2003
2004         PR fortran/20839
2005         * parse.c (parse_do_block): Error if named block do construct
2006         does not have a named enddo.
2007
2008         PR fortran/27655
2009         * check.c (gfc_check_associated): Pick up EXPR_NULL for pointer
2010         as well as target and put error return at end of function.
2011
2012 2006-06-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2013
2014         * trans.c (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return):
2015         Add strings for common runtime error messages.
2016         (gfc_trans_runtime_check): Add a locus argument, use a string
2017         and not a string tree for the message.
2018         * trans.h (gfc_trans_runtime_check): Change prototype accordingly.
2019         (gfc_msg_bounds, gfc_msg_fault, gfc_msg_wrong_return): Add proto.
2020         * trans-const.c (gfc_strconst_bounds, gfc_strconst_fault,
2021         gfc_strconst_wrong_return, gfc_strconst_current_filename): Remove.
2022         (gfc_init_constants): Likewise.
2023         * trans-const.h: Likewise.
2024         * trans-decl.c (gfc_build_builtin_function_decls): Call to
2025         _gfortran_runtime_error has only one argument, the message string.
2026         * trans-array.h (gfc_conv_array_ref): Add a symbol argument and a
2027         locus.
2028         * trans-array.c (gfc_trans_array_bound_check): Build precise
2029         error messages.
2030         (gfc_conv_array_ref): Use the new symbol argument and the locus
2031         to build more precise error messages.
2032         (gfc_conv_ss_startstride): More precise error messages.
2033         * trans-expr.c (gfc_conv_variable): Give symbol reference and
2034         locus to gfc_conv_array_ref.
2035         (gfc_conv_function_call): Use the new prototype for
2036         gfc_trans_runtime_check.
2037         * trans-stmt.c (gfc_trans_goto): Build more precise error message.
2038         * trans-io.c (set_string): Likewise.
2039         * trans-intrinsic.c (gfc_conv_intrinsic_bound): Use new prototype
2040         for gfc_trans_runtime_check.
2041
2042 2006-06-01  Thomas Koenig  <Thomas.Koenig@online.de>
2043
2044         PR fortran/27715
2045         * arith.c:  Cast the characters from the strings to unsigned
2046         char to avoid values less than 0 for extended ASCII.
2047
2048 2006-06-01  Per Bothner  <bothner@bothner.com>
2049
2050         * data.c (gfc_assign_data_value): Handle USE_MAPPED_LOCATION.
2051         * scanner.c (gfc_gobble_whitespace): Likewise.
2052
2053 2006-06-01  Paul Thomas  <pault@gcc.gnu.org>
2054
2055         PR fortran/25098
2056         PR fortran/25147
2057         * interface.c (compare_parameter): Return 1 if the actual arg
2058         is external and the formal is a procedure.
2059         (compare_actual_formal): If the actual argument is a variable
2060         and the formal a procedure, this an error.  If a gsymbol exists
2061         for a procedure of the same name, this is not yet resolved and
2062         the error is cleared.
2063
2064         * trans-intrinsic.c (gfc_conv_associated): Make provision for
2065         zero array length or zero string length contingent on presence
2066         of target, for consistency with standard.
2067
2068 2006-05-30  Asher Langton  <langton2@llnl.gov>
2069
2070         * symbol.c (check_conflict): Allow external, function, and
2071         subroutine attributes with Cray pointees.
2072         * trans-expr.c (gfc_conv_function_val): Translate Cray pointees
2073         that point to procedures.
2074         * gfortran.texi: Document new feature.
2075
2076 2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2077
2078         PR fortran/27634
2079         * io.c (check_format): Add error for missing period in format
2080         specifier unless -std=legacy.
2081         * gfortran.texi: Add description of expanded namelist read and
2082         missing period in format extensions.
2083
2084 2006-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2085
2086         PR fortran/19777
2087         * trans-array.c (gfc_conv_array_ref): Perform out-of-bounds
2088         checking for assumed-size arrrays for all but the last dimension.
2089
2090 2006-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2091
2092         * invoke.texi: Change -fpackderived into -fpack-derived.
2093
2094 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
2095
2096         * options.c, primary.c, resolve.c, trans-common.c: Fix typos
2097         in error messages.
2098
2099 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
2100
2101         * check.c, expr.c, resolve.c, trans-common.c,
2102         trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos.
2103
2104 2006-05-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2105
2106         PR fortran/19777
2107         * trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds
2108         checking for assumed-size arrrays.
2109
2110 2006-05-27  Paul Thomas  <pault@gcc.gnu.org>
2111
2112         * trans-intrinsic.c (gfc_conv_associated): If pointer in first
2113         arguments has zero array length of zero string length, return
2114         false.
2115
2116 2006-05-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2117
2118         PR fortran/27524
2119         * trans-array.c (gfc_trans_dummy_array_bias): Don't use stride as
2120         a temporary variable when -fbounds-check is enabled, since its
2121         value will be needed later.
2122
2123 2006-05-26  Thomas Koenig  <Thomas.Koenig@online.de>
2124
2125         PR fortran/23151
2126         * io.c (match_io):  print (1,*) is an error.
2127
2128 2006-05-26  Paul Thomas  <pault@gcc.gnu.org>
2129
2130         PR fortran/27709
2131         * resolve.c (find_array_spec): Add gfc_symbol, derived, and
2132         use to track repeated component references.
2133
2134         PR fortran/27155
2135         PR fortran/27449
2136         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Use
2137         se->string_length throughout and use memcpy to populate the
2138         expression returned to the scalarizer.
2139         (gfc_size_in_bytes): New function.
2140
2141 2006-05-21  Paul Thomas  <pault@gcc.gnu.org>
2142
2143         PR fortran/27613
2144         * primary.c (gfc_match_rvalue): Test if symbol represents a
2145         direct recursive function reference.  Error if array valued,
2146         go to function0 otherwise.
2147
2148 2006-05-21  Paul Thomas  <pault@gcc.gnu.org>
2149
2150         PR fortran/25746
2151         * interface.c (gfc_extend_assign): Use new EXEC_ASSIGN_CALL.
2152         * gfortran.h : Put EXEC_ASSIGN_CALL in enum.
2153         * trans-stmt.c (gfc_conv_elemental_dependencies): New function.
2154         (gfc_trans_call): Call it.  Add new boolian argument to flag
2155         need for dependency checking. Assert intent OUT and IN for arg1
2156         and arg2.
2157         (gfc_trans_forall_1): Use new code EXEC_ASSIGN_CALL.
2158         trans-stmt.h : Modify prototype of gfc_trans_call.
2159         trans.c (gfc_trans_code): Add call for EXEC_ASSIGN_CALL.
2160         st.c (gfc_free_statement): Free actual for EXEC_ASSIGN_CALL.
2161         * dependency.c (gfc_check_fncall_dependency): Don't check other
2162         against itself.
2163
2164         PR fortran/25090
2165         * resolve.c : Remove resolving_index_expr.
2166         (entry_parameter): Remove.
2167         (gfc_resolve_expr, resolve_charlen, resolve_fl_variable): Lift
2168         calls to entry_parameter and references to resolving_index_expr.
2169
2170         PR fortran/27584
2171         * check.c (gfc_check_associated): Replace NULL assert with an
2172         error message, since it is possible to generate bad code that
2173         has us fall through to here..
2174
2175         PR fortran/19015
2176         * iresolve.c (maxloc, minloc): If DIM is not present, pass the
2177         rank of ARRAY as the shape of the result.  Otherwise, pass the
2178         shape of ARRAY, less the dimension DIM.
2179         (maxval, minval): The same, when DIM is present, otherwise no
2180         change.
2181
2182 2006-05-19  H.J. Lu  <hongjiu.lu@intel.com>
2183
2184         PR fortran/27662
2185         * trans-array.c (gfc_conv_expr_descriptor): Don't zero the
2186         first stride to indicate a temporary.
2187         * trans-expr.c (gfc_conv_function_call): Likewise.
2188
2189 2006-05-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2190             Feng Wang  <fengwang@nudt.edu.cn>
2191
2192         PR fortran/27552
2193         * dump-parse-tree.c (gfc_show_expr): Deal with Hollerith constants.
2194         * data.c (create_character_intializer): Set from_H flag if character is
2195         initialized by Hollerith constant.
2196
2197 2006-05-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2198
2199         PR fortran/26551
2200         * resolve.c (resolve_call, resolve_function): Issue an error
2201         if a function or subroutine call is recursive but the function or
2202         subroutine wasn't declared as such.
2203
2204 2006-05-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2205
2206         PR fortran/26551
2207         * gfortran.dg/recursive_check_1.f: New test.
2208
2209
2210 2006-05-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2211
2212         PR fortran/27320
2213         * dump-parse-tree.c (gfc_show_code_node): Try harder to find the
2214         called procedure name.
2215
2216 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
2217
2218         PR middle-end/27415
2219         * trans-openmp.c (gfc_trans_omp_parallel_do,
2220         gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare): Set
2221         OMP_PARALLEL_COMBINED flag.
2222
2223 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
2224
2225         PR driver/26885
2226         * Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with
2227         $(GCC_OBJS).
2228
2229 2006-05-15  Paul Thomas  <pault@gcc.gnu.org>
2230
2231         PR fortran/25090
2232         * resolve.c: Static resolving_index_expr initialized.
2233         (entry_parameter): New function to emit errors for variables
2234         that are not entry parameters.
2235         (gfc_resolve_expr): Call entry_parameter, when resolving
2236         variables, if the namespace has entries and resolving_index_expr
2237         is set.
2238         (resolve_charlen): Set resolving_index_expr before the call to
2239         resolve_index_expr and reset it afterwards.
2240         (resolve_fl_variable): The same before and after the call to
2241         is_non_constant_shape_array, which ultimately makes a call to
2242         gfc_resolve_expr.
2243
2244         PR fortran/25082
2245         * resolve.c (resolve_code): Add error condition that the return
2246         expression must be scalar.
2247
2248         PR fortran/27411
2249         * matchexp.c (gfc_get_parentheses): New function.
2250         (match_primary): Remove inline code and call above.
2251         * gfortran.h: Provide prototype for gfc_get_parentheses.
2252         * resolve.c (resolve_array_ref): Call the above, when start is a
2253         derived type variable array reference.
2254
2255 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
2256
2257         PR fortran/27446
2258         * trans-openmp.c (gfc_trans_omp_array_reduction): Ensure
2259         OMP_CLAUSE_REDUCTION_{INIT,MERGE} are set to BIND_EXPR.
2260
2261 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
2262
2263         * Make-lang.in (fortran/options.o): Depend on $(TARGET_H).
2264
2265 2006-05-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2266
2267         PR fortran/27553
2268         * parse.c (next_free): Return instead of calling decode_statement
2269         upon error.
2270
2271 2005-05-10  Thomas Koenig  <Thomas.Koenig@online.de>
2272
2273         PR fortran/27470
2274         * trans-array.c(gfc_array_allocate):  If ref->next exists
2275         that is if there is a statement like ALLOCATE(foo%bar(2)),
2276         F95 rules require that bar should be a pointer.
2277
2278 2006-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2279
2280         PR fortran/20460
2281         * resolve.c (gfc_resolve_index): Make REAL array indices a
2282         GFC_STD_LEGACY feature.
2283
2284 2006-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2285
2286         PR fortran/24549
2287         * parse.c (reject_statement): Clear gfc_new_block.
2288
2289 2006-05-09  Steven G. Kargl  <kargls@comcast.net>
2290
2291         * invoke.texi: Missed file in previous commit.  Update
2292          description of -fall-intrinsics
2293
2294 2006-05-07  Steven Boscher  <steven@gcc.gnu.org>
2295
2296         PR fortran/27378
2297         * parse.c (next_statement): Add check to avoid an ICE when
2298         gfc_current_locus.lb is not set.
2299
2300 2006-05-07  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
2301
2302         PR fortran/27457
2303         * match.c (match_case_eos): Error out on garbage following
2304         CASE(...).
2305
2306 2006-05-07  Paul Thomas  <pault@gcc.gnu.org>
2307
2308         PR fortran/24813
2309         * trans-array.c (get_array_ctor_strlen): Remove static attribute.
2310         * trans.h: Add prototype for get_array_ctor_strlen.
2311         * trans-intrinsic.c (gfc_conv_intrinsic_len): Switch on EXPR_ARRAY
2312         and call get_array_ctor_strlen.
2313
2314 2006-05-05  Steven G. Kargl  <kargls@comcast.net>
2315
2316         * invoke.texi: Update description of -fall-intrinsics
2317         * options.c (gfc_post_options): Disable -Wnonstd-intrinsics if
2318         -fall-intrinsics is used.
2319         (gfc_handle_option): Permit -Wno-nonstd-intrinsics.
2320
2321 2006-05-04  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
2322
2323         * simplify.c (ascii_table): Fix wrong entry.
2324
2325 2006-05-02  Steven G. Kargl  <kargls@comcast.net>
2326
2327         PR fortran/26896
2328         * lang.opt: Fix -Wtab description
2329
2330         PR fortran/20248  
2331         * lang.opt: New flag -fall-intrinsics.
2332         * invoke.texi:  Document option.
2333         * gfortran.h (options_t):  New member flag_all_intrinsics.
2334         * options.c (gfc_init_options, gfc_handle_option): Set new option.
2335         sort nearby misplaced options.
2336         * intrinsic.c (add_sym, make_generic, make_alias):  Use it.
2337
2338 2006-05-02 Paul Thomas <pault@gcc.gnu.org>
2339
2340         PR fortran/27269
2341         * module.c: Add static flag in_load_equiv.
2342         (mio_expr_ref): Return if no symtree and in_load_equiv.
2343         (load_equiv): If any of the equivalence members have no symtree, free
2344         the equivalence and the associated expressions.
2345
2346         PR fortran/27324
2347         * trans-common.c (gfc_trans_common): Invert the order of calls to
2348         finish equivalences and gfc_commit_symbols.
2349
2350 2006-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
2351
2352         PR fortran/25681
2353         * simplify.c (simplify_len): Character variables with constant
2354         length can be simplified.
2355
2356 2006-04-29  H.J. Lu  <hongjiu.lu@intel.com>
2357
2358         PR fortran/27351
2359         * trans-array.c (gfc_conv_array_transpose): Move gcc_assert
2360         before gfc_conv_expr_descriptor.
2361
2362 2006-04-23  Paul Thomas  <pault@gcc.gnu.org>
2363
2364         PR fortran/25099
2365         * resolve.c (resolve_call): Check conformity of elemental
2366         subroutine actual arguments.
2367
2368 2006-04-22  Jakub Jelinek  <jakub@redhat.com>
2369
2370         PR fortran/26769
2371         * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
2372         (gfc_resolve_transpose): Use transpose_r16 for real(16).
2373
2374 2006-04-21 Paul Thomas <pault@gcc.gnu.org>
2375
2376         PR fortran/27122
2377         * resolve.c (resolve_function): Remove general restriction on auto
2378         character length function interfaces.
2379         (gfc_resolve_uops): Check restrictions on defined operator
2380         procedures.
2381         (resolve_types): Call the check for defined operators.
2382
2383         PR fortran/27113
2384         * trans-array.c (gfc_trans_array_constructor_subarray): Remove
2385         redundant gfc_todo_error.
2386         (get_array_ctor_var_strlen): Remove typo in enum.
2387
2388 2006-04-18  Bernhard Fischer  <aldot@gcc.gnu.org>
2389
2390         * parse.c (next_free): Use consistent error string between
2391         free-form and fixed-form for illegal statement label of zero.
2392         (next_fixed): Use consistent warning string between free-form
2393         and fixed-form for statement labels for empty statements.
2394
2395 2006-04-18  Steve Ellcey  <sje@cup.hp.com>
2396
2397         * trans-io.c (gfc_build_io_library_fndecls): Align pad.
2398
2399 2006-04-16  Thomas Koenig  <Thomas.Koenig@online.de>
2400
2401         PR fortran/26017
2402         * trans-array.c(gfc_array_init_size):  Introduce or_expr
2403         which is true if the size along any dimension
2404         is negative.  Create a temporary variable with base
2405         name size.  If or_expr is true, set the temporary to 0,
2406         to the normal size otherwise.
2407
2408 2006-04-16  Paul Thomas  <pault@gcc.gnu.org>
2409
2410         PR fortran/26822
2411         * intrinsic.c (add_functions): Mark LOGICAL as elemental.
2412
2413         PR fortran/26787
2414         * expr.c (gfc_check_assign): Extend scope of error to include
2415         assignments to a procedure in the main program or, from a
2416         module or internal procedure that is not that represented by
2417         the lhs symbol. Use VARIABLE rather than l-value in message.
2418
2419         PR fortran/27096
2420         * trans-array.c (gfc_trans_deferred_array): If the backend_decl
2421         is not a descriptor, dereference and then test and use the type.
2422
2423         PR fortran/25597
2424         * trans-decl.c (gfc_trans_deferred_vars): Check if an array
2425         result, is also automatic character length.  If so, process
2426         the character length.
2427
2428         PR fortran/18003
2429         PR fortran/25669
2430         PR fortran/26834
2431         * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set
2432         data.info.dimen for bound intrinsics.
2433         * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and
2434         UBOUND intrinsics and supply their shape information to the ss
2435         and the loop.
2436
2437         PR fortran/27124
2438         * trans_expr.c (gfc_trans_function_call):  Add a new block, post,
2439         in to which all the argument post blocks are put.  Add this block
2440         to se->pre after a byref call or to se->post, otherwise.
2441
2442 2006-04-14  Roger Sayle  <roger@eyesopen.com>
2443
2444         * trans-io.c (set_string): Use fold_build2 and build_int_cst instead
2445         of build2 and convert to construct "x < 0" rather than "x <= -1".
2446
2447 2006-04-13  Richard Henderson  <rth@redhat.com>
2448
2449         * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed
2450         number of operands to OMP_SECTIONS.
2451
2452 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
2453
2454         * gfortran.texi: Fix typos.  Follow spelling conventions.
2455         * resolve.c, trans-expr.c, trans-stmt.c: Fix comment typos.
2456         Follow spelling conventions.
2457
2458 2006-04-05  Roger Sayle  <roger@eyesopen.com>
2459
2460         * dependency.c (get_no_elements): Delete function.
2461         (get_deps): Delete function.
2462         (transform_sections): Delete function.
2463         (gfc_check_section_vs_section): Significant rewrite.
2464
2465 2006-04-04  H.J. Lu  <hongjiu.lu@intel.com>
2466
2467         PR fortran/25619
2468         * trans-array.c (gfc_conv_expr_descriptor): Only dereference
2469         character pointer when copying temporary.
2470
2471         PR fortran/23634
2472         * trans-array.c (gfc_conv_expr_descriptor): Properly copy
2473         temporary character with non constant size.
2474
2475 2006-04-03  Paul Thomas  <pault@gcc.gnu.org>
2476
2477         PR fortran/26891
2478         * trans.h: Prototype for gfc_conv_missing_dummy.
2479         * trans-expr (gfc_conv_missing_dummy): New function
2480         (gfc_conv_function_call): Call it and tidy up some of the code.
2481         * trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
2482
2483         PR fortran/26976
2484         * array.c (gfc_array_dimen_size): If available, return shape[dimen].
2485         * resolve.c (resolve_function): If available, use the argument
2486         shape for the function expression.
2487         * iresolve.c (gfc_resolve_transfer): Set shape[0] = size.
2488
2489 2006-04-02  Erik Edelmann  <eedelman@gcc.gnu.org>
2490
2491         * trans-array.c (gfc_trans_dealloc_allocated): Take a
2492         tree representation of the array to be deallocated as argument
2493         instead of its gfc_symbol.
2494         (gfc_trans_deferred_array): Update call to
2495         gfc_trans_dealloc_allocated.
2496         * trans-array.h (gfc_trans_dealloc_allocated): Update
2497         prototype.
2498         * trans-expr.c (gfc_conv_function_call): Update call to
2499         gfc_trans_dealloc_allocated, get indirect reference to dummy
2500         arguments.
2501
2502 2006-04-01  Roger Sayle  <roger@eyesopen.com>
2503
2504         PR fortran/25270
2505         * trans-array.c (gfc_trans_allocate_array_storage): In array index
2506         calculations use gfc_index_zero_node and gfc_index_one_node instead
2507         of integer_zero_node and integer_one_node respectively.
2508         (gfc_conv_array_transpose): Likewise.
2509         (gfc_conv_ss_startstride): Likewise.
2510         (gfc_trans_dummy_array_bias): Likewise.
2511
2512 2006-04-01  Roger Sayle  <roger@eyesopen.com>
2513
2514         * dependency.c (gfc_is_inside_range): Delete.
2515         (gfc_check_element_vs_section): Significant rewrite.
2516
2517 2006-04-01  Roger Sayle  <roger@eyesopen.com>
2518
2519         * dependency.c (gfc_dep_compare_expr): Strip parentheses and unary
2520         plus operators when comparing expressions.  Handle comparisons of
2521         the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where
2522         C is an integer constant.  Handle comparisons of the form "P+Q vs.
2523         R+S" and "P-Q vs. R-S".  Handle comparisons of integral extensions
2524         specially (increasing functions) so extend(A) > extend(B), when A>B.
2525         (gfc_check_element_vs_element): Move test later, so that we ignore
2526         the fact that "A < B" or "A > B" when A or B contains a forall index.
2527
2528 2006-03-31  Asher Langton  <langton2@llnl.gov>
2529
2530         PR fortran/25358
2531         * expr.c (gfc_check_assign): Allow cray pointee to be assumes-size.
2532         
2533 2006-03-30  Paul Thomas <paulthomas2@wanadoo.fr>
2534             Bud Davis  <bdavis9659@sbcglobal.net>
2535
2536         PR 21130
2537         * module.c (load_needed): Traverse entire tree before returning.
2538
2539 2006-03-30  Roger Sayle  <roger@eyesopen.com>
2540
2541         PR middle-end/22375
2542         * trans.c (gfc_trans_runtime_check): Promote the arguments of
2543         __builtin_expect to the correct types, and the result back to
2544         boolean_type_node.
2545
2546 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
2547
2548         * Make-lang.in: Rename docdir to gcc_docdir.
2549
2550 2006-03-28  Steven G. Kargl  <kargls@comcast.net>
2551
2552         * intrinsic.texi: s/floor/float in previous commit.
2553
2554 2006-03-28 Paul Thomas <pault@gcc.gnu.org>
2555
2556         PR fortran/26779
2557         * resolve.c (resolve_fl_procedure): Do not check the access of
2558         derived types for internal procedures.
2559
2560 2006-03-27  Jakub Jelinek  <jakub@redhat.com>
2561
2562         * io.c (check_io_constraints): Don't look at
2563         dt->advance->value.charater.string, unless it is a CHARACTER
2564         constant.
2565
2566         * f95-lang.c (gfc_get_alias_set): New function.
2567         (LANG_HOOKS_GET_ALIAS_SET): Define.
2568
2569 2006-03-25  Steven G. Kargl  <kargls@comcast.net>
2570
2571         PR fortran/26816
2572         * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds.
2573         * intrinsic.texi: Document FLOAT.
2574
2575 2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>
2576
2577         PR fortran/26769
2578         * iresolve.c (gfc_resolve_reshape):  Remove doubling of
2579         kind for complex. For real(kind=10), call reshape_r10.
2580         (gfc_resolve_transpose):  For real(kind=10), call
2581         transpose_r10.
2582
2583 2006-03-25  Roger Sayle  <roger@eyesopen.com>
2584
2585         * dependency.c (gfc_check_dependency): Improve handling of pointers;
2586         Two variables of different types can't have a dependency, and two
2587         variables with the same symbol are equal, even if pointers.
2588
2589 2006-03-24  Roger Sayle  <roger@eyesopen.com>
2590
2591         * gfortran.h (gfc_symbol): Add a new "forall_index" bit field.
2592         * match.c (match_forall_iterator): Set forall_index field on
2593         the iteration variable's symbol.
2594         * dependency.c (contains_forall_index_p): New function to
2595         traverse a gfc_expr to check whether it contains a variable
2596         with forall_index set in it's symbol.
2597         (gfc_check_element_vs_element): Return GFC_DEP_EQUAL for scalar
2598         constant expressions that don't variables used as FORALL indices.
2599
2600 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2601
2602         PR driver/22600
2603         * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4.
2604
2605 2006-03-22  Thomas Koenig  <Thomas.Koenig@online.de>
2606
2607         PR fortran/19303
2608         * gfortran.h (gfc_option_t):  Add record_marker.
2609         * lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
2610         * trans-decl.c:  Add gfor_fndecl_set_record_marker.
2611         (gfc_build_builtin_function_decls): Set
2612         gfor_fndecl_set_record_marker.
2613         (gfc_generate_function_code):  If we are in the main program
2614         and -frecord-marker was provided, call set_record_marker.
2615         * options.c (gfc_handle_option):  Add handling for
2616         -frecord-marker=4 and -frecord-marker=8.
2617         * invoke.texi:  Document -frecord-marker.
2618
2619 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
2620
2621         PR fortran/17298
2622         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
2623         function to implement array valued TRANSFER intrinsic.
2624         (gfc_conv_intrinsic_function): Call the new function if TRANSFER
2625         and non-null se->ss.
2626         (gfc_walk_intrinsic_function): Treat TRANSFER as one of the
2627         special cases by calling gfc_walk_intrinsic_libfunc directly.
2628
2629 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
2630
2631         * options.c (gfc_init_options): Initialize
2632         flag_argument_noalias to 3.
2633
2634 2006-03-20  Thomas Koenig  <Thomas.Koenig@online.de>
2635
2636         PR fortran/20935
2637         * iresolve.c (gfc_resolve_maxloc):   If mask is scalar,
2638         prefix the function name with an "s".  If the mask is scalar
2639         or if its kind is smaller than gfc_default_logical_kind,
2640         coerce it to default kind.
2641         (gfc_resolve_maxval):  Likewise.
2642         (gfc_resolve_minloc):  Likewise.
2643         (gfc_resolve_minval):  Likewise.
2644         (gfc_resolve_product):  Likewise.
2645         (gfc_resolve_sum):  Likewise.
2646
2647 2006-03-19  Paul Thomas  <pault@gcc.gnu.org>
2648
2649         PR fortran/26741
2650         *expr.c (external_spec_function): Permit elemental functions.
2651
2652         PR fortran/26716
2653         *interface.c (compare_actual_formal): Detect call for procedure
2654         usage and require rank checking, in this case, for assumed shape
2655         and deferred shape arrays.
2656         (gfc_procedure_use): Revert to pre-PR25070 call to
2657         compare_actual_formal that does not require rank checking..
2658
2659 2006-03-16  Roger Sayle  <roger@eyesopen.com>
2660
2661         * gfortran.h (gfc_equiv_info): Add length field.
2662         * trans-common.c (copy_equiv_list_to_ns): Set the length field.
2663         * dependency.c (gfc_are_equivalenced_arrays): Use both the offset
2664         and length fields to determine whether the two equivalenced symbols
2665         overlap in memory.
2666
2667 2006-03-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2668
2669         PR fortran/19101
2670         * gfortran.h: Add warn_ampersand.
2671         * invoke.texi: Add documentation for new option.
2672         * lang.opt: Add Wampersand.
2673         * options.c (gfc_init_options): Initialize warn_ampersand.
2674         (gfc_post_options): Set the warn if pedantic.
2675         (set_Wall): Set warn_ampersand.
2676         (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003.
2677         * scanner.c (gfc_next_char_literal): Add test for missing '&' in
2678         continued character constant and give warning if missing.
2679
2680 2006-03-14  Steven G. Kargl  <kargls@comcast.net>
2681
2682         PR 18537
2683         * gfortran.h: Wrap Copyright line.
2684         (gfc_option_t): add warn_tabs member.
2685         * lang.opt: Update Coyright year.  Add the Wtabs.
2686         * invoke.texi: Document -Wtabs.
2687         * scanner.c (gfc_gobble_whitespace): Use warn_tabs.  Add linenum to
2688         suppress multiple warnings.
2689         (load_line): Use warn_tabs.  Add linenum, current_line, seen_comment
2690         to suppress multiple warnings.
2691         * options.c (gfc_init_options): Initialize warn_tabs.
2692         (set_Wall): set warn_tabs for -Wall.
2693         (gfc_post_options): Adjust flag_tabs depending on -pedantic.
2694         (gfc_handle_option):  Process command-line option -W[no-]tabs
2695
2696 2006-03-13  Paul Thomas  <pault@gcc.gnu.org>
2697
2698         PR fortran/25378
2699         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and
2700         modify the condition for updating it, to implement the F2003 requirement for all(mask)
2701         is false.
2702
2703 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
2704
2705         * trans-openmp.c (gfc_trans_omp_variable): Handle references
2706         to parent result.
2707         * trans-expr.c (gfc_conv_variable): Remove useless setting
2708         of parent_flag, formatting.
2709
2710         * trans-decl.c (gfc_get_fake_result_decl): Re-add setting of
2711         GFC_DECL_RESULT flag.
2712
2713 2003-03-11  Roger Sayle  <roger@eyesopen.com>
2714
2715         * dependency.c (gfc_dep_compare_expr) <EXPR_OP>: Allow unary and
2716         binary operators to compare equal if their operands are equal.
2717         <EXPR_FUNCTION>: Allow "constant" intrinsic conversion functions
2718         to compare equal, if their operands are equal.
2719
2720 2006-03-11  Erik Edelmann  <eedelman@gcc.gnu.org>
2721
2722         * symbol.c (check_conflict): Allow allocatable function results,
2723         except for elemental functions.
2724         * trans-array.c (gfc_trans_allocate_temp_array): Rename to ...
2725         (gfc_trans_create_temp_array): ... this, and add new argument
2726         callee_alloc.
2727         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call
2728         to gfc_trans_allocate_temp_array.
2729         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
2730         * trans-expr.c (gfc_conv_function_call): Use new arg of
2731         gfc_trans_create_temp_array avoid pre-allocation of temporary
2732         result variables of pointer AND allocatable functions.
2733         (gfc_trans_arrayfunc_assign): Return NULL for allocatable
2734         functions.
2735         * resolve.c (resolve_symbol): Copy value of 'allocatable' attribute
2736         from sym->result to sym.
2737
2738 2006-03-09  Erik Edelmann  <eedelman@gcc.gnu.org>
2739
2740         * trans-expr.c (gfc_add_interface_mapping): Copy 'allocatable'
2741         attribute from sym to new_sym.  Call build_fold_indirect_ref()
2742         for allocatable arguments.
2743
2744 2006-03-09 Paul Thomas <pault@gcc.gnu.org>
2745
2746         PR fortran/26257
2747         * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation of
2748         the offset and data when se->data_not_needed is set.
2749         * trans.h: Include the data_not_need bit in gfc_se.
2750         * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE.
2751
2752 2006-03-06  Paul Thomas  <pault@gcc.gnu.org>
2753             Erik Edelmann  <eedelman@gcc.gnu.org>
2754
2755         * trans-array.c (gfc_trans_dealloc_allocated): New function.
2756         (gfc_trans_deferred_array): Use it, instead of inline code.
2757         * trans-array.h: Prototype for gfc_trans_dealloc_allocated().
2758         * trans-expr.c (gfc_conv_function_call): Deallocate allocated
2759         ALLOCATABLE, INTENT(OUT) arguments upon procedure entry.
2760
2761 2006-03-06  Paul Thomas  <pault@gcc.gnu.org>
2762
2763         PR fortran/26107
2764         * resolve.c (resolve_function): Add name after test for pureness.
2765
2766         PR fortran/19546
2767         * trans-expr.c (gfc_conv_variable): Detect reference to parent result,
2768         store current_function_decl, replace with parent, whilst calls are
2769         made to gfc_get_fake_result_decl, and restore afterwards. Signal this
2770         to gfc_get_fake_result_decl with a new argument, parent_flag.
2771         * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg
2772         is set to zero.
2773         * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype.
2774         * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set,
2775         add decl to parent function. Replace refs to current_fake_result_decl
2776         with refs to this_result_decl.
2777         (gfc_generate_function_code): Null parent_fake_result_decl before the
2778         translation of code for contained procedures. Set parent_flag to zero
2779         in call to gfc_get_fake_result_decl.
2780         * trans-intrinsic.c (gfc_conv_intrinsic_len): The same.
2781
2782 2006-03-05  Steven G. Kargl  <kargls@comcast.net>
2783
2784         * simplify.c (gfc_simplify_verify):  Fix return when SET=''.
2785
2786 2006-03-05  Erik Edelmann  <eedelman@gcc.gnu.org>
2787
2788         PR fortran/16136
2789         * symbol.c (conf_std): New macro.
2790         (check_conflict): Use it to allow ALLOCATABLE dummy
2791         arguments for F2003.
2792         * trans-expr.c (gfc_conv_function_call): Pass the
2793         address of the array descriptor when dummy argument is
2794         ALLOCATABLE.
2795         * interface.c (compare_allocatable): New function.
2796         (compare_actual_formal): Use it.
2797         * resolve.c (resolve_deallocate_expr,
2798         resolve_allocate_expr): Check that INTENT(IN) variables
2799         aren't (de)allocated.
2800         * gfortran.texi (Fortran 2003 status): List ALLOCATABLE
2801         dummy arguments as supported.
2802
2803 2006-03-03  Roger Sayle  <roger@eyesopen.com>
2804
2805         * dependency.c (gfc_check_element_vs_element): Revert last change.
2806
2807 2006-03-03  Roger Sayle  <roger@eyesopen.com>
2808
2809         * dependency.c (gfc_check_element_vs_element): Consider two
2810         unordered scalar subscripts as (potentially) equal.
2811
2812 2006-03-03  Roger Sayle  <roger@eyesopen.com>
2813
2814         * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to
2815         check whether two array references have a dependency.
2816         (gfc_check_element_vs_element): Assume lref and rref must be
2817         REF_ARRAYs.  If gfc_dep_compare_expr returns -2, assume these
2818         references could potentially overlap.
2819         (gfc_dep_resolver): Whitespace and comment tweaks.  Assume a
2820         dependency if the references have different depths.  Rewrite
2821         final term to clarrify we only have a dependency for overlaps.
2822
2823 2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>
2824
2825         PR fortran/25031
2826         * trans-array.h:  Adjust gfc_array_allocate prototype.
2827         * trans-array.c (gfc_array_allocate):  Change type of
2828         gfc_array_allocatate to bool.  Function returns true if
2829         it operates on an array.  Change second argument to gfc_expr.
2830         Find last reference in chain.
2831         If the function operates on an allocatable array, emit call to
2832         allocate_array() or allocate64_array().
2833         * trans-stmt.c (gfc_trans_allocate):  Code to follow to last
2834         reference has been moved to gfc_array_allocate.
2835         * trans.h:  Add declaration for gfor_fndecl_allocate_array and
2836         gfor_fndecl_allocate64_array.
2837         (gfc_build_builtin_function_decls):  Add gfor_fndecl_allocate_array
2838         and gfor_fndecl_allocate64_array.
2839
2840 2006-03-01  Roger Sayle  <roger@eyesopen.com>
2841
2842         * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional
2843         INVERT argument to invert the sense of the WHEREMASK argument.
2844         Remove unneeded code to AND together a list of masks.
2845         (generate_loop_for_rhs_to_temp): Likewise.
2846         (gfc_trans_assign_need_temp): Likewise.
2847         (gfc_trans_forall_1): Likewise.
2848         (gfc_evaluate_where_mask): Likewise, add a new INVERT argument
2849         to specify the sense of the MASK argument.
2850         (gfc_trans_where_assign): Likewise.
2851         (gfc_trans_where_2): Likewise.  Restructure code that decides
2852         whether we need to allocate zero, one or two temporary masks.
2853         If this is a top-level WHERE (i.e. the incoming MASK is NULL),
2854         we only need to allocate at most one temporary mask, and can
2855         invert it's sense to provide the complementary pending execution
2856         mask.  Only calculate the size of the required temporary arrays
2857         if we need any.
2858         (gfc_trans_where): Update call to gfc_trans_where_2.
2859
2860 2006-03-01  Paul Thomas  <pault@gcc.gnu.org>
2861
2862         * iresolve.c (gfc_resolve_dot_product):  Remove any difference in
2863         treatment of logical types.
2864         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product):  New function. 
2865
2866         PR fortran/26393
2867         * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols
2868         must be referenced to include unreferenced symbols in an interface
2869         body. 
2870
2871         PR fortran/20938
2872         * trans-array.c (gfc_conv_resolve_dependencies): Add call to
2873         gfc_are_equivalenced_arrays.
2874         * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New
2875         functions. (gfc_free_namespace): Call them.
2876         * trans-common.c (copy_equiv_list_to_ns): New function.
2877         (add_equivalences): Call it.
2878         * gfortran.h: Add equiv_lists to gfc_namespace and define
2879         gfc_equiv_list and gfc_equiv_info.
2880         * dependency.c (gfc_are_equivalenced_arrays): New function.
2881         (gfc_check_dependency): Call it.
2882         * dependency.h: Prototype for gfc_are_equivalenced_arrays.
2883
2884 2006-03-01  Roger Sayle  <roger@eyesopen.com>
2885
2886         * dependency.c (gfc_is_same_range): Compare the stride, lower and
2887         upper bounds when testing array reference ranges for equality.
2888         (gfc_check_dependency): Fix indentation whitespace.
2889         (gfc_check_element_vs_element): Likewise.
2890         (gfc_dep_resolver): Likewise.
2891
2892 2006-02-28  Thomas Koenig  <Thomas.Koenig@online.de>
2893
2894         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
2895         If the mask expression exists and has rank 0, enclose the
2896         generated loop in an "if (mask)".  Put the default
2897         initialization into the else branch.
2898
2899 2006-02-25  Thomas Koenig  <Thomas.Koenig@online.de>
2900
2901         PR fortran/23092
2902         * trans-intrinsic.c (gfc_conv_intrinsic_arith):  If the
2903         mask expression exists and has rank 0, enclose the generated
2904         loop in an "if (mask)".
2905         * (gfc_conv_intrinsic_minmaxloc):  Likewise.
2906
2907 2006-02-24  Paul Thomas  <pault@gcc.gnu.org>
2908
2909         PR fortran/26409
2910         * resolve.c (resolve_contained_functions, resolve_types,
2911         gfc_resolve): Revert patch of 2006-02-19.
2912
2913 2006-02-24  Paul Thomas  <pault@gcc.gnu.org>
2914
2915         PR fortran/24519
2916         * dependency.c (gfc_is_same_range): Correct typo.
2917         (gfc_check_section_vs_section): Call gfc_is_same_range.
2918
2919         PR fortran/25395
2920         * trans-common.c (add_equivalences): Add a new flag that is set when
2921         an equivalence is seen that prevents more from being reset until the
2922         start of a new traversal of the list, thus ensuring completion of
2923         all the equivalences.
2924
2925 2006-02-23  Erik Edelmann  <eedelman@gcc.gnu.org>
2926
2927         * module.c (read_module): Remove redundant code lines.
2928
2929 2006-02-20 Rafael \81Ávila de Esp\81índola <rafael.espindola@gmail.com>
2930         * Make-lang.in (FORTRAN): Remove
2931         (.PHONY): Remove F95 and f95. Add fortran
2932
2933 2006-02-20  Roger Sayle  <roger@eyesopen.com>
2934
2935         * trans-stmt.c (gfc_trans_where_2): Avoid updating unused current
2936         execution mask for empty WHERE/ELSEWHERE clauses.  Don't allocate
2937         temporary mask arrays if they won't be used.
2938
2939 2006-02-20  Roger Sayle  <roger@eyesopen.com>
2940
2941         * trans-stmt.c (gfc_trans_where_assign): Remove code to handle
2942         traversing a linked list of MASKs.  The MASK is now always a
2943         single element requiring no ANDing during the assignment.
2944
2945 2006-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
2946
2947         * gfortran.texi:  Document environment variables which
2948         influence runtime behavior.
2949
2950 2006-02-19  H.J. Lu  <hongjiu.lu@intel.com>
2951
2952         * resolve.c (resolve_contained_functions): Call resolve_entries
2953         first.
2954         (resolve_types): Remove calls to resolve_entries and
2955         resolve_contained_functions.
2956         (gfc_resolve): Call resolve_contained_functions.
2957
2958 2006-02-19  Erik Edelmann  <eedelman@gcc.gnu.org>
2959
2960         PR fortran/26201
2961         * intrinsic.c (gfc_convert_type_warn): Call
2962         gfc_intrinsic_symbol() on the newly created symbol.
2963
2964 2006-02-19  Paul Thomas  <pault@gcc.gnu.org>
2965
2966         PR fortran/25054
2967         * resolve.c (is_non_constant_shape_array): New function.
2968         (resolve_fl_variable): Remove code for the new function and call it.
2969         (resolve_fl_namelist): New function.  Add test for namelist array
2970         with non-constant shape, using is_non_constant_shape_array.
2971         (resolve_symbol): Remove code for resolve_fl_namelist and call it.
2972
2973         PR fortran/25089
2974         * match.c (match_namelist): Increment the refs field of an accepted
2975         namelist object symbol.
2976         * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict
2977         with contained or module procedures.
2978
2979 2006-02-18  Roger Sayle  <roger@eyesopen.com>
2980
2981         * trans-stmt.c (struct temporary_list): Delete.
2982         (gfc_trans_where_2): Major reorganization.  Remove no longer needed
2983         TEMP argument.  Allocate and deallocate the control mask and
2984         pending control mask locally.
2985         (gfc_trans_forall_1): Delete TEMP local variable, and update
2986         call to gfc_trans_where_2.  No need to deallocate arrays after.
2987         (gfc_evaluate_where_mask): Major reorganization.  Change return
2988         type to void.  Pass in parent execution mask, MASK, and two
2989         already allocated mask arrays CMASK and PMASK.  On return
2990         CMASK := MASK & COND, PMASK := MASK & !COND.  MASK, CMASK and
2991         CMASK may all be NULL, or refer to the same temporary arrays.
2992         (gfc_trans_where): Update call to gfc_trans_where_2.  We no
2993         longer need a TEMP variable or to deallocate temporary arrays
2994         allocated by gfc_trans_where_2.
2995
2996 2006-02-18   Danny Smith  <dannysmith@users.sourceforeg.net>
2997
2998         * gfortran.h (gfc_add_attribute): Change uint to unsigned int.
2999         * symbol.c (gfc_add_attribute): Likewise for definition.
3000         * resolve.c (resolve_global_procedure): Likewise for variable 'type'.
3001
3002 2006-02-17  Richard Sandiford  <richard@codesourcery.com>
3003
3004         * trans-common.c: Include rtl.h earlier.
3005         * trans-decl.c: Likewise.
3006
3007 2006-02-16  Jakub Jelinek  <jakub@redhat.com>
3008
3009         PR fortran/26224
3010         * parse.c (parse_omp_do, parse_omp_structured_block): Call
3011         gfc_commit_symbols and gfc_warning_check.
3012
3013         * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround
3014         PR middle-end/26316.
3015
3016 2006-02-16  Paul Thomas  <pault@gcc.gnu.org>
3017
3018         PR fortran/24557
3019         * trans-expr.c (gfc_add_interface_mapping): Use the actual argument
3020         for character(*) arrays, rather than casting to the type and kind
3021         parameters of the formal argument.
3022
3023 2006-02-15  Toon Moene  <toon@moene.indiv.nluug.nl>
3024
3025         PR fortran/26054
3026         * options.c: Do not warn for Fortran 2003 features by default.
3027
3028 2006-02-15  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3029
3030         * check.c: Update copyright years.
3031         
3032         * check.c (gfc_check_minloc_maxloc, check_reduction): Don't call
3033         dim_range_check on not-present optional dim argument.
3034
3035 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
3036
3037         PR libgomp/25938
3038         PR libgomp/25984
3039         * Make-lang.in (install-finclude-dir): New goal.
3040         (fortran.install-common): Depend on install-finclude-dir.
3041         * lang-specs.h: If not -nostdinc, add -I finclude.
3042
3043 2006-02-14  Thomas Koenig  <Thomas.Koenig@online.de>
3044
3045         PR fortran/25045
3046         * check.c (dim_check):  Perform all checks if dim is optional.
3047         (gfc_check_minloc_maxloc):  Use dim_check and dim_rank_check
3048         to check dim argument.
3049         (check_reduction):  Likewise.
3050
3051 2006-02-14  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3052
3053         PR fortran/26277
3054         * io.c (match_ltag): Mark label as referenced.
3055
3056 2006-02-14  Jakub Jelinek  <jakub@redhat.com>
3057             Richard Henderson  <rth@redhat.com>
3058             Diego Novillo  <dnovillo@redhat.com>
3059
3060         * invoke.texi: Document -fopenmp.
3061         * gfortran.texi (Extensions): Document OpenMP.
3062
3063         Backport from gomp-20050608-branch
3064         * trans-openmp.c: Call build_omp_clause instead of
3065         make_node when creating OMP_CLAUSE_* trees.
3066         (gfc_trans_omp_reduction_list): Remove argument 'code'.
3067         Adjust all callers.
3068
3069         * trans.h (build4_v): Define.
3070         * trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes.
3071         Call build3_v to create OMP_SECTIONS nodes.
3072
3073         PR fortran/25162
3074         * openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced
3075         on all symbols added to the variable list.
3076
3077         * openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC
3078         procedure symbol in REDUCTION.
3079
3080         * trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add
3081         for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE.
3082
3083         * trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument.  If PBLOCK
3084         is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in
3085         that statement block.
3086         (gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do
3087         for non-ordered non-static combined loops.
3088         (gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do.
3089
3090         * openmp.c: Include target.h and toplev.h.
3091         (gfc_match_omp_threadprivate): Emit diagnostic if target does
3092         not support TLS.
3093         * Make-lang.in (fortran/openmp.o): Add dependencies on
3094         target.h and toplev.h.
3095
3096         * trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT.
3097         * trans-openmp.c (gfc_omp_privatize_by_reference): Make
3098         DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT.
3099         (gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT.
3100         (gfc_trans_omp_variable): New function.
3101         (gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it.
3102         * trans.h (GFC_DECL_RESULT): Define.
3103
3104         * trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function.
3105         * f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
3106         * trans.h (gfc_omp_firstprivatize_type_sizes): New prototype.
3107
3108         * trans-openmp.c (gfc_omp_privatize_by_reference): Return
3109         true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set.
3110         (gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New
3111         functions.
3112         (gfc_trans_omp_clauses): Add WHERE argument.  Call
3113         gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list
3114         for reductions.
3115         (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
3116         gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
3117         gfc_trans_omp_sections, gfc_trans_omp_single): Adjust
3118         gfc_trans_omp_clauses callers.
3119
3120         * openmp.c (omp_current_do_code): New var.
3121         (gfc_resolve_omp_do_blocks): New function.
3122         (gfc_resolve_omp_parallel_blocks): Call it.
3123         (gfc_resolve_do_iterator): Add CODE argument.  Don't propagate
3124         predetermination if argument is !$omp do or !$omp parallel do
3125         iteration variable.
3126         * resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks
3127         for EXEC_OMP_DO.  Adjust gfc_resolve_do_iterator caller.
3128         * fortran.h (gfc_resolve_omp_do_blocks): New prototype.
3129         (gfc_resolve_do_iterator): Add CODE argument.
3130
3131         * trans.h (gfc_omp_predetermined_sharing,
3132         gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
3133         prototypes.
3134         (GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define.
3135         * trans-openmp.c (gfc_omp_predetermined_sharing,
3136         gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
3137         functions.
3138         * trans-common.c (build_equiv_decl, build_common_decl,
3139         create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls.
3140         * trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE
3141         on the decl.
3142         * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING,
3143         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
3144         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define.
3145
3146         * openmp.c (resolve_omp_clauses): Remove extraneous comma.
3147
3148         * symbol.c (check_conflict): Add conflict between cray_pointee and
3149         threadprivate.
3150         * openmp.c (gfc_match_omp_threadprivate): Fail if
3151         gfc_add_threadprivate returned FAILURE.
3152         (resolve_omp_clauses): Diagnose Cray pointees in SHARED,
3153         {,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in
3154         {FIRST,LAST}PRIVATE and REDUCTION clauses.
3155
3156         * resolve.c (omp_workshare_flag): New variable.
3157         (resolve_function): Diagnose use of non-ELEMENTAL user defined
3158         function in WORKSHARE construct.
3159         (resolve_code): Cleanup forall_save use.  Make sure omp_workshare_flag
3160         is set to correct value in different contexts.
3161
3162         * openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing
3163         variable name.
3164         (resolve_omp_atomic): Likewise.
3165
3166         PR fortran/24493
3167         * scanner.c (skip_free_comments): Set at_bol at the beginning of the
3168         loop, not before it.
3169         (skip_fixed_comments): Handle ! comments in the middle of line here
3170         as well.
3171         (gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if
3172         not at BOL.
3173         (gfc_next_char_literal): Fix expected canonicalized *$omp string.
3174
3175         * trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit
3176         initialization to build OMP_FOR instead of build.
3177
3178         * trans-decl.c (gfc_gimplify_function): Invoke
3179         diagnose_omp_structured_block_errors.
3180
3181         * trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER.
3182         (gfc_trans_omp_ordered): Use OMP_ORDERED.
3183
3184         * gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks,
3185         gfc_resolve_omp_parallel_blocks): New prototypes.
3186         * resolve.c (resolve_blocks): Renamed to...
3187         (gfc_resolve_blocks): ... this.  Remove static.
3188         (gfc_resolve_forall): Adjust caller.
3189         (resolve_code): Only call gfc_resolve_blocks if code->block != 0
3190         and not for EXEC_OMP_PARALLEL* directives.  Call
3191         gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives.
3192         Call gfc_resolve_do_iterator if resolved successfully EXEC_DO
3193         iterator.
3194         * openmp.c: Include pointer-set.h.
3195         (omp_current_ctx): New variable.
3196         (gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New
3197         functions.
3198         * Make-lang.in (fortran/openmp.o): Depend on pointer-set.h.
3199
3200         * openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor,
3201         look up symbol if it exists, use its name instead and, if it is not
3202         INTRINSIC, issue diagnostics.
3203
3204         * parse.c (parse_omp_do): Handle implied end do properly.
3205         (parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO,
3206         return it instead of continuing.
3207
3208         * trans-openmp.c (gfc_trans_omp_critical): Update for changed
3209         operand numbering.
3210         (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
3211         gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
3212         gfc_trans_omp_sections, gfc_trans_omp_single): Likewise.
3213
3214         * trans.h (gfc_omp_privatize_by_reference): New prototype.
3215         * f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine
3216         to gfc_omp_privatize_by_reference.
3217         * trans-openmp.c (gfc_omp_privatize_by_reference): New function.
3218
3219         * trans-stmt.h (gfc_trans_omp_directive): Add comment.
3220
3221         * openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument.
3222         Disallow COMMON matching if it is set.
3223         (gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers.
3224         (resolve_omp_clauses): Show locus in error messages.  Check that
3225         variable types in reduction clauses are appropriate for reduction
3226         operators.
3227
3228         * resolve.c (resolve_symbol): Don't error if a threadprivate module
3229         variable isn't SAVEd.
3230
3231         * trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY.
3232         Fix typo in condition.  Fix DOVAR initialization.
3233
3234         * openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor
3235         rather than .min. etc.
3236
3237         * trans-openmpc.c (omp_not_yet): Remove.
3238         (gfc_trans_omp_parallel_do): Keep listprivate clause on parallel.
3239         Force creation of BIND_EXPR around the workshare construct.
3240         (gfc_trans_omp_parallel_sections): Likewise.
3241         (gfc_trans_omp_parallel_workshare): Likewise.
3242
3243         * types.def (BT_I16, BT_FN_I16_VPTR_I16,
3244         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
3245
3246         * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT.
3247         (gfc_trans_omp_code): New function.
3248         (gfc_trans_omp_do): Use it, remove omp_not_yet uses.
3249         (gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise.
3250         (gfc_trans_omp_sections): Likewise.  Only treat empty last section
3251         specially if lastprivate clause is present.
3252         * f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP
3253         builtin.
3254
3255         * trans-openmp.c (gfc_trans_omp_variable_list): Update for
3256         OMP_CLAUSE_DECL name change.
3257         (gfc_trans_omp_do): Likewise.
3258
3259         * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION
3260         clauses.
3261         (gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding
3262         sync builtins directly.
3263         (gfc_trans_omp_single): Build OMP_SINGLE statement.
3264
3265         * trans-openmp.c (gfc_trans_add_clause): New.
3266         (gfc_trans_omp_variable_list): Take a tree code and build the clause
3267         node here.  Link it to the head of a list.
3268         (gfc_trans_omp_clauses): Update to match.
3269         (gfc_trans_omp_do): Use gfc_trans_add_clause.
3270
3271         * trans-openmp.c (gfc_trans_omp_clauses): Change second argument to
3272         gfc_omp_clauses *.  Use gfc_evaluate_now instead of creating
3273         temporaries by hand.
3274         (gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros.
3275         (gfc_trans_omp_do): New function.
3276         (gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL.
3277         (gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller.
3278         Use buildN_v macros.
3279         (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
3280         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections,
3281         gfc_trans_omp_single, gfc_trans_omp_workshare): New functions.
3282         (gfc_trans_omp_directive): Use them.
3283         * parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP.
3284         * openmp.c (resolve_omp_clauses): Check for list items present
3285         in multiple clauses.
3286         (resolve_omp_do): Check that iteration variable is not THREADPRIVATE
3287         and is not present in any clause variable lists other than PRIVATE
3288         or LASTPRIVATE.
3289
3290         * gfortran.h (symbol_attribute): Add threadprivate bit.
3291         (gfc_common_head): Add threadprivate member, change use_assoc
3292         and saved into char to save space.
3293         (gfc_add_threadprivate): New prototype.
3294         * symbol.c (check_conflict): Handle threadprivate.
3295         (gfc_add_threadprivate): New function.
3296         (gfc_copy_attr): Copy threadprivate.
3297         * trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary
3298         if IF or NUM_THREADS is constant.  Create OMP_CLAUSE_SCHEDULE and
3299         OMP_CLAUSE_ORDERED.
3300         * resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol
3301         outside a module and not in COMMON has is not SAVEd.
3302         (resolve_equivalence): Ensure THREADPRIVATE objects don't get
3303         EQUIVALENCEd.
3304         * trans-common.c: Include target.h and rtl.h.
3305         (build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
3306         * trans-decl.c: Include rtl.h.
3307         (gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
3308         * dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE.
3309         * Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H).
3310         (fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H).
3311         * openmp.c (gfc_match_omp_variable_list): Ensure COMMON block
3312         is from current namespace.
3313         (gfc_match_omp_threadprivate): Rewrite.
3314         (resolve_omp_clauses): Check some clause restrictions.
3315         * module.c (ab_attribute): Add AB_THREADPRIVATE.
3316         (attr_bits): Add THREADPRIVATE.
3317         (mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate.
3318         (load_commons, write_common, write_blank_common): Adjust for type
3319         change of saved, store/load threadprivate bit from the integer
3320         as well.
3321
3322         * types.def (BT_FN_UINT_UINT): New.
3323         (BT_FN_VOID_UINT_UINT): Remove.
3324
3325         * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier,
3326         gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master,
3327         gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions.
3328         (gfc_trans_omp_directive): Use them.
3329
3330         * openmp.c (expr_references_sym): Add SE argument, don't look
3331         into SE tree.
3332         (is_conversion): New function.
3333         (resolve_omp_atomic): Adjust expr_references_sym callers.  Handle
3334         promoted expressions.
3335         * trans-openmp.c (gfc_trans_omp_atomic): New function.
3336         (gfc_trans_omp_directive): Call it.
3337
3338         * f95-lang.c (builtin_type_for_size): New function.
3339         (gfc_init_builtin_functions): Initialize synchronization and
3340         OpenMP builtins.
3341         * types.def: New file.
3342         * Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and
3343         fortran/types.def.
3344
3345         * trans-openmp.c: Rename GOMP_* tree codes into OMP_*.
3346
3347         * dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name
3348         is NULL.
3349
3350         * dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New
3351         functions.
3352         (gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes.
3353
3354         * parse.c (parse_omp_do): Call pop_state before next_statement.
3355         * openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do):
3356         New functions.
3357         (gfc_resolve_omp_directive): Call them.
3358         * match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement
3359         leaves an OpenMP structured block or if EXIT terminates !$omp do
3360         loop.
3361
3362         * Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o.
3363         (F95_OBJS): Add fortran/trans-openmp.o.
3364         (fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS).
3365         * lang.opt: Add -fopenmp option.
3366         * options.c (gfc_init_options): Initialize it.
3367         (gfc_handle_option): Handle it.
3368         * gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL,
3369         ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER,
3370         ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO,
3371         ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE,
3372         ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE,
3373         ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED,
3374         ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS,
3375         ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION,
3376         ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New
3377         statement codes.
3378         (OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE,
3379         OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN,
3380         OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
3381         OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
3382         OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
3383         OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM):
3384         New OpenMP variable list types.
3385         (gfc_omp_clauses): New typedef.
3386         (gfc_get_omp_clauses): Define.
3387         (EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
3388         EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
3389         EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
3390         EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
3391         EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT,
3392         EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes.
3393         (struct gfc_code): Add omp_clauses, omp_name, omp_namelist
3394         and omp_bool fields to ext union.
3395         (flag_openmp): Declare.
3396         (gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes.
3397         * scanner.c (openmp_flag, openmp_locus): New variables.
3398         (skip_free_comments, skip_fixed_comments, gfc_next_char_literal):
3399         Handle OpenMP directive lines and conditional compilation magic
3400         comments.
3401         * parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state.
3402         * parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic,
3403         parse_omp_structured_block): New functions.
3404         (next_free, next_fixed): Parse OpenMP directives.
3405         (case_executable, case_exec_markers, case_decl): Add ST_OMP_*
3406         codes.
3407         (gfc_ascii_statement): Handle ST_OMP_* codes.
3408         (parse_executable): Rearrange the loop slightly, so that
3409         parse_omp_do can return next_statement.
3410         * match.h (gfc_match_omp_eos, gfc_match_omp_atomic,
3411         gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do,
3412         gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered,
3413         gfc_match_omp_parallel, gfc_match_omp_parallel_do,
3414         gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
3415         gfc_match_omp_sections, gfc_match_omp_single,
3416         gfc_match_omp_threadprivate, gfc_match_omp_workshare,
3417         gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes.
3418         * resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives.
3419         (resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_*
3420         directives.
3421         * trans.c (gfc_trans_code): Call gfc_trans_omp_directive for
3422         EXEC_OMP_* directives.
3423         * st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing.
3424         * trans-stmt.h (gfc_trans_omp_directive): New prototype.
3425         * openmp.c: New file.
3426         * trans-openmp.c: New file.
3427
3428 2006-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
3429             Jakub Jelinek  <jakub@redhat.com>
3430
3431         PR fortran/26246
3432         * trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use
3433         gfc_add_decl_to_function rather than gfc_finish_var_decl on length.
3434
3435 2006-02-13  Paul Thomas  <pault@gcc.gnu.org>
3436
3437         PR fortran/26074
3438         PR fortran/25103
3439         * resolve.c (resolve_symbol): Extend the requirement that module
3440         arrays have constant bounds to those in the main program.  At the
3441         same time simplify the array bounds, to avoiding trapping parameter
3442         array references, and exclude automatic character length from main
3443         and modules. Rearrange resolve_symbol and resolve_derived to put as
3444         each flavor together, as much as is possible and move all specific
3445         code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new
3446         functions.
3447         (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure):
3448         New functions to do work of resolve_symbol.
3449         (resolve_index_expr): New function that is called from resolved_symbol
3450         and is extracted from resolve_charlen.
3451         (resolve_charlen): Call this new function.
3452         (resolve_fl_derived): Renamed resolve_derived to be consistent with
3453         the naming of the new functions for the other flavours.  Change the
3454         charlen checking so that the style is consistent with other similar
3455         checks. Add the generation of the gfc_dt_list, removed from resolve_
3456         symbol.
3457
3458         PR fortran/20861
3459         * resolve.c (resolve_actual_arglist): Prevent internal procedures
3460         from being dummy arguments.
3461
3462         PR fortran/20871
3463         * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic
3464         procedures from being dummy arguments.
3465
3466         PR fortran/25083
3467         * resolve.c (check_data_variable): Add test that data variable is in
3468         COMMON.
3469
3470         PR fortran/25088
3471         * resolve.c (resolve_call): Add test that the subroutine does not
3472         have a type.
3473
3474 2006-02-12  Erik Edelmann  <eedelman@gcc.gnu.org>
3475
3476         PR fortran/25806
3477         * trans-array.c (gfc_trans_allocate_array_storage): New argument
3478         dealloc; free the temporary only if dealloc is true.
3479         (gfc_trans_allocate_temp_array): New argument bool dealloc, to be
3480         passed onwards to gfc_trans_allocate_array_storage.
3481         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
3482         gfc_trans_allocate_temp_array.
3483         * trans-array.h (gfc_trans_allocate_temp_array): Update function
3484         prototype.
3485         * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc'
3486         to gfc_trans_allocate_temp_array to false in case of functions
3487         returning pointers.
3488         (gfc_trans_arrayfunc_assign): Return NULL for functions returning
3489         pointers.
3490
3491 2006-02-10  Steven G. Kargl  <kargls@comcast.net>
3492
3493         PR fortran/20858
3494         *decl.c (variable_decl): Improve error message.  Remove initialization
3495         typespec.  Wrap long line.
3496         *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type,
3497         and rank.
3498         *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank
3499         are set.
3500
3501
3502 2006-02-10  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3503
3504         PR fortran/14771
3505         * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES.
3506         * expr.c (check_intrinsic_op): Likewise.
3507         * module.c (mio_expr): Likewise.
3508
3509 2006-02-09  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3510
3511         * dump-parse-tree.c: Update copyright years.
3512         * matchexp.c: Likewise.
3513         * module.c: Likewise.
3514
3515         PR fortran/14771
3516         * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES.
3517         * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES.
3518         * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as
3519         if it were INTRINSIC_UPLUS.
3520         * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES.
3521         * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES.
3522         * matchexp.c (match_primary): Record parentheses surrounding
3523         numeric expressions.
3524         * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module
3525         dumping.
3526         * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES.
3527
3528 2006-02-09  Paul Thomas  <pault@gcc.gnu.org>
3529
3530         PR fortran/26038
3531         * trans-stmt.c (gfc_trans_allocate): Provide assumed character length
3532         scalar with missing backend_decl for the hidden dummy charlen.
3533
3534         PR fortran/25059
3535         * interface.c (gfc_extend_assign): Remove detection of non-PURE
3536         subroutine in assignment interface, with gfc_error, and put it in
3537         * resolve.c (resolve_code).
3538
3539         PR fortran/25070
3540         * interface.c (gfc_procedure_use): Flag rank checking for non-
3541         elemental, contained or interface procedures in call to
3542         (compare_actual_formal), where ranks are checked for assumed
3543         shape arrays..
3544
3545 2006-02-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
3546
3547         PR libfortran/25425
3548         * trans-decl.c (gfc_generate_function_code): Add new argument,
3549         pedantic, to set_std call.
3550
3551 2006-02-06  Thomas Koenig  <Thomas.Koenig@online.de>
3552
3553         PR libfortran/23815
3554         * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
3555         variable.
3556         * invoke.texi:  Mention the "Runtime" chapter.
3557         Document the -fconvert= option.
3558         * gfortran.h:  Add options_convert.
3559         * lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
3560         fconvert=native and fconvert=swap.
3561         * trans-decl.c (top level):  Add gfor_fndecl_set_convert.
3562         (gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
3563         (gfc_generate_function_code):  If -fconvert was specified,
3564         and this is the main program, add a call to set_convert().
3565         * options.c:  Handle the -fconvert options.
3566
3567 2006-02-06  Roger Sayle  <roger@eyesopen.com>
3568
3569         * trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument
3570         to be NULL to indicate that the not mask isn't required.
3571         (gfc_trans_where_2): Remove PMASK argument.  Avoid calculating the
3572         pending mask for the last clause of a WHERE chain.  Update recursive
3573         call.
3574         (gfc_trans_forall_1): Update call to gfc_trans_where_2.
3575         (gfc_trans_where): Likewise.
3576
3577 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
3578
3579         Backport from gomp-20050608-branch
3580         * trans-decl.c (create_function_arglist): Handle dummy functions.
3581
3582         * trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of
3583         TYPE_SIZE_UNIT.
3584         (gfc_trans_vla_type_sizes): Also "gimplify"
3585         GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types.
3586         * trans-array.c (gfc_trans_deferred_array): Call
3587         gfc_trans_vla_type_sizes.
3588
3589         * trans-decl.c (saved_function_decls, saved_parent_function_decls):
3590         Remove unnecessary initialization.
3591         (create_function_arglist): Make sure __result has complete type.
3592         (gfc_get_fake_result_decl): Change current_fake_result_decl into
3593         a tree chain.  For entry master, create a separate variable
3594         for each result name.  For BT_CHARACTER results, call
3595         gfc_finish_var_decl on length even if it has been already created,
3596         but not pushdecl'ed.
3597         (gfc_trans_vla_type_sizes): For function/entry result, adjust
3598         result value type, not the FUNCTION_TYPE.
3599         (gfc_generate_function_code): Adjust for current_fake_result_decl
3600         changes.
3601         (gfc_trans_deferred_vars): Likewise.  Call gfc_trans_vla_type_sizes
3602         even on result if it is assumed-length character.
3603
3604         * trans-decl.c (gfc_trans_dummy_character): Add SYM argument.
3605         Call gfc_trans_vla_type_sizes.
3606         (gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes.
3607         (gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1,
3608         gfc_trans_vla_type_sizes): New functions.
3609         (gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character
3610         callers.  Call gfc_trans_vla_type_sizes on assumed-length
3611         character parameters.
3612         * trans-array.c (gfc_trans_array_bounds,
3613         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call
3614         gfc_trans_vla_type_sizes.
3615         * trans.h (gfc_trans_vla_type_sizes): New prototype.
3616
3617         * trans-decl.c (gfc_build_qualified_array): For non-assumed-size
3618         arrays without constant size, create also an index var for
3619         GFC_TYPE_ARRAY_SIZE (type).  If the type is incomplete, complete
3620         it as 0..size-1.
3621         (gfc_create_string_length): Don't call gfc_defer_symbol_init
3622         if just creating DECL_ARGUMENTS.
3623         (gfc_get_symbol_decl): Call gfc_finish_var_decl and
3624         gfc_defer_symbol_init even if ts.cl->backend_decl is already
3625         set to a VAR_DECL that doesn't have DECL_CONTEXT yet.
3626         (create_function_arglist): Rework, so that hidden length
3627         arguments for CHARACTER parameters are created together with
3628         the parameters.  Resolve ts.cl->backend_decl for CHARACTER
3629         parameters.  If the argument is a non-constant length array
3630         or CHARACTER, ensure PARM_DECL has different type than
3631         its DECL_ARG_TYPE.
3632         (generate_local_decl): Call gfc_get_symbol_decl even
3633         for non-referenced non-constant length CHARACTER parameters
3634         after optionally issuing warnings.
3635         * trans-array.c (gfc_trans_array_bounds): Set last stride
3636         to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well.
3637         (gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type)
3638         variable as well.
3639
3640         * trans-expr.c (gfc_conv_expr_val): Fix comment typo.
3641
3642         * trans-stmt.c (gfc_trans_simple_do): Fix comment.
3643
3644 2006-02-04  Roger Sayle  <roger@eyesopen.com>
3645
3646         * dependency.c (gfc_check_dependency): Remove unused vars and nvars
3647         arguments.  Replace with an "identical" argument.  A full array
3648         reference to the same symbol is a dependency if identical is true.
3649         * dependency.h (gfc_check_dependency): Update prototype.
3650         * trans-array.h (gfc_check_dependency): Delete duplicate prototype.
3651         * trans-stmt.c: #include dependency.h for gfc_check_dependency.
3652         (gfc_trans_forall_1): Update calls to gfc_check_dependency.
3653         (gfc_trans_where_2): Likewise.  Remove unneeded variables.
3654         (gfc_trans_where_3): New function for simple non-dependent WHEREs.
3655         (gfc_trans_where): Call gfc_trans_where_3 to translate simple
3656         F90-style WHERE statements without internal dependencies.
3657         * Make-lang.in (trans-stmt.o): Depend upon dependency.h.
3658
3659 2006-02-05  H.J. Lu  <hongjiu.lu@intel.com>
3660
3661         PR fortran/26041
3662         PR fortran/26064
3663         * resolve.c (resolve_types): New function.
3664         (resolve_codes): Likewise.
3665         (gfc_resolve): Use them.
3666
3667 2006-02-05  Roger Sayle  <roger@eyesopen.com>
3668
3669         * trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE
3670         masks instead of LOGICAL*4.
3671
3672 2006-02-05  Jakub Jelinek  <jakub@redhat.com>
3673
3674         * resolve.c (resolve_symbol): Initialize constructor_expr to NULL.
3675
3676 2006-02-04  Thomas Koenig  <Thomas.Koenig@online.de>
3677
3678         PR fortran/25075
3679         check.c (identical_dimen_shape):  New function.
3680         (check_dot_product):  Use identical_dimen_shape() to check sizes
3681         for dot_product.
3682         (gfc_check_matmul):  Likewise.
3683         (gfc_check_merge):  Check conformance between tsource and fsource
3684         and between tsource and mask.
3685         (gfc_check_pack):  Check conformance between array and mask.
3686
3687 2006-02-03  Steven G. Kargl  <kargls@comcast>
3688             Paul Thomas  <pault@gcc.gnu.org>
3689
3690         PR fortran/20845
3691         * resolve.c (resolve_symbol): Default initialization of derived type
3692         component reguires the SAVE attribute.
3693
3694 2006-02-02  Steven G. Kargl  <kargls@comcast>
3695
3696         PR fortran/24958
3697         match.c (gfc_match_nullify):  Free the list from head not tail.
3698
3699         PR fortran/25072
3700         * match.c (match_forall_header): Fix internal error caused by bogus
3701         gfc_epxr pointers.
3702
3703
3704 2006-01-31  Thomas Koenig  <Thomas.Koenig@online.de>
3705
3706         PR fortran/26039
3707         expr.c (gfc_check_conformance):  Reorder error message
3708         to avoid plural.
3709         check.c(gfc_check_minloc_maxloc):  Call gfc_check_conformance
3710         for checking arguments array and mask.
3711         (check_reduction):  Likewise.
3712
3713 2006-01-30  Erik Edelmann  <eedelman@gcc.gnu.org>
3714
3715         PR fortran/24266
3716         * trans-io.c (set_internal_unit): Check the rank of the
3717         expression node itself instead of its symbol.
3718
3719 2006-01-29  Paul Thomas  <pault@gcc.gnu.org>
3720
3721         PR fortran/18578
3722         PR fortran/18579
3723         PR fortran/20857
3724         PR fortran/20885
3725         * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT)
3726         if actual argument is not a variable.
3727
3728 2006-01-28  Paul Thomas  <pault@gcc.gnu.org>
3729
3730         PR fortran/17911
3731         * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if
3732         the lvalue is a use associated procedure.
3733
3734         PR fortran/20895
3735         PR fortran/25030
3736         * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue
3737         character lengths are not the same.  Use gfc_dep_compare_expr for the
3738         comparison.
3739         * gfortran.h: Add prototype for gfc_dep_compare_expr.
3740         * dependency.h: Remove prototype for gfc_dep_compare_expr.
3741
3742 2006-01-27  Paul Thomas  <pault@gcc.gnu.org>
3743
3744         PR fortran/25964
3745         * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of
3746         generic_ids exempted from assumed size checking.
3747
3748 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
3749
3750         PR fortran/25324
3751         * Make-lang.in (fortran/scanner.o): Depend on toplev.h.
3752         * lang.opt (fpreprocessed): New option.
3753         * scanner.c: Include toplev.h.
3754         (gfc_src_file, gfc_src_preprocessor_lines): New variables.
3755         (preprocessor_line): Unescape filename if there were any
3756         backslashes.
3757         (load_file): If initial and gfc_src_file is not NULL,
3758         use it rather than opening the file.  If gfc_src_preprocessor_lines
3759         has non-NULL elements, pass it to preprocessor_line.
3760         (unescape_filename, gfc_read_orig_filename): New functions.
3761         * gfortran.h (gfc_option_t): Add flag_preprocessed.
3762         (gfc_read_orig_filename): New prototype.
3763         * options.c (gfc_init_options): Clear flag_preprocessed.
3764         (gfc_post_options): If flag_preprocessed, call
3765         gfc_read_orig_filename.
3766         (gfc_handle_option): Handle OPT_fpreprocessed.
3767         * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing
3768         sources.
3769
3770 2006-01-27  Erik Edelmann  <eedelman@gcc.gnu.org>
3771
3772         * symbol.c (free_old_symbol): Fix confusing comment, and add code
3773           to free old_symbol->formal.
3774
3775 2006-01-26  Paul Thomas  <pault@gcc.gnu.org>
3776
3777         PR fortran/25964
3778         * resolve.c (resolve_function): Exclude statement functions from
3779         global reference checking.
3780
3781         PR fortran/25084
3782         PR fortran/20852
3783         PR fortran/25085
3784         PR fortran/25086
3785         * resolve.c (resolve_function): Declare a gfc_symbol to replace the
3786         references through the symtree to the symbol associated with the
3787         function expresion. Give error on reference to an assumed character
3788         length function is defined in an interface or an external function
3789         that is not a dummy argument.
3790         (resolve_symbol): Give error if an assumed character length function
3791         is array-valued, pointer-valued, pure or recursive. Emit warning
3792         that character(*) value functions are obsolescent in F95.
3793
3794         PR fortran/25416
3795         * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
3796         prevents any assumed character length function call from getting here
3797         except intrinsics such as SPREAD. In this case, ensure that no
3798         segfault occurs from referencing non-existent charlen->length->
3799         expr_type and provide a backend_decl for the charlen from the charlen
3800         of the first actual argument.
3801
3802         Cure temp name confusion.
3803         * trans-expr.c (gfc_get_interface_mapping_array): Change name of
3804         temporary from "parm" to "ifm" to avoid clash with temp coming from
3805         trans-array.c.
3806
3807 2006-01-25  Erik Edelmann  <eedelman@gcc.gnu.org>
3808
3809         PR fortran/25716
3810         * symbol.c (free_old_symbol): New function.
3811         (gfc_commit_symbols): Use it.
3812         (gfc_commit_symbol): New function.
3813         (gfc_use_derived): Use it.
3814         * gfortran.h: Add prototype for gfc_commit_symbol.
3815         * intrinsic.c (gfc_find_function): Search in 'conversion'
3816         if not found in 'functions'.
3817         (gfc_convert_type_warn): Add a symtree to the new
3818         expression node, and commit the new symtree->n.sym.
3819         * resolve.c (gfc_resolve_index): Make sure typespec is
3820         properly initialized.
3821
3822 2006-01-23  Paul Thomas  <pault@gcc.gnu.org>
3823
3824         PR fortran/25901
3825         * decl.c (get_proc_name): Replace subroutine and function attributes
3826         in "already defined" test by the formal arglist pointer being non-NULL.
3827
3828         Fix regression in testing of admissability of attributes.
3829         * symbol.c (gfc_add_attribute): If the current_attr has non-zero
3830         intent, do not do the check for a dummy being used.
3831         * decl.c (attr_decl1): Add current_attr.intent as the third argument
3832         in the call to gfc_add_attribute.
3833         * gfortran.h: Add the third argument to the prototype for
3834         gfc_add_attribute.
3835
3836 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
3837
3838         * gfortranspec.c (lang_specific_driver): Update copyright notice
3839         date.
3840
3841 2006-01-21  Paul Thomas  <pault@gcc.gnu.org>
3842
3843         PR fortran/25124
3844         PR fortran/25625
3845         * decl.c (get_proc_name): If there is an existing
3846         symbol in the encompassing namespace, call errors
3847         if it is a procedure of the same name or the kind
3848         field is set, indicating a type declaration.
3849
3850         PR fortran/20881
3851         PR fortran/23308
3852         PR fortran/25538
3853         PR fortran/25710
3854         * decl.c (add_global_entry): New function to check
3855         for existing global symbol with this name and to
3856         create new one if none exists.
3857         (gfc_match_entry): Call add_global_entry before
3858         matching argument lists for subroutine and function
3859         entries.
3860         * gfortran.h: Prototype for existing function,
3861         global_used.
3862         * resolve.c (resolve_global_procedure): New function
3863         to check global symbols for procedures.
3864         (resolve_call, resolve_function): Calls to this
3865         new function for non-contained and non-module
3866         procedures.
3867         * match.c (match_common): Add check for existing
3868         global symbol, creat one if none exists and emit
3869         error if there is a clash.
3870         * parse.c (global_used): Remove static and use the
3871         gsymbol name rather than the new_block name, so that
3872         the function can be called from resolve.c.
3873         (parse_block_data, parse_module, add_global_procedure):
3874         Improve checks for existing gsymbols.  Emit error if
3875         already defined or if references were to another type.
3876         Set defined flag.
3877
3878         PR fortran/PR24276
3879         * trans-expr.c (gfc_conv_aliased_arg): New function called by 
3880         gfc_conv_function_call that coverts an expression for an aliased
3881         component reference to a derived type array into a temporary array
3882         of the same type as the component.  The temporary is passed as an
3883         actual argument for the procedure call and is copied back to the
3884         derived type after the call.
3885         (is_aliased_array): New function that detects an array reference
3886         that is followed by a component reference.
3887         (gfc_conv_function_call): Detect an aliased actual argument with
3888         is_aliased_array and convert it to a temporary and back again
3889         using gfc_conv_aliased_arg.
3890
3891 2006-01-19  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3892
3893         * gfortranspec.c: Update copyright years.
3894         * trans.c: Likewise.
3895         * trans-array.c: Likewise.
3896         * trans-array.h: Likewise.
3897         * trans-decl.c: Likewise.
3898         * trans-stmt.c: Likewise.
3899         * trans-stmt.h: Likewise.
3900         * trans-types.c: Likewise.
3901
3902 2006-01-18  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3903
3904         PR fortran/18540
3905         PR fortran/18937
3906         * gfortran.h (BBT_HEADER): Move definition up.
3907         (gfc_st_label): Add BBT_HEADER, remove 'prev' and 'next'.
3908         * io.c (format_asterisk): Adapt initializer.
3909         * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs
3910         as extension.
3911         (warn_unused_label): Take gfc_st_label label as argument, adapt to
3912         new data structure.
3913         (gfc_resolve): Adapt call to warn_unused_label.
3914         * symbol.c (compare_st_labels): New function.
3915         (gfc_free_st_label, free_st_labels, gfc_get_st_label): Convert to
3916         using balanced binary tree.
3917         * decl.c (match_char_length, gfc_match_old_kind_spec): Do away
3918         with 'cnt'.
3919         (warn_unused_label): Adapt to binary tree.
3920         * match.c (gfc_match_small_literal_int): Only set cnt if non-NULL.
3921         * primary.c (match_kind_param): Do away with cnt.
3922
3923 2006-01-18  Paul Thomas  <pault@gcc.gnu.org>
3924
3925         PR fortran/20869
3926         PR fortran/20875
3927         PR fortran/25024
3928         * symbol.c (check_conflict): Add pointer valued elemental
3929         functions and internal procedures with the external attribute
3930         to the list of conflicts.
3931         (gfc_add_attribute): New catch-all function to perform the
3932         checking of symbol attributes for attribute declaration
3933         statements.
3934         * decl.c (attr_decl1): Call gfc_add_attribute for each of -
3935         (gfc_match_external, gfc_match_intent, gfc_match_intrinsic,
3936         gfc_match_pointer, gfc_match_dimension, gfc_match_target):
3937         Remove spurious calls to checks in symbol.c.  Set the
3938         attribute directly and use the call to attr_decl() for
3939         checking.
3940         * gfortran.h:  Add prototype for gfc_add_attribute.
3941
3942         PR fortran/25785
3943         * resolve.c (resolve_function): Exclude PRESENT from assumed size
3944         argument checking. Replace strcmp's with comparisons with generic
3945         codes.
3946
3947 2006-01-16  Rafael \81Ávila de Esp\81índola  <rafael.espindola@gmail.com>
3948
3949         * gfortranspec.c (lang_specific_spec_functions): Remove.
3950
3951 2006-01-16  Richard Guenther  <rguenther@suse.de>
3952
3953         * trans-stmt.c (gfc_trans_if_1): Use fold_buildN and build_int_cst.
3954         (gfc_trans_arithmetic_if): Likewise.
3955         (gfc_trans_simple_do): Likewise.
3956         (gfc_trans_do): Likewise.
3957         (gfc_trans_do_while): Likewise.
3958         (gfc_trans_logical_select): Likewise.
3959         (gfc_trans_forall_loop): Likewise.
3960         (generate_loop_for_temp_to_lhs): Likewise.
3961         (generate_loop_for_rhs_to_temp): Likewise.
3962         (gfc_trans_allocate): Likewise.
3963         * trans.c (gfc_add_expr_to_block): Do not fold expr again.
3964
3965 2006-01-16  Richard Guenther  <rguenther@suse.de>
3966
3967         * trans-expr.c (gfc_conv_function_call): Use fold_build2.
3968         * trans-stmt.c (gfc_trans_goto): Likewise.  Use build_int_cst.
3969         * trans.c (gfc_trans_runtime_check): Don't fold the condition
3970         again.
3971
3972 2006-01-13  Steven G. Kargl  <kargls@comcast.net>
3973
3974         PR fortran/25756
3975         * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
3976         unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
3977         from g95).
3978
3979 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
3980
3981         * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement
3982         nodes.
3983
3984 2006-01-11  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
3985
3986         * parse.c (next_fixed): Remove superfluous string concatenation.
3987
3988 2006-01-11  Bernhard Fischer  <rep.nop@aon.at>
3989
3990         PR fortran/25486
3991         * scanner.c (load_line): use maxlen to determine the line-length used
3992         for padding lines in fixed form.
3993
3994 2006-01-11  Paul Thomas  <pault@gcc.gnu.org>
3995
3996         PR fortran/25730
3997         * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for
3998         character lengths.
3999
4000 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
4001
4002         fortran/24936
4003         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert
4004         to avoid type mismatch.
4005
4006 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
4007
4008         PR fortran/21977
4009         * trans-decl.c (gfc_generate_function_code): Move the NULLing of
4010         current_fake_result_decl down to below generate_local_vars.
4011
4012 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
4013
4014         PR fortran/12456
4015         * trans-expr.c (gfc_to_single_character): New function that converts
4016         string to single character if its length is 1.
4017         (gfc_build_compare_string):New function that compare string and handle
4018         single character specially.
4019         (gfc_conv_expr_op): Use gfc_build_compare_string.
4020         (gfc_trans_string_copy): Use gfc_to_single_character.
4021         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use
4022         gfc_build_compare_string.
4023         * trans.h (gfc_build_compare_string): Add prototype.
4024
4025 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
4026
4027         * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal
4028         constant.
4029         (gfc_simplify_ichar): Get the result from unsinged char and in the
4030         range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX.
4031
4032 2006-01-08  Erik Edelmann  <eedelman@gcc.gnu.org>
4033
4034         PR fortran/25093
4035         * resolve.c (resolve_fntype): Check that PUBLIC functions
4036         aren't of PRIVATE type.
4037
4038 2006-01-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
4039
4040         * decl.c (gfc_match_function_decl): Correctly error out in case of
4041         omitted function argument list.
4042
4043 2006-01-07  Paul Thomas  <pault@gcc.gnu.org>
4044
4045         PR fortran/22146
4046         * trans-array.c (gfc_reverse_ss): Remove static attribute.
4047         (gfc_walk_elemental_function_args): Replace gfc_expr * argument for
4048         the function call with the corresponding gfc_actual_arglist*.  Change
4049         code accordingly.
4050         (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
4051         now requires the actual argument list instead of the expression for
4052         the function call.
4053         * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args
4054         and provide a prototype for gfc_reverse_ss.
4055         * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case
4056         where an elemental subroutine has array valued actual arguments.
4057
4058         PR fortran/25029
4059         PR fortran/21256
4060         PR fortran/20868
4061         PR fortran/20870
4062         * resolve.c (check_assumed_size_reference): New function to check for upper
4063         bound in assumed size array references.
4064         (resolve_assumed_size_actual): New function to do a very restricted scan
4065         of actual argument expressions of those procedures for which incomplete
4066         assumed size array references are not allowed.
4067         (resolve_function, resolve_call): Switch off assumed size checking of
4068         actual arguments, except for elemental procedures and intrinsic
4069         inquiry functions, in some circumstances.
4070         (resolve_variable): Call check_assumed_size_reference.
4071
4072 2006-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
4073
4074         PR fortran/24268
4075         * io.c (next_char_not_space): New function that returns the next
4076         character that is not white space.
4077         (format_lex): Use the new function to skip whitespace within
4078         a format string.
4079
4080 2006-01-05  Erik Edelmann  <eedelman@gcc.gnu.org>
4081
4082         PR fortran/23675
4083         * expr.c (gfc_expr_set_symbols_referenced): New function.
4084         * gfortran.h: Add a function prototype for it.
4085         * resolve.c (resolve_function): Use it for
4086         use associated character functions lengths.
4087         * expr.c, gfortran.h, resolve.c: Updated copyright years.
4088
4089 2006-01-03  Steven G. Kargl  <kargls@comcast.net>
4090
4091         PR fortran/25101
4092         * resolve.c (resolve_forall_iterators):  Check for scalar variables;
4093         Check stride is nonzero.
4094
4095 2006-01-02  Steven G. Kargl  <kargls@comcast.net>
4096
4097         PR fortran/24640
4098         * parse.c (next_free): Check for whitespace after the label.
4099         * match.c (gfc_match_small_literal_int): Initialize cnt variable.
4100
4101 2006-01-01  Steven G. Kargl  <kargls@comcast.net>
4102
4103         * ChangeLog: Split previous years into ...
4104         * ChangeLog-2002: here.
4105         * ChangeLog-2003: here.
4106         * ChangeLog-2004: here.
4107         * ChangeLog-2005: here.