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