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