OSDN Git Service

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