OSDN Git Service

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