OSDN Git Service

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