OSDN Git Service

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