OSDN Git Service

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