OSDN Git Service

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