OSDN Git Service

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