OSDN Git Service

2006-05-30 Asher Langton <langton2@llnl.gov>
[pf3gnuchains/gcc-fork.git] / gcc / fortran / ChangeLog
1 2006-05-30  Asher Langton  <langton2@llnl.gov>
2
3         * symbol.c (check_conflict): Allow external, function, and
4         subroutine attributes with Cray pointees.
5         * trans-expr.c (gfc_conv_function_val): Translate Cray pointees
6         that point to procedures.
7         * gfortran.texi: Document new feature.
8
9 2006-05-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
10
11         PR fortran/27634
12         * io.c (check_format): Add error for missing period in format
13         specifier unless -std=legacy.
14         * gfortran.texi: Add description of expanded namelist read and
15         missing period in format extensions.
16
17 2006-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
18
19         PR fortran/19777
20         * trans-array.c (gfc_conv_array_ref): Perform out-of-bounds
21         checking for assumed-size arrrays for all but the last dimension.
22
23 2006-05-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
24
25         * invoke.texi: Change -fpackderived into -fpack-derived.
26
27 2006-05-29  Kazu Hirata  <kazu@codesourcery.com>
28
29         * options.c, primary.c, resolve.c, trans-common.c: Fix typos
30         in error messages.
31
32 2006-05-28  Kazu Hirata  <kazu@codesourcery.com>
33
34         * check.c, expr.c, resolve.c, trans-common.c,
35         trans-intrinsic.c, trans-stmt.c, trans-types.c: Fix comment typos.
36
37 2006-05-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
38
39         PR fortran/19777
40         * trans-array.c (gfc_conv_array_ref): Don't perform out-of-bounds
41         checking for assumed-size arrrays.
42
43 2006-05-27  Paul Thomas  <pault@gcc.gnu.org>
44
45         * trans-intrinsic.c (gfc_conv_associated): If pointer in first
46         arguments has zero array length of zero string length, return
47         false.
48
49 2006-05-26  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
50
51         PR fortran/27524
52         * trans-array.c (gfc_trans_dummy_array_bias): Don't use stride as
53         a temporary variable when -fbounds-check is enabled, since its
54         value will be needed later.
55
56 2006-05-26  Thomas Koenig  <Thomas.Koenig@online.de>
57
58         PR fortran/23151
59         * io.c (match_io):  print (1,*) is an error.
60
61 2006-05-26  Paul Thomas  <pault@gcc.gnu.org>
62
63         PR fortran/27709
64         * resolve.c (find_array_spec): Add gfc_symbol, derived, and
65         use to track repeated component references.
66
67         PR fortran/27155
68         PR fortran/27449
69         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): Use
70         se->string_length throughout and use memcpy to populate the
71         expression returned to the scalarizer.
72         (gfc_size_in_bytes): New function.
73
74 2006-05-21  Paul Thomas  <pault@gcc.gnu.org>
75
76         PR fortran/27613
77         * primary.c (gfc_match_rvalue): Test if symbol represents a
78         direct recursive function reference.  Error if array valued,
79         go to function0 otherwise.
80
81 2006-05-21  Paul Thomas  <pault@gcc.gnu.org>
82
83         PR fortran/25746
84         * interface.c (gfc_extend_assign): Use new EXEC_ASSIGN_CALL.
85         * gfortran.h : Put EXEC_ASSIGN_CALL in enum.
86         * trans-stmt.c (gfc_conv_elemental_dependencies): New function.
87         (gfc_trans_call): Call it.  Add new boolian argument to flag
88         need for dependency checking. Assert intent OUT and IN for arg1
89         and arg2.
90         (gfc_trans_forall_1): Use new code EXEC_ASSIGN_CALL.
91         trans-stmt.h : Modify prototype of gfc_trans_call.
92         trans.c (gfc_trans_code): Add call for EXEC_ASSIGN_CALL.
93         st.c (gfc_free_statement): Free actual for EXEC_ASSIGN_CALL.
94         * dependency.c (gfc_check_fncall_dependency): Don't check other
95         against itself.
96
97         PR fortran/25090
98         * resolve.c : Remove resolving_index_expr.
99         (entry_parameter): Remove.
100         (gfc_resolve_expr, resolve_charlen, resolve_fl_variable): Lift
101         calls to entry_parameter and references to resolving_index_expr.
102
103         PR fortran/27584
104         * check.c (gfc_check_associated): Replace NULL assert with an
105         error message, since it is possible to generate bad code that
106         has us fall through to here..
107
108         PR fortran/19015
109         * iresolve.c (maxloc, minloc): If DIM is not present, pass the
110         rank of ARRAY as the shape of the result.  Otherwise, pass the
111         shape of ARRAY, less the dimension DIM.
112         (maxval, minval): The same, when DIM is present, otherwise no
113         change.
114
115 2006-05-19  H.J. Lu  <hongjiu.lu@intel.com>
116
117         PR fortran/27662
118         * trans-array.c (gfc_conv_expr_descriptor): Don't zero the
119         first stride to indicate a temporary.
120         * trans-expr.c (gfc_conv_function_call): Likewise.
121
122 2006-05-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
123             Feng Wang  <fengwang@nudt.edu.cn>
124
125         PR fortran/27552
126         * dump-parse-tree.c (gfc_show_expr): Deal with Hollerith constants.
127         * data.c (create_character_intializer): Set from_H flag if character is
128         initialized by Hollerith constant.
129
130 2006-05-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
131
132         PR fortran/26551
133         * resolve.c (resolve_call, resolve_function): Issue an error
134         if a function or subroutine call is recursive but the function or
135         subroutine wasn't declared as such.
136
137 2006-05-07  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
138
139         PR fortran/26551
140         * gfortran.dg/recursive_check_1.f: New test.
141
142
143 2006-05-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
144
145         PR fortran/27320
146         * dump-parse-tree.c (gfc_show_code_node): Try harder to find the
147         called procedure name.
148
149 2006-05-17  Jakub Jelinek  <jakub@redhat.com>
150
151         PR middle-end/27415
152         * trans-openmp.c (gfc_trans_omp_parallel_do,
153         gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare): Set
154         OMP_PARALLEL_COMBINED flag.
155
156 2006-05-16  H.J. Lu  <hongjiu.lu@intel.com>
157
158         PR driver/26885
159         * Make-lang.in (GFORTRAN_D_OBJS): Replace gcc.o with
160         $(GCC_OBJS).
161
162 2006-05-15  Paul Thomas  <pault@gcc.gnu.org>
163
164         PR fortran/25090
165         * resolve.c: Static resolving_index_expr initialized.
166         (entry_parameter): New function to emit errors for variables
167         that are not entry parameters.
168         (gfc_resolve_expr): Call entry_parameter, when resolving
169         variables, if the namespace has entries and resolving_index_expr
170         is set.
171         (resolve_charlen): Set resolving_index_expr before the call to
172         resolve_index_expr and reset it afterwards.
173         (resolve_fl_variable): The same before and after the call to
174         is_non_constant_shape_array, which ultimately makes a call to
175         gfc_resolve_expr.
176
177         PR fortran/25082
178         * resolve.c (resolve_code): Add error condition that the return
179         expression must be scalar.
180
181         PR fortran/27411
182         * matchexp.c (gfc_get_parentheses): New function.
183         (match_primary): Remove inline code and call above.
184         * gfortran.h: Provide prototype for gfc_get_parentheses.
185         * resolve.c (resolve_array_ref): Call the above, when start is a
186         derived type variable array reference.
187
188 2006-05-15  Jakub Jelinek  <jakub@redhat.com>
189
190         PR fortran/27446
191         * trans-openmp.c (gfc_trans_omp_array_reduction): Ensure
192         OMP_CLAUSE_REDUCTION_{INIT,MERGE} are set to BIND_EXPR.
193
194 2006-05-14  H.J. Lu  <hongjiu.lu@intel.com>
195
196         * Make-lang.in (fortran/options.o): Depend on $(TARGET_H).
197
198 2006-05-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
199
200         PR fortran/27553
201         * parse.c (next_free): Return instead of calling decode_statement
202         upon error.
203
204 2005-05-10  Thomas Koenig  <Thomas.Koenig@online.de>
205
206         PR fortran/27470
207         * trans-array.c(gfc_array_allocate):  If ref->next exists
208         that is if there is a statement like ALLOCATE(foo%bar(2)),
209         F95 rules require that bar should be a pointer.
210
211 2006-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
212
213         PR fortran/20460
214         * resolve.c (gfc_resolve_index): Make REAL array indices a
215         GFC_STD_LEGACY feature.
216
217 2006-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
218
219         PR fortran/24549
220         * parse.c (reject_statement): Clear gfc_new_block.
221
222 2006-05-09  Steven G. Kargl  <kargls@comcast.net>
223
224         * invoke.texi: Missed file in previous commit.  Update
225          description of -fall-intrinsics
226
227 2006-05-07  Steven Boscher  <steven@gcc.gnu.org>
228
229         PR fortran/27378
230         * parse.c (next_statement): Add check to avoid an ICE when
231         gfc_current_locus.lb is not set.
232
233 2006-05-07  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
234
235         PR fortran/27457
236         * match.c (match_case_eos): Error out on garbage following
237         CASE(...).
238
239 2006-05-07  Paul Thomas  <pault@gcc.gnu.org>
240
241         PR fortran/24813
242         * trans-array.c (get_array_ctor_strlen): Remove static attribute.
243         * trans.h: Add prototype for get_array_ctor_strlen.
244         * trans-intrinsic.c (gfc_conv_intrinsic_len): Switch on EXPR_ARRAY
245         and call get_array_ctor_strlen.
246
247 2006-05-05  Steven G. Kargl  <kargls@comcast.net>
248
249         * invoke.texi: Update description of -fall-intrinsics
250         * options.c (gfc_post_options): Disable -Wnonstd-intrinsics if
251         -fall-intrinsics is used.
252         (gfc_handle_option): Permit -Wno-nonstd-intrinsics.
253
254 2006-05-04  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
255
256         * simplify.c (ascii_table): Fix wrong entry.
257
258 2006-05-02  Steven G. Kargl  <kargls@comcast.net>
259
260         PR fortran/26896
261         * lang.opt: Fix -Wtab description
262
263         PR fortran/20248  
264         * lang.opt: New flag -fall-intrinsics.
265         * invoke.texi:  Document option.
266         * gfortran.h (options_t):  New member flag_all_intrinsics.
267         * options.c (gfc_init_options, gfc_handle_option): Set new option.
268         sort nearby misplaced options.
269         * intrinsic.c (add_sym, make_generic, make_alias):  Use it.
270  
271 2006-05-02 Paul Thomas <pault@gcc.gnu.org>
272
273         PR fortran/27269
274         * module.c: Add static flag in_load_equiv.
275         (mio_expr_ref): Return if no symtree and in_load_equiv.
276         (load_equiv): If any of the equivalence members have no symtree, free
277         the equivalence and the associated expressions.
278
279         PR fortran/27324
280         * trans-common.c (gfc_trans_common): Invert the order of calls to
281         finish equivalences and gfc_commit_symbols.
282
283 2006-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
284
285         PR fortran/25681
286         * simplify.c (simplify_len): Character variables with constant
287         length can be simplified.
288
289 2006-04-29  H.J. Lu  <hongjiu.lu@intel.com>
290
291         PR fortran/27351
292         * trans-array.c (gfc_conv_array_transpose): Move gcc_assert
293         before gfc_conv_expr_descriptor.
294
295 2006-04-23  Paul Thomas  <pault@gcc.gnu.org>
296
297         PR fortran/25099
298         * resolve.c (resolve_call): Check conformity of elemental
299         subroutine actual arguments.
300
301 2006-04-22  Jakub Jelinek  <jakub@redhat.com>
302
303         PR fortran/26769
304         * iresolve.c (gfc_resolve_reshape): Use reshape_r16 for real(16).
305         (gfc_resolve_transpose): Use transpose_r16 for real(16).
306
307 2006-04-21 Paul Thomas <pault@gcc.gnu.org>
308
309         PR fortran/27122
310         * resolve.c (resolve_function): Remove general restriction on auto
311         character length function interfaces.
312         (gfc_resolve_uops): Check restrictions on defined operator
313         procedures.
314         (resolve_types): Call the check for defined operators.
315
316         PR fortran/27113
317         * trans-array.c (gfc_trans_array_constructor_subarray): Remove
318         redundant gfc_todo_error.
319         (get_array_ctor_var_strlen): Remove typo in enum.
320
321 2006-04-18  Bernhard Fischer  <aldot@gcc.gnu.org>
322
323         * parse.c (next_free): Use consistent error string between
324         free-form and fixed-form for illegal statement label of zero.
325         (next_fixed): Use consistent warning string between free-form
326         and fixed-form for statement labels for empty statements.
327
328 2006-04-18  Steve Ellcey  <sje@cup.hp.com>
329
330         * trans-io.c (gfc_build_io_library_fndecls): Align pad.
331
332 2006-04-16  Thomas Koenig  <Thomas.Koenig@online.de>
333
334         PR fortran/26017
335         * trans-array.c(gfc_array_init_size):  Introduce or_expr
336         which is true if the size along any dimension
337         is negative.  Create a temporary variable with base
338         name size.  If or_expr is true, set the temporary to 0,
339         to the normal size otherwise.
340
341 2006-04-16  Paul Thomas  <pault@gcc.gnu.org>
342
343         PR fortran/26822
344         * intrinsic.c (add_functions): Mark LOGICAL as elemental.
345
346         PR fortran/26787
347         * expr.c (gfc_check_assign): Extend scope of error to include
348         assignments to a procedure in the main program or, from a
349         module or internal procedure that is not that represented by
350         the lhs symbol. Use VARIABLE rather than l-value in message.
351
352         PR fortran/27096
353         * trans-array.c (gfc_trans_deferred_array): If the backend_decl
354         is not a descriptor, dereference and then test and use the type.
355
356         PR fortran/25597
357         * trans-decl.c (gfc_trans_deferred_vars): Check if an array
358         result, is also automatic character length.  If so, process
359         the character length.
360
361         PR fortran/18003
362         PR fortran/25669
363         PR fortran/26834
364         * trans_intrinsic.c (gfc_walk_intrinsic_bound): Set
365         data.info.dimen for bound intrinsics.
366         * trans_array.c (gfc_conv_ss_startstride): Pick out LBOUND and
367         UBOUND intrinsics and supply their shape information to the ss
368         and the loop.
369
370         PR fortran/27124
371         * trans_expr.c (gfc_trans_function_call):  Add a new block, post,
372         in to which all the argument post blocks are put.  Add this block
373         to se->pre after a byref call or to se->post, otherwise.
374
375 2006-04-14  Roger Sayle  <roger@eyesopen.com>
376
377         * trans-io.c (set_string): Use fold_build2 and build_int_cst instead
378         of build2 and convert to construct "x < 0" rather than "x <= -1".
379
380 2006-04-13  Richard Henderson  <rth@redhat.com>
381
382         * trans-openmp.c (gfc_trans_omp_sections): Adjust for changed
383         number of operands to OMP_SECTIONS.
384
385 2006-04-08  Kazu Hirata  <kazu@codesourcery.com>
386
387         * gfortran.texi: Fix typos.  Follow spelling conventions.
388         * resolve.c, trans-expr.c, trans-stmt.c: Fix comment typos.
389         Follow spelling conventions.
390
391 2006-04-05  Roger Sayle  <roger@eyesopen.com>
392
393         * dependency.c (get_no_elements): Delete function.
394         (get_deps): Delete function.
395         (transform_sections): Delete function.
396         (gfc_check_section_vs_section): Significant rewrite.
397
398 2006-04-04  H.J. Lu  <hongjiu.lu@intel.com>
399
400         PR fortran/25619
401         * trans-array.c (gfc_conv_expr_descriptor): Only dereference
402         character pointer when copying temporary.
403
404         PR fortran/23634
405         * trans-array.c (gfc_conv_expr_descriptor): Properly copy
406         temporary character with non constant size.
407
408 2006-04-03  Paul Thomas  <pault@gcc.gnu.org>
409
410         PR fortran/26891
411         * trans.h: Prototype for gfc_conv_missing_dummy.
412         * trans-expr (gfc_conv_missing_dummy): New function
413         (gfc_conv_function_call): Call it and tidy up some of the code.
414         * trans-intrinsic (gfc_conv_intrinsic_function_args): The same.
415
416         PR fortran/26976
417         * array.c (gfc_array_dimen_size): If available, return shape[dimen].
418         * resolve.c (resolve_function): If available, use the argument
419         shape for the function expression.
420         * iresolve.c (gfc_resolve_transfer): Set shape[0] = size.
421
422 2006-04-02  Erik Edelmann  <eedelman@gcc.gnu.org>
423
424         * trans-array.c (gfc_trans_dealloc_allocated): Take a
425         tree representation of the array to be deallocated as argument
426         instead of its gfc_symbol.
427         (gfc_trans_deferred_array): Update call to
428         gfc_trans_dealloc_allocated.
429         * trans-array.h (gfc_trans_dealloc_allocated): Update
430         prototype.
431         * trans-expr.c (gfc_conv_function_call): Update call to
432         gfc_trans_dealloc_allocated, get indirect reference to dummy
433         arguments.
434
435 2006-04-01  Roger Sayle  <roger@eyesopen.com>
436
437         PR fortran/25270
438         * trans-array.c (gfc_trans_allocate_array_storage): In array index
439         calculations use gfc_index_zero_node and gfc_index_one_node instead
440         of integer_zero_node and integer_one_node respectively.
441         (gfc_conv_array_transpose): Likewise.
442         (gfc_conv_ss_startstride): Likewise.
443         (gfc_trans_dummy_array_bias): Likewise.
444
445 2006-04-01  Roger Sayle  <roger@eyesopen.com>
446
447         * dependency.c (gfc_is_inside_range): Delete.
448         (gfc_check_element_vs_section): Significant rewrite.
449
450 2006-04-01  Roger Sayle  <roger@eyesopen.com>
451
452         * dependency.c (gfc_dep_compare_expr): Strip parentheses and unary
453         plus operators when comparing expressions.  Handle comparisons of
454         the form "X+C vs. X", "X vs. X+C", "X-C vs. X" and "X vs. X-C" where
455         C is an integer constant.  Handle comparisons of the form "P+Q vs.
456         R+S" and "P-Q vs. R-S".  Handle comparisons of integral extensions
457         specially (increasing functions) so extend(A) > extend(B), when A>B.
458         (gfc_check_element_vs_element): Move test later, so that we ignore
459         the fact that "A < B" or "A > B" when A or B contains a forall index.
460
461 2006-03-31  Asher Langton  <langton2@llnl.gov>
462
463         PR fortran/25358
464         * expr.c (gfc_check_assign): Allow cray pointee to be assumes-size.
465         
466 2006-03-30  Paul Thomas <paulthomas2@wanadoo.fr>
467             Bud Davis  <bdavis9659@sbcglobal.net>
468
469         PR 21130
470         * module.c (load_needed): Traverse entire tree before returning.
471
472 2006-03-30  Roger Sayle  <roger@eyesopen.com>
473
474         PR middle-end/22375
475         * trans.c (gfc_trans_runtime_check): Promote the arguments of
476         __builtin_expect to the correct types, and the result back to
477         boolean_type_node.
478
479 2006-03-29  Carlos O'Donell  <carlos@codesourcery.com>
480
481         * Make-lang.in: Rename docdir to gcc_docdir.
482
483 2006-03-28  Steven G. Kargl  <kargls@comcast.net>
484
485         * intrinsic.texi: s/floor/float in previous commit.
486
487 2006-03-28 Paul Thomas <pault@gcc.gnu.org>
488
489         PR fortran/26779
490         * resolve.c (resolve_fl_procedure): Do not check the access of
491         derived types for internal procedures.
492
493 2006-03-27  Jakub Jelinek  <jakub@redhat.com>
494
495         * io.c (check_io_constraints): Don't look at
496         dt->advance->value.charater.string, unless it is a CHARACTER
497         constant.
498
499         * f95-lang.c (gfc_get_alias_set): New function.
500         (LANG_HOOKS_GET_ALIAS_SET): Define.
501
502 2006-03-25  Steven G. Kargl  <kargls@comcast.net>
503
504         PR fortran/26816
505         * intrinsic.c (add_functions): Allow FLOAT to accept all integer kinds.
506         * intrinsic.texi: Document FLOAT.
507
508 2006-03-25  Thomas Koenig  <Thomas.Koenig@online.de>
509
510         PR fortran/26769
511         * iresolve.c (gfc_resolve_reshape):  Remove doubling of
512         kind for complex. For real(kind=10), call reshape_r10.
513         (gfc_resolve_transpose):  For real(kind=10), call
514         transpose_r10.
515
516 2006-03-25  Roger Sayle  <roger@eyesopen.com>
517
518         * dependency.c (gfc_check_dependency): Improve handling of pointers;
519         Two variables of different types can't have a dependency, and two
520         variables with the same symbol are equal, even if pointers.
521
522 2006-03-24  Roger Sayle  <roger@eyesopen.com>
523
524         * gfortran.h (gfc_symbol): Add a new "forall_index" bit field.
525         * match.c (match_forall_iterator): Set forall_index field on
526         the iteration variable's symbol.
527         * dependency.c (contains_forall_index_p): New function to
528         traverse a gfc_expr to check whether it contains a variable
529         with forall_index set in it's symbol.
530         (gfc_check_element_vs_element): Return GFC_DEP_EQUAL for scalar
531         constant expressions that don't variables used as FORALL indices.
532
533 2006-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
534
535         PR driver/22600
536         * error.c (gfc_fatal_error): Return ICE_EXIT_CODE instead of 4.
537
538 2006-03-22  Thomas Koenig  <Thomas.Koenig@online.de>
539
540         PR fortran/19303
541         * gfortran.h (gfc_option_t):  Add record_marker.
542         * lang.opt:  Add -frecord-marker=4 and -frecord-marker=8.
543         * trans-decl.c:  Add gfor_fndecl_set_record_marker.
544         (gfc_build_builtin_function_decls): Set
545         gfor_fndecl_set_record_marker.
546         (gfc_generate_function_code):  If we are in the main program
547         and -frecord-marker was provided, call set_record_marker.
548         * options.c (gfc_handle_option):  Add handling for
549         -frecord-marker=4 and -frecord-marker=8.
550         * invoke.texi:  Document -frecord-marker.
551
552 2006-03-22  Paul Thomas  <pault@gcc.gnu.org>
553
554         PR fortran/17298
555         * trans-intrinsic.c (gfc_conv_intrinsic_array_transfer): New
556         function to implement array valued TRANSFER intrinsic.
557         (gfc_conv_intrinsic_function): Call the new function if TRANSFER
558         and non-null se->ss.
559         (gfc_walk_intrinsic_function): Treat TRANSFER as one of the
560         special cases by calling gfc_walk_intrinsic_libfunc directly.
561
562 2006-03-21  Toon Moene  <toon@moene.indiv.nluug.nl>
563
564         * options.c (gfc_init_options): Initialize
565         flag_argument_noalias to 3.
566
567 2006-03-20  Thomas Koenig  <Thomas.Koenig@online.de>
568
569         PR fortran/20935
570         * iresolve.c (gfc_resolve_maxloc):   If mask is scalar,
571         prefix the function name with an "s".  If the mask is scalar
572         or if its kind is smaller than gfc_default_logical_kind,
573         coerce it to default kind.
574         (gfc_resolve_maxval):  Likewise.
575         (gfc_resolve_minloc):  Likewise.
576         (gfc_resolve_minval):  Likewise.
577         (gfc_resolve_product):  Likewise.
578         (gfc_resolve_sum):  Likewise.
579
580 2006-03-19  Paul Thomas  <pault@gcc.gnu.org>
581
582         PR fortran/26741
583         *expr.c (external_spec_function): Permit elemental functions.
584
585         PR fortran/26716
586         *interface.c (compare_actual_formal): Detect call for procedure
587         usage and require rank checking, in this case, for assumed shape
588         and deferred shape arrays.
589         (gfc_procedure_use): Revert to pre-PR25070 call to
590         compare_actual_formal that does not require rank checking..
591
592 2006-03-16  Roger Sayle  <roger@eyesopen.com>
593
594         * gfortran.h (gfc_equiv_info): Add length field.
595         * trans-common.c (copy_equiv_list_to_ns): Set the length field.
596         * dependency.c (gfc_are_equivalenced_arrays): Use both the offset
597         and length fields to determine whether the two equivalenced symbols
598         overlap in memory.
599
600 2006-03-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
601
602         PR fortran/19101
603         * gfortran.h: Add warn_ampersand.
604         * invoke.texi: Add documentation for new option.
605         * lang.opt: Add Wampersand.
606         * options.c (gfc_init_options): Initialize warn_ampersand.
607         (gfc_post_options): Set the warn if pedantic.
608         (set_Wall): Set warn_ampersand.
609         (gfc_handle_option: Add Wampersand for itself, -std=f95, and -std=f2003.
610         * scanner.c (gfc_next_char_literal): Add test for missing '&' in
611         continued character constant and give warning if missing.
612
613 2006-03-14  Steven G. Kargl  <kargls@comcast.net>
614
615         PR 18537
616         * gfortran.h: Wrap Copyright line.
617         (gfc_option_t): add warn_tabs member.
618         * lang.opt: Update Coyright year.  Add the Wtabs.
619         * invoke.texi: Document -Wtabs.
620         * scanner.c (gfc_gobble_whitespace): Use warn_tabs.  Add linenum to
621         suppress multiple warnings.
622         (load_line): Use warn_tabs.  Add linenum, current_line, seen_comment
623         to suppress multiple warnings.
624         * options.c (gfc_init_options): Initialize warn_tabs.
625         (set_Wall): set warn_tabs for -Wall.
626         (gfc_post_options): Adjust flag_tabs depending on -pedantic.
627         (gfc_handle_option):  Process command-line option -W[no-]tabs
628
629 2006-03-13  Paul Thomas  <pault@gcc.gnu.org>
630
631         PR fortran/25378
632         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): Set the initial position to zero and
633         modify the condition for updating it, to implement the F2003 requirement for all(mask)
634         is false.
635
636 2006-03-13  Jakub Jelinek  <jakub@redhat.com>
637
638         * trans-openmp.c (gfc_trans_omp_variable): Handle references
639         to parent result.
640         * trans-expr.c (gfc_conv_variable): Remove useless setting
641         of parent_flag, formatting.
642
643         * trans-decl.c (gfc_get_fake_result_decl): Re-add setting of
644         GFC_DECL_RESULT flag.
645
646 2003-03-11  Roger Sayle  <roger@eyesopen.com>
647
648         * dependency.c (gfc_dep_compare_expr) <EXPR_OP>: Allow unary and
649         binary operators to compare equal if their operands are equal.
650         <EXPR_FUNCTION>: Allow "constant" intrinsic conversion functions
651         to compare equal, if their operands are equal.
652
653 2006-03-11  Erik Edelmann  <eedelman@gcc.gnu.org>
654
655         * symbol.c (check_conflict): Allow allocatable function results,
656         except for elemental functions.
657         * trans-array.c (gfc_trans_allocate_temp_array): Rename to ...
658         (gfc_trans_create_temp_array): ... this, and add new argument
659         callee_alloc.
660         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call
661         to gfc_trans_allocate_temp_array.
662         * trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
663         * trans-expr.c (gfc_conv_function_call): Use new arg of
664         gfc_trans_create_temp_array avoid pre-allocation of temporary
665         result variables of pointer AND allocatable functions.
666         (gfc_trans_arrayfunc_assign): Return NULL for allocatable
667         functions.
668         * resolve.c (resolve_symbol): Copy value of 'allocatable' attribute
669         from sym->result to sym.
670
671 2006-03-09  Erik Edelmann  <eedelman@gcc.gnu.org>
672
673         * trans-expr.c (gfc_add_interface_mapping): Copy 'allocatable'
674         attribute from sym to new_sym.  Call build_fold_indirect_ref()
675         for allocatable arguments.
676
677 2006-03-09 Paul Thomas <pault@gcc.gnu.org>
678
679         PR fortran/26257
680         * trans-array.c (gfc_conv_expr_descriptor): Exclude calculation of
681         the offset and data when se->data_not_needed is set.
682         * trans.h: Include the data_not_need bit in gfc_se.
683         * trans-intrinsic.c (gfc_conv_intrinsic_size): Set it for SIZE.
684
685 2006-03-06  Paul Thomas  <pault@gcc.gnu.org>
686             Erik Edelmann  <eedelman@gcc.gnu.org>
687
688         * trans-array.c (gfc_trans_dealloc_allocated): New function.
689         (gfc_trans_deferred_array): Use it, instead of inline code.
690         * trans-array.h: Prototype for gfc_trans_dealloc_allocated().
691         * trans-expr.c (gfc_conv_function_call): Deallocate allocated
692         ALLOCATABLE, INTENT(OUT) arguments upon procedure entry.
693
694 2006-03-06  Paul Thomas  <pault@gcc.gnu.org>
695
696         PR fortran/26107
697         * resolve.c (resolve_function): Add name after test for pureness.
698
699         PR fortran/19546
700         * trans-expr.c (gfc_conv_variable): Detect reference to parent result,
701         store current_function_decl, replace with parent, whilst calls are
702         made to gfc_get_fake_result_decl, and restore afterwards. Signal this
703         to gfc_get_fake_result_decl with a new argument, parent_flag.
704         * trans-stmt.c (gfc_trans_return): gfc_get_fake_result_decl 2nd arg
705         is set to zero.
706         * trans.h: Add parent_flag to gfc_get_fake_result_decl prototype.
707         * trans-decl.c (gfc_get_fake_result_decl): On parent_flag, being set,
708         add decl to parent function. Replace refs to current_fake_result_decl
709         with refs to this_result_decl.
710         (gfc_generate_function_code): Null parent_fake_result_decl before the
711         translation of code for contained procedures. Set parent_flag to zero
712         in call to gfc_get_fake_result_decl.
713         * trans-intrinsic.c (gfc_conv_intrinsic_len): The same.
714
715 2006-03-05  Steven G. Kargl  <kargls@comcast.net>
716
717         * simplify.c (gfc_simplify_verify):  Fix return when SET=''.
718
719 2006-03-05  Erik Edelmann  <eedelman@gcc.gnu.org>
720
721         PR fortran/16136
722         * symbol.c (conf_std): New macro.
723         (check_conflict): Use it to allow ALLOCATABLE dummy
724         arguments for F2003.
725         * trans-expr.c (gfc_conv_function_call): Pass the
726         address of the array descriptor when dummy argument is
727         ALLOCATABLE.
728         * interface.c (compare_allocatable): New function.
729         (compare_actual_formal): Use it.
730         * resolve.c (resolve_deallocate_expr,
731         resolve_allocate_expr): Check that INTENT(IN) variables
732         aren't (de)allocated.
733         * gfortran.texi (Fortran 2003 status): List ALLOCATABLE
734         dummy arguments as supported.
735
736 2006-03-03  Roger Sayle  <roger@eyesopen.com>
737
738         * dependency.c (gfc_check_element_vs_element): Revert last change.
739
740 2006-03-03  Roger Sayle  <roger@eyesopen.com>
741
742         * dependency.c (gfc_check_element_vs_element): Consider two
743         unordered scalar subscripts as (potentially) equal.
744
745 2006-03-03  Roger Sayle  <roger@eyesopen.com>
746
747         * dependency.c (gfc_check_dependency): Call gfc_dep_resolver to
748         check whether two array references have a dependency.
749         (gfc_check_element_vs_element): Assume lref and rref must be
750         REF_ARRAYs.  If gfc_dep_compare_expr returns -2, assume these
751         references could potentially overlap.
752         (gfc_dep_resolver): Whitespace and comment tweaks.  Assume a
753         dependency if the references have different depths.  Rewrite
754         final term to clarrify we only have a dependency for overlaps.
755
756 2006-03-03  Thomas Koenig  <Thomas.Koenig@online.de>
757
758         PR fortran/25031
759         * trans-array.h:  Adjust gfc_array_allocate prototype.
760         * trans-array.c (gfc_array_allocate):  Change type of
761         gfc_array_allocatate to bool.  Function returns true if
762         it operates on an array.  Change second argument to gfc_expr.
763         Find last reference in chain.
764         If the function operates on an allocatable array, emit call to
765         allocate_array() or allocate64_array().
766         * trans-stmt.c (gfc_trans_allocate):  Code to follow to last
767         reference has been moved to gfc_array_allocate.
768         * trans.h:  Add declaration for gfor_fndecl_allocate_array and
769         gfor_fndecl_allocate64_array.
770         (gfc_build_builtin_function_decls):  Add gfor_fndecl_allocate_array
771         and gfor_fndecl_allocate64_array.
772
773 2006-03-01  Roger Sayle  <roger@eyesopen.com>
774
775         * trans-stmt.c (generate_loop_for_temp_to_lhs): Add an additional
776         INVERT argument to invert the sense of the WHEREMASK argument.
777         Remove unneeded code to AND together a list of masks.
778         (generate_loop_for_rhs_to_temp): Likewise.
779         (gfc_trans_assign_need_temp): Likewise.
780         (gfc_trans_forall_1): Likewise.
781         (gfc_evaluate_where_mask): Likewise, add a new INVERT argument
782         to specify the sense of the MASK argument.
783         (gfc_trans_where_assign): Likewise.
784         (gfc_trans_where_2): Likewise.  Restructure code that decides
785         whether we need to allocate zero, one or two temporary masks.
786         If this is a top-level WHERE (i.e. the incoming MASK is NULL),
787         we only need to allocate at most one temporary mask, and can
788         invert it's sense to provide the complementary pending execution
789         mask.  Only calculate the size of the required temporary arrays
790         if we need any.
791         (gfc_trans_where): Update call to gfc_trans_where_2.
792
793 2006-03-01  Paul Thomas  <pault@gcc.gnu.org>
794
795         * iresolve.c (gfc_resolve_dot_product):  Remove any difference in
796         treatment of logical types.
797         * trans-intrinsic.c (gfc_conv_intrinsic_dot_product):  New function. 
798
799         PR fortran/26393
800         * trans-decl.c (gfc_get_symbol_decl): Extend condition that symbols
801         must be referenced to include unreferenced symbols in an interface
802         body. 
803
804         PR fortran/20938
805         * trans-array.c (gfc_conv_resolve_dependencies): Add call to
806         gfc_are_equivalenced_arrays.
807         * symbol.c (gfc_free_equiv_infos, gfc_free_equiv_lists): New
808         functions. (gfc_free_namespace): Call them.
809         * trans-common.c (copy_equiv_list_to_ns): New function.
810         (add_equivalences): Call it.
811         * gfortran.h: Add equiv_lists to gfc_namespace and define
812         gfc_equiv_list and gfc_equiv_info.
813         * dependency.c (gfc_are_equivalenced_arrays): New function.
814         (gfc_check_dependency): Call it.
815         * dependency.h: Prototype for gfc_are_equivalenced_arrays.
816
817 2006-03-01  Roger Sayle  <roger@eyesopen.com>
818
819         * dependency.c (gfc_is_same_range): Compare the stride, lower and
820         upper bounds when testing array reference ranges for equality.
821         (gfc_check_dependency): Fix indentation whitespace.
822         (gfc_check_element_vs_element): Likewise.
823         (gfc_dep_resolver): Likewise.
824
825 2006-02-28  Thomas Koenig  <Thomas.Koenig@online.de>
826
827         * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc):
828         If the mask expression exists and has rank 0, enclose the
829         generated loop in an "if (mask)".  Put the default
830         initialization into the else branch.
831
832 2006-02-25  Thomas Koenig  <Thomas.Koenig@online.de>
833
834         PR fortran/23092
835         * trans-intrinsic.c (gfc_conv_intrinsic_arith):  If the
836         mask expression exists and has rank 0, enclose the generated
837         loop in an "if (mask)".
838         * (gfc_conv_intrinsic_minmaxloc):  Likewise.
839
840 2006-02-24  Paul Thomas  <pault@gcc.gnu.org>
841
842         PR fortran/26409
843         * resolve.c (resolve_contained_functions, resolve_types,
844         gfc_resolve): Revert patch of 2006-02-19.
845
846 2006-02-24  Paul Thomas  <pault@gcc.gnu.org>
847
848         PR fortran/24519
849         * dependency.c (gfc_is_same_range): Correct typo.
850         (gfc_check_section_vs_section): Call gfc_is_same_range.
851
852         PR fortran/25395
853         * trans-common.c (add_equivalences): Add a new flag that is set when
854         an equivalence is seen that prevents more from being reset until the
855         start of a new traversal of the list, thus ensuring completion of
856         all the equivalences.
857
858 2006-02-23  Erik Edelmann  <eedelman@gcc.gnu.org>
859
860         * module.c (read_module): Remove redundant code lines.
861
862 2006-02-20 Rafael \81Ávila de Esp\81índola <rafael.espindola@gmail.com>
863         * Make-lang.in (FORTRAN): Remove
864         (.PHONY): Remove F95 and f95. Add fortran
865
866 2006-02-20  Roger Sayle  <roger@eyesopen.com>
867
868         * trans-stmt.c (gfc_trans_where_2): Avoid updating unused current
869         execution mask for empty WHERE/ELSEWHERE clauses.  Don't allocate
870         temporary mask arrays if they won't be used.
871
872 2006-02-20  Roger Sayle  <roger@eyesopen.com>
873
874         * trans-stmt.c (gfc_trans_where_assign): Remove code to handle
875         traversing a linked list of MASKs.  The MASK is now always a
876         single element requiring no ANDing during the assignment.
877
878 2006-02-19  Thomas Koenig  <Thomas.Koenig@online.de>
879
880         * gfortran.texi:  Document environment variables which
881         influence runtime behavior.
882
883 2006-02-19  H.J. Lu  <hongjiu.lu@intel.com>
884
885         * resolve.c (resolve_contained_functions): Call resolve_entries
886         first.
887         (resolve_types): Remove calls to resolve_entries and
888         resolve_contained_functions.
889         (gfc_resolve): Call resolve_contained_functions.
890
891 2006-02-19  Erik Edelmann  <eedelman@gcc.gnu.org>
892
893         PR fortran/26201
894         * intrinsic.c (gfc_convert_type_warn): Call
895         gfc_intrinsic_symbol() on the newly created symbol.
896
897 2006-02-19  Paul Thomas  <pault@gcc.gnu.org>
898
899         PR fortran/25054
900         * resolve.c (is_non_constant_shape_array): New function.
901         (resolve_fl_variable): Remove code for the new function and call it.
902         (resolve_fl_namelist): New function.  Add test for namelist array
903         with non-constant shape, using is_non_constant_shape_array.
904         (resolve_symbol): Remove code for resolve_fl_namelist and call it.
905
906         PR fortran/25089
907         * match.c (match_namelist): Increment the refs field of an accepted
908         namelist object symbol.
909         * resolve.c (resolve_fl_namelist): Test namelist objects for a conflict
910         with contained or module procedures.
911
912 2006-02-18  Roger Sayle  <roger@eyesopen.com>
913
914         * trans-stmt.c (struct temporary_list): Delete.
915         (gfc_trans_where_2): Major reorganization.  Remove no longer needed
916         TEMP argument.  Allocate and deallocate the control mask and
917         pending control mask locally.
918         (gfc_trans_forall_1): Delete TEMP local variable, and update
919         call to gfc_trans_where_2.  No need to deallocate arrays after.
920         (gfc_evaluate_where_mask): Major reorganization.  Change return
921         type to void.  Pass in parent execution mask, MASK, and two
922         already allocated mask arrays CMASK and PMASK.  On return
923         CMASK := MASK & COND, PMASK := MASK & !COND.  MASK, CMASK and
924         CMASK may all be NULL, or refer to the same temporary arrays.
925         (gfc_trans_where): Update call to gfc_trans_where_2.  We no
926         longer need a TEMP variable or to deallocate temporary arrays
927         allocated by gfc_trans_where_2.
928
929 2006-02-18   Danny Smith  <dannysmith@users.sourceforeg.net>
930
931         * gfortran.h (gfc_add_attribute): Change uint to unsigned int.
932         * symbol.c (gfc_add_attribute): Likewise for definition.
933         * resolve.c (resolve_global_procedure): Likewise for variable 'type'.
934
935 2006-02-17  Richard Sandiford  <richard@codesourcery.com>
936
937         * trans-common.c: Include rtl.h earlier.
938         * trans-decl.c: Likewise.
939
940 2006-02-16  Jakub Jelinek  <jakub@redhat.com>
941
942         PR fortran/26224
943         * parse.c (parse_omp_do, parse_omp_structured_block): Call
944         gfc_commit_symbols and gfc_warning_check.
945
946         * openmp.c (resolve_omp_clauses): Add a dummy case label to workaround
947         PR middle-end/26316.
948
949 2006-02-16  Paul Thomas  <pault@gcc.gnu.org>
950
951         PR fortran/24557
952         * trans-expr.c (gfc_add_interface_mapping): Use the actual argument
953         for character(*) arrays, rather than casting to the type and kind
954         parameters of the formal argument.
955
956 2006-02-15  Toon Moene  <toon@moene.indiv.nluug.nl>
957
958         PR fortran/26054
959         * options.c: Do not warn for Fortran 2003 features by default.
960
961 2006-02-15  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
962
963         * check.c: Update copyright years.
964         
965         * check.c (gfc_check_minloc_maxloc, check_reduction): Don't call
966         dim_range_check on not-present optional dim argument.
967
968 2006-02-15  Jakub Jelinek  <jakub@redhat.com>
969
970         PR libgomp/25938
971         PR libgomp/25984
972         * Make-lang.in (install-finclude-dir): New goal.
973         (fortran.install-common): Depend on install-finclude-dir.
974         * lang-specs.h: If not -nostdinc, add -I finclude.
975
976 2006-02-14  Thomas Koenig  <Thomas.Koenig@online.de>
977
978         PR fortran/25045
979         * check.c (dim_check):  Perform all checks if dim is optional.
980         (gfc_check_minloc_maxloc):  Use dim_check and dim_rank_check
981         to check dim argument.
982         (check_reduction):  Likewise.
983
984 2006-02-14  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
985
986         PR fortran/26277
987         * io.c (match_ltag): Mark label as referenced.
988
989 2006-02-14  Jakub Jelinek  <jakub@redhat.com>
990             Richard Henderson  <rth@redhat.com>
991             Diego Novillo  <dnovillo@redhat.com>
992
993         * invoke.texi: Document -fopenmp.
994         * gfortran.texi (Extensions): Document OpenMP.
995
996         Backport from gomp-20050608-branch
997         * trans-openmp.c: Call build_omp_clause instead of
998         make_node when creating OMP_CLAUSE_* trees.
999         (gfc_trans_omp_reduction_list): Remove argument 'code'.
1000         Adjust all callers.
1001
1002         * trans.h (build4_v): Define.
1003         * trans-openmp.c: Call build4_v to create OMP_PARALLEL nodes.
1004         Call build3_v to create OMP_SECTIONS nodes.
1005
1006         PR fortran/25162
1007         * openmp.c (gfc_match_omp_variable_list): Call gfc_set_sym_referenced
1008         on all symbols added to the variable list.
1009
1010         * openmp.c (gfc_match_omp_clauses): Fix check for non-INTRINSIC
1011         procedure symbol in REDUCTION.
1012
1013         * trans-openmp.c (gfc_trans_omp_array_reduction): Use gfc_add
1014         for MINUS_EXPR OMP_CLAUSE_REDUCTION_CODE.
1015
1016         * trans-openmp.c (gfc_trans_omp_do): Add PBLOCK argument.  If PBLOCK
1017         is non-NULL, evaluate INIT/COND/INCR and chunk size expressions in
1018         that statement block.
1019         (gfc_trans_omp_parallel_do): Pass non-NULL PBLOCK to gfc_trans_omp_do
1020         for non-ordered non-static combined loops.
1021         (gfc_trans_omp_directive): Pass NULL PBLOCK to gfc_trans_omp_do.
1022
1023         * openmp.c: Include target.h and toplev.h.
1024         (gfc_match_omp_threadprivate): Emit diagnostic if target does
1025         not support TLS.
1026         * Make-lang.in (fortran/openmp.o): Add dependencies on
1027         target.h and toplev.h.
1028
1029         * trans-decl.c (gfc_get_fake_result_decl): Set GFC_DECL_RESULT.
1030         * trans-openmp.c (gfc_omp_privatize_by_reference): Make
1031         DECL_ARTIFICIAL vars predetermined shared except GFC_DECL_RESULT.
1032         (gfc_omp_disregard_value_expr): Handle GFC_DECL_RESULT.
1033         (gfc_trans_omp_variable): New function.
1034         (gfc_trans_omp_variable_list, gfc_trans_omp_reduction_list): Use it.
1035         * trans.h (GFC_DECL_RESULT): Define.
1036
1037         * trans-openmp.c (gfc_omp_firstprivatize_type_sizes): New function.
1038         * f95-lang.c (LANG_HOOKS_OMP_FIRSTPRIVATIZE_TYPE_SIZES): Define.
1039         * trans.h (gfc_omp_firstprivatize_type_sizes): New prototype.
1040
1041         * trans-openmp.c (gfc_omp_privatize_by_reference): Return
1042         true if a pointer has GFC_DECL_SAVED_DESCRIPTOR set.
1043         (gfc_trans_omp_array_reduction, gfc_trans_omp_reduction_list): New
1044         functions.
1045         (gfc_trans_omp_clauses): Add WHERE argument.  Call
1046         gfc_trans_omp_reduction_list rather than gfc_trans_omp_variable_list
1047         for reductions.
1048         (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
1049         gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
1050         gfc_trans_omp_sections, gfc_trans_omp_single): Adjust
1051         gfc_trans_omp_clauses callers.
1052
1053         * openmp.c (omp_current_do_code): New var.
1054         (gfc_resolve_omp_do_blocks): New function.
1055         (gfc_resolve_omp_parallel_blocks): Call it.
1056         (gfc_resolve_do_iterator): Add CODE argument.  Don't propagate
1057         predetermination if argument is !$omp do or !$omp parallel do
1058         iteration variable.
1059         * resolve.c (resolve_code): Call gfc_resolve_omp_do_blocks
1060         for EXEC_OMP_DO.  Adjust gfc_resolve_do_iterator caller.
1061         * fortran.h (gfc_resolve_omp_do_blocks): New prototype.
1062         (gfc_resolve_do_iterator): Add CODE argument.
1063
1064         * trans.h (gfc_omp_predetermined_sharing,
1065         gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
1066         prototypes.
1067         (GFC_DECL_COMMON_OR_EQUIV, GFC_DECL_CRAY_POINTEE): Define.
1068         * trans-openmp.c (gfc_omp_predetermined_sharing,
1069         gfc_omp_disregard_value_expr, gfc_omp_private_debug_clause): New
1070         functions.
1071         * trans-common.c (build_equiv_decl, build_common_decl,
1072         create_common): Set GFC_DECL_COMMON_OR_EQUIV flag on the decls.
1073         * trans-decl.c (gfc_finish_cray_pointee): Set GFC_DECL_CRAY_POINTEE
1074         on the decl.
1075         * f95-lang.c (LANG_HOOKS_OMP_PREDETERMINED_SHARING,
1076         LANG_HOOKS_OMP_DISREGARD_VALUE_EXPR,
1077         LANG_HOOKS_OMP_PRIVATE_DEBUG_CLAUSE): Define.
1078
1079         * openmp.c (resolve_omp_clauses): Remove extraneous comma.
1080
1081         * symbol.c (check_conflict): Add conflict between cray_pointee and
1082         threadprivate.
1083         * openmp.c (gfc_match_omp_threadprivate): Fail if
1084         gfc_add_threadprivate returned FAILURE.
1085         (resolve_omp_clauses): Diagnose Cray pointees in SHARED,
1086         {,FIRST,LAST}PRIVATE and REDUCTION clauses and Cray pointers in
1087         {FIRST,LAST}PRIVATE and REDUCTION clauses.
1088
1089         * resolve.c (omp_workshare_flag): New variable.
1090         (resolve_function): Diagnose use of non-ELEMENTAL user defined
1091         function in WORKSHARE construct.
1092         (resolve_code): Cleanup forall_save use.  Make sure omp_workshare_flag
1093         is set to correct value in different contexts.
1094
1095         * openmp.c (resolve_omp_clauses): Replace %s with '%s' when printing
1096         variable name.
1097         (resolve_omp_atomic): Likewise.
1098
1099         PR fortran/24493
1100         * scanner.c (skip_free_comments): Set at_bol at the beginning of the
1101         loop, not before it.
1102         (skip_fixed_comments): Handle ! comments in the middle of line here
1103         as well.
1104         (gfc_skip_comments): Use skip_fixed_comments for FIXED_FORM even if
1105         not at BOL.
1106         (gfc_next_char_literal): Fix expected canonicalized *$omp string.
1107
1108         * trans-openmp.c (gfc_trans_omp_do): Use make_node and explicit
1109         initialization to build OMP_FOR instead of build.
1110
1111         * trans-decl.c (gfc_gimplify_function): Invoke
1112         diagnose_omp_structured_block_errors.
1113
1114         * trans-openmp.c (gfc_trans_omp_master): Use OMP_MASTER.
1115         (gfc_trans_omp_ordered): Use OMP_ORDERED.
1116
1117         * gfortran.h (gfc_resolve_do_iterator, gfc_resolve_blocks,
1118         gfc_resolve_omp_parallel_blocks): New prototypes.
1119         * resolve.c (resolve_blocks): Renamed to...
1120         (gfc_resolve_blocks): ... this.  Remove static.
1121         (gfc_resolve_forall): Adjust caller.
1122         (resolve_code): Only call gfc_resolve_blocks if code->block != 0
1123         and not for EXEC_OMP_PARALLEL* directives.  Call
1124         gfc_resolve_omp_parallel_blocks for EXEC_OMP_PARALLEL* directives.
1125         Call gfc_resolve_do_iterator if resolved successfully EXEC_DO
1126         iterator.
1127         * openmp.c: Include pointer-set.h.
1128         (omp_current_ctx): New variable.
1129         (gfc_resolve_omp_parallel_blocks, gfc_resolve_do_iterator): New
1130         functions.
1131         * Make-lang.in (fortran/openmp.o): Depend on pointer-set.h.
1132
1133         * openmp.c (gfc_match_omp_clauses): For max/min/iand/ior/ieor,
1134         look up symbol if it exists, use its name instead and, if it is not
1135         INTRINSIC, issue diagnostics.
1136
1137         * parse.c (parse_omp_do): Handle implied end do properly.
1138         (parse_executable): If parse_omp_do returned ST_IMPLIED_ENDDO,
1139         return it instead of continuing.
1140
1141         * trans-openmp.c (gfc_trans_omp_critical): Update for changed
1142         operand numbering.
1143         (gfc_trans_omp_do, gfc_trans_omp_parallel, gfc_trans_omp_parallel_do,
1144         gfc_trans_omp_parallel_sections, gfc_trans_omp_parallel_workshare,
1145         gfc_trans_omp_sections, gfc_trans_omp_single): Likewise.
1146
1147         * trans.h (gfc_omp_privatize_by_reference): New prototype.
1148         * f95-lang.c (LANG_HOOKS_OMP_PRIVATIZE_BY_REFERENCE): Redefine
1149         to gfc_omp_privatize_by_reference.
1150         * trans-openmp.c (gfc_omp_privatize_by_reference): New function.
1151
1152         * trans-stmt.h (gfc_trans_omp_directive): Add comment.
1153
1154         * openmp.c (gfc_match_omp_variable_list): Add ALLOW_COMMON argument.
1155         Disallow COMMON matching if it is set.
1156         (gfc_match_omp_clauses, gfc_match_omp_flush): Adjust all callers.
1157         (resolve_omp_clauses): Show locus in error messages.  Check that
1158         variable types in reduction clauses are appropriate for reduction
1159         operators.
1160
1161         * resolve.c (resolve_symbol): Don't error if a threadprivate module
1162         variable isn't SAVEd.
1163
1164         * trans-openmp.c (gfc_trans_omp_do): Put count into BLOCK, not BODY.
1165         Fix typo in condition.  Fix DOVAR initialization.
1166
1167         * openmp.c (gfc_match_omp_clauses): Match min/iand/ior/ieor
1168         rather than .min. etc.
1169
1170         * trans-openmpc.c (omp_not_yet): Remove.
1171         (gfc_trans_omp_parallel_do): Keep listprivate clause on parallel.
1172         Force creation of BIND_EXPR around the workshare construct.
1173         (gfc_trans_omp_parallel_sections): Likewise.
1174         (gfc_trans_omp_parallel_workshare): Likewise.
1175
1176         * types.def (BT_I16, BT_FN_I16_VPTR_I16,
1177         BT_FN_BOOL_VPTR_I16_I16, BT_FN_I16_VPTR_I16_I16): Add.
1178
1179         * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_DEFAULT.
1180         (gfc_trans_omp_code): New function.
1181         (gfc_trans_omp_do): Use it, remove omp_not_yet uses.
1182         (gfc_trans_omp_parallel, gfc_trans_omp_single): Likewise.
1183         (gfc_trans_omp_sections): Likewise.  Only treat empty last section
1184         specially if lastprivate clause is present.
1185         * f95-lang.c (gfc_init_builtin_functions): Create BUILT_IN_TRAP
1186         builtin.
1187
1188         * trans-openmp.c (gfc_trans_omp_variable_list): Update for
1189         OMP_CLAUSE_DECL name change.
1190         (gfc_trans_omp_do): Likewise.
1191
1192         * trans-openmp.c (gfc_trans_omp_clauses): Create OMP_CLAUSE_REDUCTION
1193         clauses.
1194         (gfc_trans_omp_atomic): Build OMP_ATOMIC instead of expanding
1195         sync builtins directly.
1196         (gfc_trans_omp_single): Build OMP_SINGLE statement.
1197
1198         * trans-openmp.c (gfc_trans_add_clause): New.
1199         (gfc_trans_omp_variable_list): Take a tree code and build the clause
1200         node here.  Link it to the head of a list.
1201         (gfc_trans_omp_clauses): Update to match.
1202         (gfc_trans_omp_do): Use gfc_trans_add_clause.
1203
1204         * trans-openmp.c (gfc_trans_omp_clauses): Change second argument to
1205         gfc_omp_clauses *.  Use gfc_evaluate_now instead of creating
1206         temporaries by hand.
1207         (gfc_trans_omp_atomic, gfc_trans_omp_critical): Use buildN_v macros.
1208         (gfc_trans_omp_do): New function.
1209         (gfc_trans_omp_master): Dont' check for gfc_trans_code returning NULL.
1210         (gfc_trans_omp_parallel): Adjust gfc_trans_omp_clauses caller.
1211         Use buildN_v macros.
1212         (gfc_trans_omp_parallel_do, gfc_trans_omp_parallel_sections,
1213         gfc_trans_omp_parallel_workshare, gfc_trans_omp_sections,
1214         gfc_trans_omp_single, gfc_trans_omp_workshare): New functions.
1215         (gfc_trans_omp_directive): Use them.
1216         * parse.c (parse_omp_do): Allow new_st.op == EXEC_NOP.
1217         * openmp.c (resolve_omp_clauses): Check for list items present
1218         in multiple clauses.
1219         (resolve_omp_do): Check that iteration variable is not THREADPRIVATE
1220         and is not present in any clause variable lists other than PRIVATE
1221         or LASTPRIVATE.
1222
1223         * gfortran.h (symbol_attribute): Add threadprivate bit.
1224         (gfc_common_head): Add threadprivate member, change use_assoc
1225         and saved into char to save space.
1226         (gfc_add_threadprivate): New prototype.
1227         * symbol.c (check_conflict): Handle threadprivate.
1228         (gfc_add_threadprivate): New function.
1229         (gfc_copy_attr): Copy threadprivate.
1230         * trans-openmp.c (gfc_trans_omp_clauses): Avoid creating a temporary
1231         if IF or NUM_THREADS is constant.  Create OMP_CLAUSE_SCHEDULE and
1232         OMP_CLAUSE_ORDERED.
1233         * resolve.c (resolve_symbol): Complain if a THREADPRIVATE symbol
1234         outside a module and not in COMMON has is not SAVEd.
1235         (resolve_equivalence): Ensure THREADPRIVATE objects don't get
1236         EQUIVALENCEd.
1237         * trans-common.c: Include target.h and rtl.h.
1238         (build_common_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
1239         * trans-decl.c: Include rtl.h.
1240         (gfc_finish_var_decl): Set DECL_TLS_MODEL if THREADPRIVATE.
1241         * dump-parse-tree.c (gfc_show_attr): Handle THREADPRIVATE.
1242         * Make-lang.in (fortran/trans-decl.o): Depend on $(RTL_H).
1243         (fortran/trans-common.o): Depend on $(RTL_H) and $(TARGET_H).
1244         * openmp.c (gfc_match_omp_variable_list): Ensure COMMON block
1245         is from current namespace.
1246         (gfc_match_omp_threadprivate): Rewrite.
1247         (resolve_omp_clauses): Check some clause restrictions.
1248         * module.c (ab_attribute): Add AB_THREADPRIVATE.
1249         (attr_bits): Add THREADPRIVATE.
1250         (mio_symbol_attribute, mio_symbol_attribute): Handle threadprivate.
1251         (load_commons, write_common, write_blank_common): Adjust for type
1252         change of saved, store/load threadprivate bit from the integer
1253         as well.
1254
1255         * types.def (BT_FN_UINT_UINT): New.
1256         (BT_FN_VOID_UINT_UINT): Remove.
1257
1258         * trans-openmp.c (gfc_trans_omp_clauses, gfc_trans_omp_barrier,
1259         gfc_trans_omp_critical, gfc_trans_omp_flush, gfc_trans_omp_master,
1260         gfc_trans_omp_ordered, gfc_trans_omp_parallel): New functions.
1261         (gfc_trans_omp_directive): Use them.
1262
1263         * openmp.c (expr_references_sym): Add SE argument, don't look
1264         into SE tree.
1265         (is_conversion): New function.
1266         (resolve_omp_atomic): Adjust expr_references_sym callers.  Handle
1267         promoted expressions.
1268         * trans-openmp.c (gfc_trans_omp_atomic): New function.
1269         (gfc_trans_omp_directive): Call it.
1270
1271         * f95-lang.c (builtin_type_for_size): New function.
1272         (gfc_init_builtin_functions): Initialize synchronization and
1273         OpenMP builtins.
1274         * types.def: New file.
1275         * Make-lang.in (f95-lang.o): Depend on $(BUILTINS_DEF) and
1276         fortran/types.def.
1277
1278         * trans-openmp.c: Rename GOMP_* tree codes into OMP_*.
1279
1280         * dump-parse-tree.c (show_symtree): Don't crash if ns->proc_name
1281         is NULL.
1282
1283         * dump-parse-tree.c (gfc_show_namelist, gfc_show_omp_node): New
1284         functions.
1285         (gfc_show_code_node): Call gfc_show_omp_node for EXEC_OMP_* nodes.
1286
1287         * parse.c (parse_omp_do): Call pop_state before next_statement.
1288         * openmp.c (expr_references_sym, resolve_omp_atomic, resolve_omp_do):
1289         New functions.
1290         (gfc_resolve_omp_directive): Call them.
1291         * match.c (match_exit_cycle): Issue error if EXIT or CYCLE statement
1292         leaves an OpenMP structured block or if EXIT terminates !$omp do
1293         loop.
1294
1295         * Make-lang.in (F95_PARSER_OBJS): Add fortran/openmp.o.
1296         (F95_OBJS): Add fortran/trans-openmp.o.
1297         (fortran/trans-openmp.o): Depend on $(GFORTRAN_TRANS_DEPS).
1298         * lang.opt: Add -fopenmp option.
1299         * options.c (gfc_init_options): Initialize it.
1300         (gfc_handle_option): Handle it.
1301         * gfortran.h (ST_OMP_ATOMIC, ST_OMP_BARRIER, ST_OMP_CRITICAL,
1302         ST_OMP_END_CRITICAL, ST_OMP_END_DO, ST_OMP_END_MASTER,
1303         ST_OMP_END_ORDERED, ST_OMP_END_PARALLEL, ST_OMP_END_PARALLEL_DO,
1304         ST_OMP_END_PARALLEL_SECTIONS, ST_OMP_END_PARALLEL_WORKSHARE,
1305         ST_OMP_END_SECTIONS, ST_OMP_END_SINGLE, ST_OMP_END_WORKSHARE,
1306         ST_OMP_DO, ST_OMP_FLUSH, ST_OMP_MASTER, ST_OMP_ORDERED,
1307         ST_OMP_PARALLEL, ST_OMP_PARALLEL_DO, ST_OMP_PARALLEL_SECTIONS,
1308         ST_OMP_PARALLEL_WORKSHARE, ST_OMP_SECTIONS, ST_OMP_SECTION,
1309         ST_OMP_SINGLE, ST_OMP_THREADPRIVATE, ST_OMP_WORKSHARE): New
1310         statement codes.
1311         (OMP_LIST_PRIVATE, OMP_LIST_FIRSTPRIVATE, OMP_LIST_LASTPRIVATE,
1312         OMP_LIST_COPYPRIVATE, OMP_LIST_SHARED, OMP_LIST_COPYIN,
1313         OMP_LIST_PLUS, OMP_LIST_REDUCTION_FIRST, OMP_LIST_MULT,
1314         OMP_LIST_SUB, OMP_LIST_AND, OMP_LIST_OR, OMP_LIST_EQV,
1315         OMP_LIST_NEQV, OMP_LIST_MAX, OMP_LIST_MIN, OMP_LIST_IAND,
1316         OMP_LIST_IOR, OMP_LIST_IEOR, OMP_LIST_REDUCTION_LAST, OMP_LIST_NUM):
1317         New OpenMP variable list types.
1318         (gfc_omp_clauses): New typedef.
1319         (gfc_get_omp_clauses): Define.
1320         (EXEC_OMP_CRITICAL, EXEC_OMP_DO, EXEC_OMP_FLUSH, EXEC_OMP_MASTER,
1321         EXEC_OMP_ORDERED, EXEC_OMP_PARALLEL, EXEC_OMP_PARALLEL_DO,
1322         EXEC_OMP_PARALLEL_SECTIONS, EXEC_OMP_PARALLEL_WORKSHARE,
1323         EXEC_OMP_SECTIONS, EXEC_OMP_SINGLE, EXEC_OMP_WORKSHARE,
1324         EXEC_OMP_ATOMIC, EXEC_OMP_BARRIER, EXEC_OMP_END_NOWAIT,
1325         EXEC_OMP_END_SINGLE): New OpenMP gfc_exec_op codes.
1326         (struct gfc_code): Add omp_clauses, omp_name, omp_namelist
1327         and omp_bool fields to ext union.
1328         (flag_openmp): Declare.
1329         (gfc_free_omp_clauses, gfc_resolve_omp_directive): New prototypes.
1330         * scanner.c (openmp_flag, openmp_locus): New variables.
1331         (skip_free_comments, skip_fixed_comments, gfc_next_char_literal):
1332         Handle OpenMP directive lines and conditional compilation magic
1333         comments.
1334         * parse.h (COMP_OMP_STRUCTURED_BLOCK): New compile state.
1335         * parse.c (decode_omp_directive, parse_omp_do, parse_omp_atomic,
1336         parse_omp_structured_block): New functions.
1337         (next_free, next_fixed): Parse OpenMP directives.
1338         (case_executable, case_exec_markers, case_decl): Add ST_OMP_*
1339         codes.
1340         (gfc_ascii_statement): Handle ST_OMP_* codes.
1341         (parse_executable): Rearrange the loop slightly, so that
1342         parse_omp_do can return next_statement.
1343         * match.h (gfc_match_omp_eos, gfc_match_omp_atomic,
1344         gfc_match_omp_barrier, gfc_match_omp_critical, gfc_match_omp_do,
1345         gfc_match_omp_flush, gfc_match_omp_master, gfc_match_omp_ordered,
1346         gfc_match_omp_parallel, gfc_match_omp_parallel_do,
1347         gfc_match_omp_parallel_sections, gfc_match_omp_parallel_workshare,
1348         gfc_match_omp_sections, gfc_match_omp_single,
1349         gfc_match_omp_threadprivate, gfc_match_omp_workshare,
1350         gfc_match_omp_end_nowait, gfc_match_omp_end_single): New prototypes.
1351         * resolve.c (resolve_blocks): Ignore EXEC_OMP_* block directives.
1352         (resolve_code): Call gfc_resolve_omp_directive on EXEC_OMP_*
1353         directives.
1354         * trans.c (gfc_trans_code): Call gfc_trans_omp_directive for
1355         EXEC_OMP_* directives.
1356         * st.c (gfc_free_statement): Handle EXEC_OMP_* statement freeing.
1357         * trans-stmt.h (gfc_trans_omp_directive): New prototype.
1358         * openmp.c: New file.
1359         * trans-openmp.c: New file.
1360
1361 2006-02-13  Andrew Pinski  <pinskia@physics.uc.edu>
1362             Jakub Jelinek  <jakub@redhat.com>
1363
1364         PR fortran/26246
1365         * trans-decl.c (gfc_get_symbol_decl, gfc_get_fake_result_decl): Use
1366         gfc_add_decl_to_function rather than gfc_finish_var_decl on length.
1367
1368 2006-02-13  Paul Thomas  <pault@gcc.gnu.org>
1369
1370         PR fortran/26074
1371         PR fortran/25103
1372         * resolve.c (resolve_symbol): Extend the requirement that module
1373         arrays have constant bounds to those in the main program.  At the
1374         same time simplify the array bounds, to avoiding trapping parameter
1375         array references, and exclude automatic character length from main
1376         and modules. Rearrange resolve_symbol and resolve_derived to put as
1377         each flavor together, as much as is possible and move all specific
1378         code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new
1379         functions.
1380         (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure):
1381         New functions to do work of resolve_symbol.
1382         (resolve_index_expr): New function that is called from resolved_symbol
1383         and is extracted from resolve_charlen.
1384         (resolve_charlen): Call this new function.
1385         (resolve_fl_derived): Renamed resolve_derived to be consistent with
1386         the naming of the new functions for the other flavours.  Change the
1387         charlen checking so that the style is consistent with other similar
1388         checks. Add the generation of the gfc_dt_list, removed from resolve_
1389         symbol.
1390
1391         PR fortran/20861
1392         * resolve.c (resolve_actual_arglist): Prevent internal procedures
1393         from being dummy arguments.
1394
1395         PR fortran/20871
1396         * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic
1397         procedures from being dummy arguments.
1398
1399         PR fortran/25083
1400         * resolve.c (check_data_variable): Add test that data variable is in
1401         COMMON.
1402
1403         PR fortran/25088
1404         * resolve.c (resolve_call): Add test that the subroutine does not
1405         have a type.
1406
1407 2006-02-12  Erik Edelmann  <eedelman@gcc.gnu.org>
1408
1409         PR fortran/25806
1410         * trans-array.c (gfc_trans_allocate_array_storage): New argument
1411         dealloc; free the temporary only if dealloc is true.
1412         (gfc_trans_allocate_temp_array): New argument bool dealloc, to be
1413         passed onwards to gfc_trans_allocate_array_storage.
1414         (gfc_trans_array_constructor, gfc_conv_loop_setup): Update call to
1415         gfc_trans_allocate_temp_array.
1416         * trans-array.h (gfc_trans_allocate_temp_array): Update function
1417         prototype.
1418         * trans-expr.c (gfc_conv_function_call): Set new argument 'dealloc'
1419         to gfc_trans_allocate_temp_array to false in case of functions
1420         returning pointers.
1421         (gfc_trans_arrayfunc_assign): Return NULL for functions returning
1422         pointers.
1423
1424 2006-02-10  Steven G. Kargl  <kargls@comcast.net>
1425
1426         PR fortran/20858
1427         *decl.c (variable_decl): Improve error message.  Remove initialization
1428         typespec.  Wrap long line.
1429         *expr.c (gfc_check_pointer_assign): Permit checking of type, kind type,
1430         and rank.
1431         *simplify.c (gfc_simplify_null): Ensure type, kind type, and rank
1432         are set.
1433
1434
1435 2006-02-10  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1436
1437         PR fortran/14771
1438         * arith.c (eval_intrinsic): Accept INTRINSIC_PARENTHESES.
1439         * expr.c (check_intrinsic_op): Likewise.
1440         * module.c (mio_expr): Likewise.
1441
1442 2006-02-09  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1443
1444         * dump-parse-tree.c: Update copyright years.
1445         * matchexp.c: Likewise.
1446         * module.c: Likewise.
1447
1448         PR fortran/14771
1449         * gfortran.h (gfc_intrinsic_op): Add INTRINSIC_PARENTHESES.
1450         * dump-parse-tree (gfc_show_expr): Handle INTRINSIC_PARENTHESES.
1451         * expr.c (simplify_intrinsic_op): Treat INTRINSIC_PARENTHESES as
1452         if it were INTRINSIC_UPLUS.
1453         * resolve.c (resolve_operator): Handle INTRINSIC_PARENTHESES.
1454         * match.c (intrinsic_operators): Add INTRINSIC_PARENTHESES.
1455         * matchexp.c (match_primary): Record parentheses surrounding
1456         numeric expressions.
1457         * module.c (intrinsics): Add INTRINSIC_PARENTHESES for module
1458         dumping.
1459         * trans-expr.c (gfc_conv_expr_op): Handle INTRINSIC_PARENTHESES.
1460
1461 2006-02-09  Paul Thomas  <pault@gcc.gnu.org>
1462
1463         PR fortran/26038
1464         * trans-stmt.c (gfc_trans_allocate): Provide assumed character length
1465         scalar with missing backend_decl for the hidden dummy charlen.
1466
1467         PR fortran/25059
1468         * interface.c (gfc_extend_assign): Remove detection of non-PURE
1469         subroutine in assignment interface, with gfc_error, and put it in
1470         * resolve.c (resolve_code).
1471
1472         PR fortran/25070
1473         * interface.c (gfc_procedure_use): Flag rank checking for non-
1474         elemental, contained or interface procedures in call to
1475         (compare_actual_formal), where ranks are checked for assumed
1476         shape arrays..
1477
1478 2006-02-08  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
1479
1480         PR libfortran/25425
1481         * trans-decl.c (gfc_generate_function_code): Add new argument,
1482         pedantic, to set_std call.
1483
1484 2006-02-06  Thomas Koenig  <Thomas.Koenig@online.de>
1485
1486         PR libfortran/23815
1487         * gfortran.texi: Document the GFORTRAN_CONVERT_UNIT environment
1488         variable.
1489         * invoke.texi:  Mention the "Runtime" chapter.
1490         Document the -fconvert= option.
1491         * gfortran.h:  Add options_convert.
1492         * lang.opt:  Add fconvert=little-endian, fconvert=big-endian,
1493         fconvert=native and fconvert=swap.
1494         * trans-decl.c (top level):  Add gfor_fndecl_set_convert.
1495         (gfc_build_builtin_function_decls):  Set gfor_fndecl_set_convert.
1496         (gfc_generate_function_code):  If -fconvert was specified,
1497         and this is the main program, add a call to set_convert().
1498         * options.c:  Handle the -fconvert options.
1499
1500 2006-02-06  Roger Sayle  <roger@eyesopen.com>
1501
1502         * trans-stmt.c (gfc_evaluate_where_mask): Allow the NMASK argument
1503         to be NULL to indicate that the not mask isn't required.
1504         (gfc_trans_where_2): Remove PMASK argument.  Avoid calculating the
1505         pending mask for the last clause of a WHERE chain.  Update recursive
1506         call.
1507         (gfc_trans_forall_1): Update call to gfc_trans_where_2.
1508         (gfc_trans_where): Likewise.
1509
1510 2006-02-06  Jakub Jelinek  <jakub@redhat.com>
1511
1512         Backport from gomp-20050608-branch
1513         * trans-decl.c (create_function_arglist): Handle dummy functions.
1514
1515         * trans-decl.c (gfc_get_symbol_decl): Revert explicit setting of
1516         TYPE_SIZE_UNIT.
1517         (gfc_trans_vla_type_sizes): Also "gimplify"
1518         GFC_TYPE_ARRAY_DATAPTR_TYPE for GFC_DESCRIPTOR_TYPE_P types.
1519         * trans-array.c (gfc_trans_deferred_array): Call
1520         gfc_trans_vla_type_sizes.
1521
1522         * trans-decl.c (saved_function_decls, saved_parent_function_decls):
1523         Remove unnecessary initialization.
1524         (create_function_arglist): Make sure __result has complete type.
1525         (gfc_get_fake_result_decl): Change current_fake_result_decl into
1526         a tree chain.  For entry master, create a separate variable
1527         for each result name.  For BT_CHARACTER results, call
1528         gfc_finish_var_decl on length even if it has been already created,
1529         but not pushdecl'ed.
1530         (gfc_trans_vla_type_sizes): For function/entry result, adjust
1531         result value type, not the FUNCTION_TYPE.
1532         (gfc_generate_function_code): Adjust for current_fake_result_decl
1533         changes.
1534         (gfc_trans_deferred_vars): Likewise.  Call gfc_trans_vla_type_sizes
1535         even on result if it is assumed-length character.
1536
1537         * trans-decl.c (gfc_trans_dummy_character): Add SYM argument.
1538         Call gfc_trans_vla_type_sizes.
1539         (gfc_trans_auto_character_variable): Call gfc_trans_vla_type_sizes.
1540         (gfc_trans_vla_one_sizepos, gfc_trans_vla_type_sizes_1,
1541         gfc_trans_vla_type_sizes): New functions.
1542         (gfc_trans_deferred_vars): Adjust gfc_trans_dummy_character
1543         callers.  Call gfc_trans_vla_type_sizes on assumed-length
1544         character parameters.
1545         * trans-array.c (gfc_trans_array_bounds,
1546         gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias): Call
1547         gfc_trans_vla_type_sizes.
1548         * trans.h (gfc_trans_vla_type_sizes): New prototype.
1549
1550         * trans-decl.c (gfc_build_qualified_array): For non-assumed-size
1551         arrays without constant size, create also an index var for
1552         GFC_TYPE_ARRAY_SIZE (type).  If the type is incomplete, complete
1553         it as 0..size-1.
1554         (gfc_create_string_length): Don't call gfc_defer_symbol_init
1555         if just creating DECL_ARGUMENTS.
1556         (gfc_get_symbol_decl): Call gfc_finish_var_decl and
1557         gfc_defer_symbol_init even if ts.cl->backend_decl is already
1558         set to a VAR_DECL that doesn't have DECL_CONTEXT yet.
1559         (create_function_arglist): Rework, so that hidden length
1560         arguments for CHARACTER parameters are created together with
1561         the parameters.  Resolve ts.cl->backend_decl for CHARACTER
1562         parameters.  If the argument is a non-constant length array
1563         or CHARACTER, ensure PARM_DECL has different type than
1564         its DECL_ARG_TYPE.
1565         (generate_local_decl): Call gfc_get_symbol_decl even
1566         for non-referenced non-constant length CHARACTER parameters
1567         after optionally issuing warnings.
1568         * trans-array.c (gfc_trans_array_bounds): Set last stride
1569         to GFC_TYPE_ARRAY_SIZE (type) to initialize it as well.
1570         (gfc_trans_dummy_array_bias): Initialize GFC_TYPE_ARRAY_SIZE (type)
1571         variable as well.
1572
1573         * trans-expr.c (gfc_conv_expr_val): Fix comment typo.
1574
1575         * trans-stmt.c (gfc_trans_simple_do): Fix comment.
1576
1577 2006-02-04  Roger Sayle  <roger@eyesopen.com>
1578
1579         * dependency.c (gfc_check_dependency): Remove unused vars and nvars
1580         arguments.  Replace with an "identical" argument.  A full array
1581         reference to the same symbol is a dependency if identical is true.
1582         * dependency.h (gfc_check_dependency): Update prototype.
1583         * trans-array.h (gfc_check_dependency): Delete duplicate prototype.
1584         * trans-stmt.c: #include dependency.h for gfc_check_dependency.
1585         (gfc_trans_forall_1): Update calls to gfc_check_dependency.
1586         (gfc_trans_where_2): Likewise.  Remove unneeded variables.
1587         (gfc_trans_where_3): New function for simple non-dependent WHEREs.
1588         (gfc_trans_where): Call gfc_trans_where_3 to translate simple
1589         F90-style WHERE statements without internal dependencies.
1590         * Make-lang.in (trans-stmt.o): Depend upon dependency.h.
1591
1592 2006-02-05  H.J. Lu  <hongjiu.lu@intel.com>
1593
1594         PR fortran/26041
1595         PR fortran/26064
1596         * resolve.c (resolve_types): New function.
1597         (resolve_codes): Likewise.
1598         (gfc_resolve): Use them.
1599
1600 2006-02-05  Roger Sayle  <roger@eyesopen.com>
1601
1602         * trans-stmt.c (gfc_evaluate_where_mask): Use LOGICAL*1 for WHERE
1603         masks instead of LOGICAL*4.
1604
1605 2006-02-05  Jakub Jelinek  <jakub@redhat.com>
1606
1607         * resolve.c (resolve_symbol): Initialize constructor_expr to NULL.
1608
1609 2006-02-04  Thomas Koenig  <Thomas.Koenig@online.de>
1610
1611         PR fortran/25075
1612         check.c (identical_dimen_shape):  New function.
1613         (check_dot_product):  Use identical_dimen_shape() to check sizes
1614         for dot_product.
1615         (gfc_check_matmul):  Likewise.
1616         (gfc_check_merge):  Check conformance between tsource and fsource
1617         and between tsource and mask.
1618         (gfc_check_pack):  Check conformance between array and mask.
1619
1620 2006-02-03  Steven G. Kargl  <kargls@comcast>
1621             Paul Thomas  <pault@gcc.gnu.org>
1622
1623         PR fortran/20845
1624         * resolve.c (resolve_symbol): Default initialization of derived type
1625         component reguires the SAVE attribute.
1626
1627 2006-02-02  Steven G. Kargl  <kargls@comcast>
1628
1629         PR fortran/24958
1630         match.c (gfc_match_nullify):  Free the list from head not tail.
1631
1632         PR fortran/25072
1633         * match.c (match_forall_header): Fix internal error caused by bogus
1634         gfc_epxr pointers.
1635
1636
1637 2006-01-31  Thomas Koenig  <Thomas.Koenig@online.de>
1638
1639         PR fortran/26039
1640         expr.c (gfc_check_conformance):  Reorder error message
1641         to avoid plural.
1642         check.c(gfc_check_minloc_maxloc):  Call gfc_check_conformance
1643         for checking arguments array and mask.
1644         (check_reduction):  Likewise.
1645
1646 2006-01-30  Erik Edelmann  <eedelman@gcc.gnu.org>
1647
1648         PR fortran/24266
1649         * trans-io.c (set_internal_unit): Check the rank of the
1650         expression node itself instead of its symbol.
1651
1652 2006-01-29  Paul Thomas  <pault@gcc.gnu.org>
1653
1654         PR fortran/18578
1655         PR fortran/18579
1656         PR fortran/20857
1657         PR fortran/20885
1658         * interface.c (compare_actual_formal): Error for INTENT(OUT or INOUT)
1659         if actual argument is not a variable.
1660
1661 2006-01-28  Paul Thomas  <pault@gcc.gnu.org>
1662
1663         PR fortran/17911
1664         * expr.c (gfc_check_assign, gfc_check_pointer_assign): Emit error if
1665         the lvalue is a use associated procedure.
1666
1667         PR fortran/20895
1668         PR fortran/25030
1669         * expr.c (gfc_check_pointer_assign): Emit error if lvalue and rvalue
1670         character lengths are not the same.  Use gfc_dep_compare_expr for the
1671         comparison.
1672         * gfortran.h: Add prototype for gfc_dep_compare_expr.
1673         * dependency.h: Remove prototype for gfc_dep_compare_expr.
1674
1675 2006-01-27  Paul Thomas  <pault@gcc.gnu.org>
1676
1677         PR fortran/25964
1678         * resolve.c (resolve_function): Add GFC_ISYM_LOC to the list of
1679         generic_ids exempted from assumed size checking.
1680
1681 2006-01-27  Jakub Jelinek  <jakub@redhat.com>
1682
1683         PR fortran/25324
1684         * Make-lang.in (fortran/scanner.o): Depend on toplev.h.
1685         * lang.opt (fpreprocessed): New option.
1686         * scanner.c: Include toplev.h.
1687         (gfc_src_file, gfc_src_preprocessor_lines): New variables.
1688         (preprocessor_line): Unescape filename if there were any
1689         backslashes.
1690         (load_file): If initial and gfc_src_file is not NULL,
1691         use it rather than opening the file.  If gfc_src_preprocessor_lines
1692         has non-NULL elements, pass it to preprocessor_line.
1693         (unescape_filename, gfc_read_orig_filename): New functions.
1694         * gfortran.h (gfc_option_t): Add flag_preprocessed.
1695         (gfc_read_orig_filename): New prototype.
1696         * options.c (gfc_init_options): Clear flag_preprocessed.
1697         (gfc_post_options): If flag_preprocessed, call
1698         gfc_read_orig_filename.
1699         (gfc_handle_option): Handle OPT_fpreprocessed.
1700         * lang-specs.h: Pass -fpreprocessed to f951 if preprocessing
1701         sources.
1702
1703 2006-01-27  Erik Edelmann  <eedelman@gcc.gnu.org>
1704
1705         * symbol.c (free_old_symbol): Fix confusing comment, and add code
1706           to free old_symbol->formal.
1707
1708 2006-01-26  Paul Thomas  <pault@gcc.gnu.org>
1709
1710         PR fortran/25964
1711         * resolve.c (resolve_function): Exclude statement functions from
1712         global reference checking.
1713
1714         PR fortran/25084
1715         PR fortran/20852
1716         PR fortran/25085
1717         PR fortran/25086
1718         * resolve.c (resolve_function): Declare a gfc_symbol to replace the
1719         references through the symtree to the symbol associated with the
1720         function expresion. Give error on reference to an assumed character
1721         length function is defined in an interface or an external function
1722         that is not a dummy argument.
1723         (resolve_symbol): Give error if an assumed character length function
1724         is array-valued, pointer-valued, pure or recursive. Emit warning
1725         that character(*) value functions are obsolescent in F95.
1726
1727         PR fortran/25416
1728         * trans-expr.c (gfc_conv_function_call): The above patch to resolve.c
1729         prevents any assumed character length function call from getting here
1730         except intrinsics such as SPREAD. In this case, ensure that no
1731         segfault occurs from referencing non-existent charlen->length->
1732         expr_type and provide a backend_decl for the charlen from the charlen
1733         of the first actual argument.
1734
1735         Cure temp name confusion.
1736         * trans-expr.c (gfc_get_interface_mapping_array): Change name of
1737         temporary from "parm" to "ifm" to avoid clash with temp coming from
1738         trans-array.c.
1739
1740 2006-01-25  Erik Edelmann  <eedelman@gcc.gnu.org>
1741
1742         PR fortran/25716
1743         * symbol.c (free_old_symbol): New function.
1744         (gfc_commit_symbols): Use it.
1745         (gfc_commit_symbol): New function.
1746         (gfc_use_derived): Use it.
1747         * gfortran.h: Add prototype for gfc_commit_symbol.
1748         * intrinsic.c (gfc_find_function): Search in 'conversion'
1749         if not found in 'functions'.
1750         (gfc_convert_type_warn): Add a symtree to the new
1751         expression node, and commit the new symtree->n.sym.
1752         * resolve.c (gfc_resolve_index): Make sure typespec is
1753         properly initialized.
1754
1755 2006-01-23  Paul Thomas  <pault@gcc.gnu.org>
1756
1757         PR fortran/25901
1758         * decl.c (get_proc_name): Replace subroutine and function attributes
1759         in "already defined" test by the formal arglist pointer being non-NULL.
1760
1761         Fix regression in testing of admissability of attributes.
1762         * symbol.c (gfc_add_attribute): If the current_attr has non-zero
1763         intent, do not do the check for a dummy being used.
1764         * decl.c (attr_decl1): Add current_attr.intent as the third argument
1765         in the call to gfc_add_attribute.
1766         * gfortran.h: Add the third argument to the prototype for
1767         gfc_add_attribute.
1768
1769 2006-01-21  Joseph S. Myers  <joseph@codesourcery.com>
1770
1771         * gfortranspec.c (lang_specific_driver): Update copyright notice
1772         date.
1773
1774 2006-01-21  Paul Thomas  <pault@gcc.gnu.org>
1775
1776         PR fortran/25124
1777         PR fortran/25625
1778         * decl.c (get_proc_name): If there is an existing
1779         symbol in the encompassing namespace, call errors
1780         if it is a procedure of the same name or the kind
1781         field is set, indicating a type declaration.
1782
1783         PR fortran/20881
1784         PR fortran/23308
1785         PR fortran/25538
1786         PR fortran/25710
1787         * decl.c (add_global_entry): New function to check
1788         for existing global symbol with this name and to
1789         create new one if none exists.
1790         (gfc_match_entry): Call add_global_entry before
1791         matching argument lists for subroutine and function
1792         entries.
1793         * gfortran.h: Prototype for existing function,
1794         global_used.
1795         * resolve.c (resolve_global_procedure): New function
1796         to check global symbols for procedures.
1797         (resolve_call, resolve_function): Calls to this
1798         new function for non-contained and non-module
1799         procedures.
1800         * match.c (match_common): Add check for existing
1801         global symbol, creat one if none exists and emit
1802         error if there is a clash.
1803         * parse.c (global_used): Remove static and use the
1804         gsymbol name rather than the new_block name, so that
1805         the function can be called from resolve.c.
1806         (parse_block_data, parse_module, add_global_procedure):
1807         Improve checks for existing gsymbols.  Emit error if
1808         already defined or if references were to another type.
1809         Set defined flag.
1810
1811         PR fortran/PR24276
1812         * trans-expr.c (gfc_conv_aliased_arg): New function called by 
1813         gfc_conv_function_call that coverts an expression for an aliased
1814         component reference to a derived type array into a temporary array
1815         of the same type as the component.  The temporary is passed as an
1816         actual argument for the procedure call and is copied back to the
1817         derived type after the call.
1818         (is_aliased_array): New function that detects an array reference
1819         that is followed by a component reference.
1820         (gfc_conv_function_call): Detect an aliased actual argument with
1821         is_aliased_array and convert it to a temporary and back again
1822         using gfc_conv_aliased_arg.
1823
1824 2006-01-19  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1825
1826         * gfortranspec.c: Update copyright years.
1827         * trans.c: Likewise.
1828         * trans-array.c: Likewise.
1829         * trans-array.h: Likewise.
1830         * trans-decl.c: Likewise.
1831         * trans-stmt.c: Likewise.
1832         * trans-stmt.h: Likewise.
1833         * trans-types.c: Likewise.
1834
1835 2006-01-18  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1836
1837         PR fortran/18540
1838         PR fortran/18937
1839         * gfortran.h (BBT_HEADER): Move definition up.
1840         (gfc_st_label): Add BBT_HEADER, remove 'prev' and 'next'.
1841         * io.c (format_asterisk): Adapt initializer.
1842         * resolve.c (resolve_branch): Allow FORTRAN 66 cross-block GOTOs
1843         as extension.
1844         (warn_unused_label): Take gfc_st_label label as argument, adapt to
1845         new data structure.
1846         (gfc_resolve): Adapt call to warn_unused_label.
1847         * symbol.c (compare_st_labels): New function.
1848         (gfc_free_st_label, free_st_labels, gfc_get_st_label): Convert to
1849         using balanced binary tree.
1850         * decl.c (match_char_length, gfc_match_old_kind_spec): Do away
1851         with 'cnt'.
1852         (warn_unused_label): Adapt to binary tree.
1853         * match.c (gfc_match_small_literal_int): Only set cnt if non-NULL.
1854         * primary.c (match_kind_param): Do away with cnt.
1855
1856 2006-01-18  Paul Thomas  <pault@gcc.gnu.org>
1857
1858         PR fortran/20869
1859         PR fortran/20875
1860         PR fortran/25024
1861         * symbol.c (check_conflict): Add pointer valued elemental
1862         functions and internal procedures with the external attribute
1863         to the list of conflicts.
1864         (gfc_add_attribute): New catch-all function to perform the
1865         checking of symbol attributes for attribute declaration
1866         statements.
1867         * decl.c (attr_decl1): Call gfc_add_attribute for each of -
1868         (gfc_match_external, gfc_match_intent, gfc_match_intrinsic,
1869         gfc_match_pointer, gfc_match_dimension, gfc_match_target):
1870         Remove spurious calls to checks in symbol.c.  Set the
1871         attribute directly and use the call to attr_decl() for
1872         checking.
1873         * gfortran.h:  Add prototype for gfc_add_attribute.
1874
1875         PR fortran/25785
1876         * resolve.c (resolve_function): Exclude PRESENT from assumed size
1877         argument checking. Replace strcmp's with comparisons with generic
1878         codes.
1879
1880 2006-01-16  Rafael \81Ávila de Esp\81índola  <rafael.espindola@gmail.com>
1881
1882         * gfortranspec.c (lang_specific_spec_functions): Remove.
1883
1884 2006-01-16  Richard Guenther  <rguenther@suse.de>
1885
1886         * trans-stmt.c (gfc_trans_if_1): Use fold_buildN and build_int_cst.
1887         (gfc_trans_arithmetic_if): Likewise.
1888         (gfc_trans_simple_do): Likewise.
1889         (gfc_trans_do): Likewise.
1890         (gfc_trans_do_while): Likewise.
1891         (gfc_trans_logical_select): Likewise.
1892         (gfc_trans_forall_loop): Likewise.
1893         (generate_loop_for_temp_to_lhs): Likewise.
1894         (generate_loop_for_rhs_to_temp): Likewise.
1895         (gfc_trans_allocate): Likewise.
1896         * trans.c (gfc_add_expr_to_block): Do not fold expr again.
1897
1898 2006-01-16  Richard Guenther  <rguenther@suse.de>
1899
1900         * trans-expr.c (gfc_conv_function_call): Use fold_build2.
1901         * trans-stmt.c (gfc_trans_goto): Likewise.  Use build_int_cst.
1902         * trans.c (gfc_trans_runtime_check): Don't fold the condition
1903         again.
1904
1905 2006-01-13  Steven G. Kargl  <kargls@comcast.net>
1906
1907         PR fortran/25756
1908         * symbol.c (gfc_free_st_label): Give variable meaningful name. Remove
1909         unneeded parenthesis. Fix-up the head of the list (2 lines gleaned
1910         from g95).
1911
1912 2006-01-13  Diego Novillo  <dnovillo@redhat.com>
1913
1914         * trans.c (gfc_add_expr_to_block): Do not fold tcc_statement
1915         nodes.
1916
1917 2006-01-11  Tobias Schl\81üter  <tobias.schlueter@physik.uni-muenchen.de>
1918
1919         * parse.c (next_fixed): Remove superfluous string concatenation.
1920
1921 2006-01-11  Bernhard Fischer  <rep.nop@aon.at>
1922
1923         PR fortran/25486
1924         * scanner.c (load_line): use maxlen to determine the line-length used
1925         for padding lines in fixed form.
1926
1927 2006-01-11  Paul Thomas  <pault@gcc.gnu.org>
1928
1929         PR fortran/25730
1930         * trans-types.c (copy_dt_decls_ifequal): Copy backend decl for
1931         character lengths.
1932
1933 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
1934
1935         fortran/24936
1936         * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Use fold_convert
1937         to avoid type mismatch.
1938
1939 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
1940
1941         PR fortran/21977
1942         * trans-decl.c (gfc_generate_function_code): Move the NULLing of
1943         current_fake_result_decl down to below generate_local_vars.
1944
1945 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
1946
1947         PR fortran/12456
1948         * trans-expr.c (gfc_to_single_character): New function that converts
1949         string to single character if its length is 1.
1950         (gfc_build_compare_string):New function that compare string and handle
1951         single character specially.
1952         (gfc_conv_expr_op): Use gfc_build_compare_string.
1953         (gfc_trans_string_copy): Use gfc_to_single_character.
1954         * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Use
1955         gfc_build_compare_string.
1956         * trans.h (gfc_build_compare_string): Add prototype.
1957
1958 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
1959
1960         * simplify.c (gfc_simplify_char): Use UCHAR_MAX instead of literal
1961         constant.
1962         (gfc_simplify_ichar): Get the result from unsinged char and in the
1963         range 0 to UCHAR_MAX instead of CHAR_MIN to CHAR_MAX.
1964
1965 2006-01-08  Erik Edelmann  <eedelman@gcc.gnu.org>
1966
1967         PR fortran/25093
1968         * resolve.c (resolve_fntype): Check that PUBLIC functions
1969         aren't of PRIVATE type.
1970
1971 2006-01-07  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1972
1973         * decl.c (gfc_match_function_decl): Correctly error out in case of
1974         omitted function argument list.
1975
1976 2006-01-07  Paul Thomas  <pault@gcc.gnu.org>
1977
1978         PR fortran/22146
1979         * trans-array.c (gfc_reverse_ss): Remove static attribute.
1980         (gfc_walk_elemental_function_args): Replace gfc_expr * argument for
1981         the function call with the corresponding gfc_actual_arglist*.  Change
1982         code accordingly.
1983         (gfc_walk_function_expr): Call to gfc_walk_elemental_function_args
1984         now requires the actual argument list instead of the expression for
1985         the function call.
1986         * trans-array.h: Modify the prototype for gfc_walk_elemental_function_args
1987         and provide a prototype for gfc_reverse_ss.
1988         * trans-stmt.h (gfc_trans_call): Add the scalarization code for the case
1989         where an elemental subroutine has array valued actual arguments.
1990
1991         PR fortran/25029
1992         PR fortran/21256
1993         PR fortran/20868
1994         PR fortran/20870
1995         * resolve.c (check_assumed_size_reference): New function to check for upper
1996         bound in assumed size array references.
1997         (resolve_assumed_size_actual): New function to do a very restricted scan
1998         of actual argument expressions of those procedures for which incomplete
1999         assumed size array references are not allowed.
2000         (resolve_function, resolve_call): Switch off assumed size checking of
2001         actual arguments, except for elemental procedures and intrinsic
2002         inquiry functions, in some circumstances.
2003         (resolve_variable): Call check_assumed_size_reference.
2004
2005 2006-01-05  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
2006
2007         PR fortran/24268
2008         * io.c (next_char_not_space): New function that returns the next
2009         character that is not white space.
2010         (format_lex): Use the new function to skip whitespace within
2011         a format string.
2012
2013 2006-01-05  Erik Edelmann  <eedelman@gcc.gnu.org>
2014
2015         PR fortran/23675
2016         * expr.c (gfc_expr_set_symbols_referenced): New function.
2017         * gfortran.h: Add a function prototype for it.
2018         * resolve.c (resolve_function): Use it for
2019         use associated character functions lengths.
2020         * expr.c, gfortran.h, resolve.c: Updated copyright years.
2021
2022 2006-01-03  Steven G. Kargl  <kargls@comcast.net>
2023
2024         PR fortran/25101
2025         * resolve.c (resolve_forall_iterators):  Check for scalar variables;
2026         Check stride is nonzero.
2027
2028 2006-01-02  Steven G. Kargl  <kargls@comcast.net>
2029
2030         PR fortran/24640
2031         * parse.c (next_free): Check for whitespace after the label.
2032         * match.c (gfc_match_small_literal_int): Initialize cnt variable.
2033
2034 2006-01-01  Steven G. Kargl  <kargls@comcast.net>
2035
2036         * ChangeLog: Split previous years into ...
2037         * ChangeLog-2002: here.
2038         * ChangeLog-2003: here.
2039         * ChangeLog-2004: here.
2040         * ChangeLog-2005: here.