OSDN Git Service

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