OSDN Git Service

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