OSDN Git Service

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