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