OSDN Git Service

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