8c8c679549abe692bc3abc6fc91d694f4785a9b7
[gcc.git] / gcc / fortran / ChangeLog
1 2008-08-24 Tobias Burnus <burnus@net-b.de>
2
3 PR fortran/37201
4 * decl.c (verify_bind_c_sym): Reject array/string returning
5 functions.
6
7 2008-08-24 Tobias Burnus <burnus@net-b.de>
8
9 PR fortran/37201
10 * trans-expr.c (gfc_conv_function_call): Add string_length
11 for character-returning bind(C) functions.
12
13 2008-08-24 Daniel Kraft <d@domob.eu>
14
15 * gfortran.h (gfc_typebound_proc): New struct.
16 (gfc_symtree): New member typebound.
17 (gfc_find_typebound_proc): Prototype for new method.
18 (gfc_get_derived_super_type): Prototype for new method.
19 * parse.h (gfc_compile_state): New state COMP_DERIVED_CONTAINS.
20 * decl.c (gfc_match_procedure): Handle PROCEDURE inside derived-type
21 CONTAINS section.
22 (gfc_match_end): Handle new context COMP_DERIVED_CONTAINS.
23 (gfc_match_private): Ditto.
24 (match_binding_attributes), (match_procedure_in_type): New methods.
25 (gfc_match_final_decl): Rewrote to make use of new
26 COMP_DERIVED_CONTAINS parser state.
27 * parse.c (typebound_default_access): New global helper variable.
28 (set_typebound_default_access): New callback method.
29 (parse_derived_contains): New method.
30 (parse_derived): Extracted handling of CONTAINS to new parser state
31 and parse_derived_contains.
32 * resolve.c (resolve_bindings_derived), (resolve_bindings_result): New.
33 (check_typebound_override), (resolve_typebound_procedure): New methods.
34 (resolve_typebound_procedures): New method.
35 (resolve_fl_derived): Call new resolving method for typebound procs.
36 * symbol.c (gfc_new_symtree): Initialize new member typebound to NULL.
37 (gfc_find_typebound_proc): New method.
38 (gfc_get_derived_super_type): New method.
39
40 2008-08-23 Janus Weil <janus@gcc.gnu.org>
41
42 * gfortran.h (gfc_component): Add field "symbol_attribute attr", remove
43 fields "pointer", "allocatable", "dimension", "access".
44 Remove functions "gfc_set_component_attr" and "gfc_get_component_attr".
45 * interface.c (gfc_compare_derived_types): Ditto.
46 * trans-array.c (gfc_array_allocate,structure_alloc_comps): Ditto.
47 * trans-expr.c (gfc_conv_component_ref,gfc_trans_subcomponent_assign,
48 gfc_conv_structure): Ditto.
49 * symbol.c (gfc_find_component,free_components,gfc_set_component_attr,
50 gfc_get_component_attr,verify_bind_c_derived_type,
51 generate_isocbinding_symbol): Ditto.
52 * decl.c (build_struct): Ditto.
53 * dump-parse-tree.c (show_components): Ditto.
54 * trans-stmt.c (gfc_trans_deallocate): Ditto.
55 * expr.c (gfc_check_assign,gfc_check_pointer_assign,
56 gfc_default_initializer): Ditto.
57 * module.c (mio_component): Ditto.
58 * trans-types.c (copy_dt_decls_ifequal,gfc_get_derived_type): Ditto.
59 * resolve.c (has_default_initializer,resolve_structure_cons,
60 gfc_iso_c_func_interface,find_array_spec,resolve_ref,
61 resolve_deallocate_expr,resolve_allocate_expr,resolve_fl_derived,
62 resolve_equivalence_derived): Ditto.
63 * trans-io.c (transfer_expr): Ditto.
64 * parse.c (parse_derived): Ditto.
65 * dependency.c (gfc_check_dependency): Ditto.
66 * primary.c (gfc_variable_attr): Ditto.
67
68 2008-08-23 Tobias Burnus <burnus@net-b.de>
69
70 PR fortran/37076
71 * arith.c (gfc_arith_concat): Fix concat of kind=4 strings.
72
73 2008-08-23 Tobias Burnus <burnus@net-b.de>
74
75 PR fortran/37025
76 * target-memory.c (gfc_interpret_character): Support
77 kind=4 characters.
78
79 2008-08-22 Daniel Kraft <d@domob.eu>
80
81 PR fortran/30239
82 * symbol.c (gfc_add_type): Warn on -Wsurprising if a function-result
83 type is re-declared but neither -pedantic nor -std=f* is given and so
84 this is no error.
85 * invoke.texi (-Wsurprising): Document this new behaviour.
86
87 2008-08-22 Daniel Kraft <d@domob.eu>
88
89 * gfortran.h (in_prefix): Removed from this header.
90 * match.h (gfc_matching_prefix): Moved and renamed from `in_prefix'.
91 * decl.c (in_prefix): Removed from here.
92 (gfc_match_prefix): Use new name of `gfc_matching_prefix'.
93 * symbol.c (gfc_check_symbol_typed): Ditto.
94 * expr.c (check_typed_ns): New helper variable.
95 (expr_check_typed_help): New helper method.
96 (gfc_expr_check_typed): Rewrote to use gfc_traverse_expr to do the
97 work, fixing a minor problem.
98 * match.c (gfc_matching_prefix): New variable.
99
100 2008-08-22 Daniel Kraft <d@domob.eu>
101
102 PR fortran/32095
103 PR fortran/34228
104 * gfortran.h (in_prefix): New global.
105 (gfc_check_symbol_typed), (gfc_check_expr_typed): New methods.
106 * array.c (match_array_element_spec): Check that bounds-expressions
107 don't have symbols not-yet-typed in them.
108 * decl.c (var_element): Check that variable used is already typed.
109 (char_len_param_value): Check that expression does not contain
110 not-yet-typed symbols.
111 (in_prefix): New global.
112 (gfc_match_prefix): Record using `in_prefix' if we're at the moment
113 parsing a prefix or not.
114 * expr.c (gfc_expr_check_typed): New method.
115 * parse.c (verify_st_order): New argument to disable error output.
116 (check_function_result_typed): New helper method.
117 (parse_spec): Check that the function-result declaration, if given in
118 a prefix, contains no not-yet-typed symbols when the IMPLICIT rules are
119 parsed.
120 * symbol.c (gfc_check_symbol_typed): Check that a symbol already has
121 a type associated to it, otherwise use the IMPLICIT rules or signal
122 an error.
123
124 2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
125
126 * f95-lang.c: Update all calls to pedwarn.
127
128 2008-08-18 Daniel Franke <franke.daniel@gmail.com>
129
130 PR fortran/37032
131 * gfortran.texi: Document decision on include file handling in
132 preprocessed files.
133
134 2008-08-16 Tobias Burnus <burnus@net-b.de>
135
136 PR fortran/36825
137 * libgfortran.h: Reduce GFC_MAX_DIMENSIONS to 7.
138
139 2008-08-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
140
141 PR fortran/35863
142 * io.c (gfc_match_open): Enable UTF-8 in checks.
143 * simplify.c (gfc_simplify_selected_char_kind): Enable iso_10646.
144
145 2008-08-14 Janus Weil <janus@gcc.gnu.org>
146
147 PR fortran/36705
148 * symbol.c (check_conflict): Move conflict checks for (procedure,save)
149 and (procedure,intent) to resolve_fl_procedure.
150 * resolve.c (resolve_fl_procedure): Ditto.
151
152 2008-08-09 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
153
154 PR 36901
155 * f95-lang.c (gfc_mark_addressable): Use "pedwarn (0," instead of
156 'pedwarn0'.
157
158 2008-08-09 Paul Thomas <pault@gcc.gnu.org>
159
160 PR fortran/37011
161 * symbol.c (gfc_add_extension): New function.
162 * decl.c (gfc_get_type_attr_spec): Call it.
163 (gfc_match_derived_decl): Set symbol extension attribute from
164 attr.extension.
165 * gfortran.h : Add prototype for gfc_add_extension.
166
167 2008-08-08 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
168
169 PR 28875
170 * options.c (set_Wall): Replace set_Wunused by warn_unused.
171
172 2008-08-08 Daniel Kraft <d@domob.eu>
173
174 * gfortran.h (gfc_finalizer): Replaced member `procedure' by two
175 new members `proc_sym' and `proc_tree' to store the symtree after
176 resolution.
177 (gfc_find_sym_in_symtree): Made public.
178 * decl.c (gfc_match_final_decl): Adapted for new member name.
179 * interface.c (gfc_find_sym_in_symtree): Made public.
180 (gfc_extend_expr), (gfc_extend_assign): Changed call accordingly.
181 * module.c (mio_finalizer), (mio_f2k_derived), (mio_full_f2k_derived):
182 New methods for module-file IO of f2k_derived.
183 (mio_symbol): Do IO of f2k_derived namespace.
184 * resolve.c (gfc_resolve_finalizers): Adapted for new member name and
185 finding the symtree for the symbol here.
186 * symbol.c (gfc_free_finalizer): Adapted for new members.
187
188 2008-07-30 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
189
190 * gfc-internals.texi: Update to GFDL 1.2. Do not list GPL as
191 Invariant Section.
192 * gfortran.texi: Likewise.
193 * intrinsic.texi: Do not list GPL as Invariant Section.
194 * invoke.texi: Likewise. Update copyright years.
195
196 2008-07-29 Paul Thomas <pault@gcc.gnu.org>
197
198 * trans-expr.c (conv_parent_component_references): New function
199 to build missing parent references.
200 (gfc_conv_variable): Call it
201 * symbol.c (gfc_add_component): Check that component name in a
202 derived type extension does not appear in parent.
203 (gfc_find_component): For a derived type extension, check if
204 the component appears in the parent derived type by calling
205 self. Separate errors for private components and private types.
206 * decl.c (match_data_constant): Add extra arg to call to
207 gfc_match_structure_constructor.
208 (check_extended_derived_type): New function to check that a
209 parent derived type exists and that it is OK for exension.
210 (gfc_get_type_attr_spec): Add extra argument 'name' and return
211 it if extends is specified.
212 (gfc_match_derived_decl): Match derived type extension and
213 build a first component of the parent derived type if OK. Add
214 the f2k namespace if not present.
215 * gfortran.h : Add the extension attribute.
216 * module.c : Handle attribute 'extension'.
217 * match.h : Modify prototypes for gfc_get_type_attr_spec and
218 gfc_match_structure_constructor.
219 * primary.c (build_actual_constructor): New function extracted
220 from gfc_match_structure_constructor and modified to call self
221 iteratively to build derived type extensions, when f2k named
222 components are used.
223 (gfc_match_structure_constructor): Do not throw error for too
224 many components if a parent type is being handled. Use
225 gfc_find_component to generate errors for non-existent or
226 private components. Iteratively call self for derived type
227 extensions so that parent constructor is built. If extension
228 and components left over, throw error.
229 (gfc_match_rvalue): Add extra arg to call to
230 gfc_match_structure_constructor.
231
232 * trans-array.c (gfc_conv_resolve_dependencies): If lhs and rhs
233 are the same symbol, aliassing does not matter.
234
235 2008-07-29 Jan Hubicka <jh@suse.cz>
236
237 * options.c (gfc_post_options): Do not set flag_no_inline.
238
239 2008-07-29 Daniel Kraft <d@domob.eu>
240
241 PR fortran/36403
242 * trans-intrinsic.c (conv_generic_with_optional_char_arg): New method
243 to append a string-length even if the string argument is missing, e.g.
244 for EOSHIFT.
245 (gfc_conv_intrinsic_function): Call the new method for EOSHIFT, PACK
246 and RESHAPE.
247
248 2008-07-28 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
249
250 * gfortran.h (try): Remove macro. Replace try with gfc_try
251 throughout.
252 * array.c: Likewise.
253 * check.c: Likewise.
254 * cpp.c: Likewise.
255 * cpp.h: Likewise.
256 * data.c: Likewise.
257 * data.h: Likewise.
258 * decl.c: Likewise.
259 * error.c: Likewise.
260 * expr.c: Likewise.
261 * interface.c: Likewise.
262 * intrinsic.c: Likewise.
263 * intrinsic.h: Likewise.
264 * io.c: Likewise.
265 * match.h: Likewise.
266 * parse.c: Likewise.
267 * parse.h: Likewise.
268 * resolve.c: Likewise.
269 * scanner.c: Likewise.
270 * simplify.c: Likewise.
271 * symbol.c: Likewise.
272 * trans-openmp.c: Likewise.
273 * trans-types.c: Likewise.
274
275 2008-07-28 Tobias Burnus <burnus@net-b.de>
276
277 * Make-lang.in: Remove -Wno-* from fortran-warn.
278
279 2008-07-28 Richard Guenther <rguenther@suse.de>
280
281 Merge from gimple-tuples-branch.
282
283 2008-07-18 Aldy Hernandez <aldyh@redhat.com>
284
285 * trans-expr.c: Include gimple.h instead of tree-gimple.h.
286 * trans-array.c: Same.
287 * trans-openmp.c: Same.
288 * trans-stmt.c: Same.
289 * f95-lang.c: Same.
290 * trans-io.c: Same.
291 * trans-decl.c: Same.
292 * trans-intrinsic.c: Same.
293 * trans.c: Same. Include tree-iterator.h.
294 * Make-lang.in (trans.o): Depend on tree-iterator.h
295
296 2008-07-14 Aldy Hernandez <aldyh@redhat.com>
297
298 * trans-array.h (gfc_conv_descriptor_data_set_internal):
299 Rename to gfc_conv_descriptor_data_set.
300 (gfc_conv_descriptor_data_set_tuples): Remove.
301 * trans-array.c (gfc_conv_descriptor_data_get): Rename
302 from gfc_conv_descriptor_data_set_internal.
303 Remove last argument to gfc_add_modify.
304 (gfc_trans_allocate_array_storage): Rename gfc_add_modify_expr to
305 gfc_add_modify.
306 (gfc_trans_create_temp_array): Same.
307 (gfc_conv_array_transpose): Same.
308 (gfc_grow_array): Same.
309 (gfc_put_offset_into_var): Same.
310 (gfc_trans_array_ctor_element): Same.
311 (gfc_trans_array_constructor_subarray): Same.
312 (gfc_trans_array_constructor_value): Same.
313 (gfc_trans_scalarized_loop_end): Same.
314 (gfc_array_init_size): Same.
315 (gfc_array_allocate): Same.
316 (gfc_trans_array_bounds): Same.
317 (gfc_trans_auto_array_allocation): Same.
318 (gfc_trans_g77_array): Same.
319 (gfc_trans_dummy_array_bias): Same.
320 (gfc_conv_expr_descriptor): Same.
321 (structure_alloc_comps): Same.
322 * trans-expr.c: Same.
323 * trans-openmp.c (gfc_omp_clause_default_ctor): Same.
324 Rename gfc_conv_descriptor_data_set_tuples to
325 gfc_conv_descriptor_data_set.
326 (gfc_omp_clause_copy_ctor): Change build_gimple_modify_stmt to
327 build2_v.
328 (gfc_omp_clause_assign_op): Same.
329 (gfc_trans_omp_array_reduction): Rename gfc_add_modify_expr to
330 gfc_add_modify.
331 (gfc_trans_omp_atomic): Same.
332 (gfc_trans_omp_do): Same. Change GIMPLE_MODIFY_STMT to MODIFY_EXPR.
333 Rename gfc_add_modify_stmt to gfc_add_modify.
334 * trans-stmt.c: Rename gfc_add_modify_expr to
335 gfc_add_modify.
336 * trans.c: Rename gfc_add_modify_expr to
337 gfc_add_modify.
338 (gfc_add_modify): Remove last argument.
339 Rename GIMPLE_MODIFY_STMT to MODIFY_EXPR.
340 * trans.h: Remove gfc_add_modify_expr, gfc_add_modify_stmt.
341 Add prototype for gfc_add_modify.
342 * f95-lang.c (union lang_tree_node): Rename GENERIC_NEXT to TREE_CHAIN.
343 * trans-decl.c: Rename gfc_add_modify_stmt to gfc_add_modify.
344 * trans-io.c: Same.
345 * trans-intrinsic.c: Same.
346
347 2008-02-25 Aldy Hernandez <aldyh@redhat.com>
348
349 * Make-lang.in (fortran-warn): Add -Wno-format.
350
351 2008-02-19 Diego Novillo <dnovillo@google.com>
352
353 http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00804.html
354
355 * fortran/Make-lang.in (fortran-warn): Remove.
356
357 2007-11-22 Aldy Hernandez <aldyh@redhat.com>
358
359 * trans-expr.c (gfc_trans_string_copy): Use "void *" when building a
360 memset.
361
362 2007-11-10 Aldy Hernandez <aldyh@redhat.com>
363
364 * Make-lang.in (fortran-warn): Set to -Wno-format.
365 * trans.c (gfc_trans_code): Update comment to say GENERIC.
366 Call tree_annotate_all_with_locus instead of annotate_all_with_locus.
367
368 2008-07-27 Tobias Burnus <burnus@net-b.de>
369
370 PR fortran/36132
371 PR fortran/29952
372 PR fortran/36909
373 * trans.c (gfc_trans_runtime_check): Allow run-time warning besides
374 run-time error.
375 * trans.h (gfc_trans_runtime_check): Update declaration.
376 * trans-array.c (gfc_trans_array_ctor_element,gfc_trans_array_bound_check,
377 gfc_conv_array_ref,gfc_conv_ss_startstride,gfc_trans_dummy_array_bias):
378 Updated gfc_trans_runtime_check calls.
379 (gfc_conv_array_parameter): Implement flag_check_array_temporaries,
380 fix packing/unpacking for nonpresent optional actuals to optional
381 formals.
382 * trans-array.h (gfc_conv_array_parameter): Update declaration.
383 * trans-expr.c (gfc_conv_substring,gfc_trans_arrayfunc_assign,
384 gfc_conv_function_call): Updated gfc_trans_runtime_check calls.
385 (gfc_conv_function_call): Update gfc_conv_array_parameter calls.
386 * trans-expr.c (gfc_trans_goto): Updated gfc_trans_runtime_check
387 calls.
388 * trans-io.c (set_string,gfc_conv_intrinsic_repeat): Ditto.
389 (gfc_conv_intrinsic_transfer,gfc_conv_intrinsic_loc): Same for
390 gfc_conv_array_parameter.
391 * trans-intrinsics.c (gfc_conv_intrinsic_bound): Ditto.
392 * trans-decl.c (gfc_build_builtin_function_decls): Add
393 gfor_fndecl_runtime_warning_at.
394 * lang.opt: New option fcheck-array-temporaries.
395 * gfortran.h (gfc_options): New flag_check_array_temporaries.
396 * options.c (gfc_init_options, gfc_handle_option): Handle flag.
397 * invoke.texi: New option fcheck-array-temporaries.
398
399 2008-07-24 Jan Hubicka <jh@suse.cz>
400
401 * fortran/options.c (gfc_post_options): Remove flag_unline_trees code.
402
403 2008-07-24 Daniel Kraft <d@domob.eu>
404
405 PR fortran/33141
406 * lang.opt (Wnonstd-intrinsics): Removed option.
407 (Wintrinsics-std), (Wintrinsic-shadow): New options.
408 * invoke.texi (Option Summary): Removed -Wnonstd-intrinsics
409 from the list and added -Wintrinsics-std and -Wintrinsic-shadow.
410 (Error and Warning Options): Documented the new options and removed
411 the documentation for -Wnonstd-intrinsics.
412 * gfortran.h (gfc_option_t): New members warn_intrinsic_shadow and
413 warn_intrinsics_std, removed warn_nonstd_intrinsics.
414 (gfc_is_intrinsic): Renamed from gfc_intrinsic_name.
415 (gfc_warn_intrinsic_shadow), (gfc_check_intrinsic_standard): New.
416 * decl.c (match_procedure_decl): Replaced gfc_intrinsic_name by
417 the new name gfc_is_intrinsic.
418 (warn_intrinsic_shadow): New helper method.
419 (gfc_match_function_decl), (gfc_match_subroutine): Call the new method
420 warn_intrinsic_shadow to check the just-parsed procedure.
421 * expr.c (check_init_expr): Call new gfc_is_intrinsic to check whether
422 the function called is really an intrinsic in the selected standard.
423 * intrinsic.c (gfc_is_intrinsic): Renamed from gfc_intrinsic_name and
424 extended to take into account the selected standard settings when trying
425 to find out whether a symbol is an intrinsic or not.
426 (gfc_check_intrinsic_standard): Made public and extended.
427 (gfc_intrinsic_func_interface), (gfc_intrinsic_sub_interface): Removed
428 the calls to check_intrinsic_standard, this check now happens inside
429 gfc_is_intrinsic.
430 (gfc_warn_intrinsic_shadow): New method defined.
431 * options.c (gfc_init_options): Initialize new warning flags to false
432 and removed intialization of Wnonstd-intrinsics flag.
433 (gfc_post_options): Removed logic for Wnonstd-intrinsics flag.
434 (set_Wall): Set new warning flags and removed Wnonstd-intrinsics flag.
435 (gfc_handle_option): Handle the new flags and removed handling of the
436 old Wnonstd-intrinsics flag.
437 * primary.c (gfc_match_rvalue): Replaced call to gfc_intrinsic_name by
438 the new name gfc_is_intrinsic.
439 * resolve.c (resolve_actual_arglist): Ditto.
440 (resolve_generic_f), (resolve_unknown_f): Ditto.
441 (is_external_proc): Ditto.
442 (resolve_generic_s), (resolve_unknown_s): Ditto.
443 (resolve_symbol): Ditto and ensure for symbols declared INTRINSIC that
444 they are really available in the selected standard setting.
445
446 2008-07-24 Daniel Kraft <d@domob.eu>
447
448 * match.c (gfc_match): Add assertion to catch wrong calls trying to
449 match upper-case characters.
450
451 2008-07-24 Thomas Koenig <tkoenig@gcc.gnu.org>
452
453 PR fortran/29952
454 * gfortran.h: Add "warn_array_temp" to gfc_option_t.
455 * lang.opt: Add -Warray-temporaries.
456 * invoke.texi: Document -Warray-temporaries
457 * trans-array.h (gfc_trans_create_temp_array): Add argument of
458 type *locus.
459 (gfc_conv_loop_setup): Likewise.
460 * trans-array.c (gfc_trans_create_temp_array): If
461 -Warray-temporaries is given and locus is present, warn about
462 creation of array temporaries.
463 (gfc_trans_array_constructor_subarray): Add locus to call
464 of gfc_conv_loop_setup.
465 (gfc_trans_array_constructor): Add where argument. Pass where
466 argument to call of gfc_trans_create_temp_array.
467 (gfc_add_loop_ss_code): Add where argument. Pass where argument
468 to recursive call of gfc_add_loop_ss_code and to call of
469 gfc_trans_array_constructor.
470 (gfc_conv_loop_setup): Add where argument. Pass where argument
471 to calls to gfc_add_loop_ss_code and to gfc_trans_create_temp_array.
472 (gfc_conv_expr_descriptor): Pass location to call of
473 gfc_conv_loop_setup.
474 (gfc_conv_array_parameter): If -Warray-temporaries is given,
475 warn about creation of temporary arrays.
476 * trans-expr.c (gfc_conv_subref_array_arg): Add where argument
477 to call to gfc_conv_loop_setup.
478 (gfc_conv_function_call): Add where argument to call to
479 gfc_trans_creat_temp_array.
480 (gfc_trans_subarray_assign): Likewise.
481 (gfc_trans_assignment_1): Add where argument to call to
482 gfc_conv_loop_setup.
483 * trans-stmt.c (gfc_conv_elemental_dependencies): Add where
484 argument to call to gfc_trans_create_temp_array.
485 (gfc_trans_call): Add where argument to call to gfc_conv_loop_setup.
486 (generate_loop_for_temp_to_lhs): Likewise.
487 (generate_loop_for_rhs_to_temp): Likewise.
488 (compute_inner_temp_size): Likewise.
489 (gfc_trans-pointer_assign_need_temp): Likewise.
490 (gfc_evaluate_where_mask): Likewise.
491 (gfc_trans_where_assign): Likewise.
492 (gfc_trans_where_3): Likewise.
493 * trans-io.c (transfer_srray_component): Add where argument
494 to function. Add where argument to call to gfc_conv_loop_setup.
495 (transfer_expr): Add where argument to call to
496 transfer_array_component.
497 (gfc_trans_transfer): Add where expression to call to
498 gfc_conv_loop_setup.
499 * trans-intrinsic.c (gfc_conv_intrinsic_anyall): Add
500 where argument to call to gfc_conv_loop_setup.
501 (gfc_conv_intrinsic_count): Likewise.
502 (gfc_conv_intrinsic_arith): Likewise.
503 (gfc_conv_intrinsic_dot_product): Likewise.
504 (gfc_conv_intrinsic_minmaxloc): Likewise.
505 (gfc_conv_intrinsic_minmaxval): Likewise.
506 (gfc_conv_intrinsic_array_transfer): Warn about
507 creation of temporary array.
508 Add where argument to call to gfc_trans_create_temp_array.
509 * options.c (gfc_init_options): Initialize gfc_option.warn_array_temp.
510 (gfc_handle_option): Set gfc_option.warn_array_temp.
511
512 2008-07-23 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
513
514 PR 35058
515 * f95-lang.c (gfc_mark_addressable): All calls to pedwarn changed.
516
517 2008-07-22 Daniel Kraft <d@domob.eu>
518
519 PR fortran/29835
520 * io.c (error_element), (format_locus): New static globals.
521 (unexpected_element): Spelled out this message fully.
522 (next_char): Keep track of locus when not MODE_STRING.
523 (next_char_not_space): Remember last parsed element in error_element.
524 (format_lex): Fix two indentation errors.
525 (check_format): Use format_locus and possibly error_element for a
526 slightly better error message on invalid format.
527 (check_format_string): Set format_locus to start of the string
528 expression used as format.
529
530 2008-07-21 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
531
532 * expr.c (gfc_check_pointer_assign): Fix typo in string.
533 * io.c (check_format): Fix typo in string. Fix comment typos.
534 * parse.c (gfc_global_used): Likewise.
535 * resolve.c (resolve_allocate_expr): Likewise.
536 * symbol.c (gfc_set_default_type): Likewise.
537 * arith.c: Fix typos in comments.
538 * array.c: Likewise.
539 * data.c: Likewise.
540 * decl.c: Likewise.
541 * dependency.c: Likewise.
542 * f95-lang.c: Likewise.
543 * gfortran.h: Likewise.
544 * matchexp.c: Likewise.
545 * module.c: Likewise.
546 * primary.c: Likewise.
547 * scanner.c: Likewise.
548 * trans-array.c: Likewise.
549 * trans-common.c: Likewise.
550 * trans-decl.c: Likewise.
551 * trans-expr.c: Likewise.
552 * trans-intrinsic.c: Likewise.
553 * trans-types.c: Likewise.
554 * trans.c: Likewise.
555 * trans.h: Likewise.
556
557 2008-07-19 Tobias Burnus <burnus@net-b.de>
558
559 PR fortran/36795
560 * matchexp.c (gfc_get_parentheses): Remove obsolete workaround,
561 which caused the generation of wrong code.
562
563 2008-07-19 Tobias Burnus <burnus@net-b.de>
564
565 PR fortran/36342
566 * scanner.c (load_file): Add argument to destinguish between
567 true filename and displayed filename.
568 (include_line,gfc_new_file): Adapt accordingly.
569
570 2008-07-19 Tobias Burnus <burnus@net-b.de>
571
572 * check.c (gfc_check_cshift,gfc_check_eoshift,gfc_check_unpack): Add rank
573 checks for cshift's shift and eoshift's shift and boundary args.
574 (gfc_check_unpack): Add rank and shape tests for unpack.
575
576 2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
577
578 * gfortran.h (new): Remove macro.
579 * array.c (gfc_append_constructor, match_array_list,
580 gfc_match_array_constructor): Likewise.
581 * bbt.c (insert, gfc_insert_bbt): Likewise.
582 * decl.c (var_element, top_var_list, top_val_list, gfc_match_data,
583 get_proc_name): Likewise.
584 * expr.c (gfc_copy_actual_arglist): Likewise.
585 * interface.c (compare_actual_formal, check_new_interface,
586 gfc_add_interface): Likewise.
587 * intrinsic.c gfc_convert_type_warn, gfc_convert_chartype):
588 Likewise.
589 * io.c (match_io_iterator, match_io_list): Likewise.
590 * match.c (match_forall_header): Likewise.
591 * matchexp.c (build_node): Likewise.
592 * module.c (gfc_match_use): Likewise.
593 * scanner.c (load_file): Likewise.
594 * st.c (gfc_append_code): Likewise.
595 * symbol.c (save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
596 gfc_commit_symbols): Likewise.
597 * trans-common.c (build_field): Likewise.
598 * trans-decl.c (gfc_finish_var_decl): Likewise.
599 * trans-expr.c (gfc_free_interface_mapping,
600 gfc_get_interface_mapping_charlen, gfc_add_interface_mapping,
601 gfc_finish_interface_mapping,
602 gfc_apply_interface_mapping_to_expr): Likewise.
603 * trans.h (gfc_interface_sym_mapping): Likewise.
604
605 2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
606
607 * gfortran.h (operator): Remove macro.
608 (gfc_namespace, gfc_expr): Avoid C++ keywords.
609 * arith.c (eval_intrinsic, eval_intrinsic_f2, eval_intrinsic_f3):
610 Likewise.
611 * decl.c (access_attr_decl): Likewise.
612 * dependency.c (gfc_dep_compare_expr): Likewise.
613 * dump-parse-tree.c (show_expr, show_uop, show_namespace):
614 Likewise.
615 * expr.c (gfc_copy_expr, gfc_type_convert_binary,
616 simplify_intrinsic_op, check_intrinsic_op): Likewise.
617 * interface.c (fold_unary, gfc_match_generic_spec,
618 gfc_match_interface, gfc_match_end_interface,
619 check_operator_interface, check_uop_interfaces,
620 gfc_check_interfaces, gfc_extend_expr, gfc_extend_assign,
621 gfc_add_interface, gfc_current_interface_head,
622 gfc_set_current_interface_head): Likewise.
623 * iresolve.c (gfc_resolve_dot_product, gfc_resolve_matmul):
624 Likewise.
625 * matchexp.c (gfc_get_parentheses, build_node): Likewise.
626 * module.c (gfc_use_rename, gfc_match_use, find_use_name_n,
627 number_use_names, mio_expr, load_operator_interfaces, read_module,
628 write_operator, write_module): Likewise.
629 * openmp.c (resolve_omp_atomic): Likewise.
630 * resolve.c (resolve_operator, gfc_resolve_character_operator,
631 gfc_resolve_uops): Likewise.
632 * symbol.c (free_uop_tree, gfc_free_namespace): Likewise.
633 * trans-expr.c (gfc_conv_expr_op): Likewise.
634 * trans-openmp.c (gfc_trans_omp_atomic): Likewise.
635
636 2008-07-19 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
637
638 * gfortran.h (protected): Remove macro.
639 * dump-parse-tree.c (show_attr): Avoid C++ keywords.
640 * expr.c (gfc_check_pointer_assign): Likewise.
641 * interface.c (compare_parameter_protected): Likewise.
642 * intrinsic.c (enum class, add_sym, add_sym_0, add_sym_1,
643 add_sym_1s, add_sym_1m, add_sym_2, add_sym_2s, add_sym_3,
644 add_sym_3ml, add_sym_3red, add_sym_3s, add_sym_4, add_sym_4s,
645 add_sym_5s): Likewise.
646 * match.c (gfc_match_assignment, gfc_match_pointer_assignment):
647 Likewise.
648 * module.c (mio_symbol_attribute): Likewise.
649 * primary.c (match_variable): Likewise.
650 * resolve.c (resolve_equivalence): Likewise.
651 * symbol.c (check_conflict, gfc_add_protected, gfc_copy_attr):
652 Likewise.
653 * trans-types.c (gfc_get_array_type_bounds): Likewise.
654
655 2008-07-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
656
657 * arith.c (eval_type_intrinsic0): Avoid C++ keywords.
658 * gfortran.h (try, protected, operator, new): Likewise.
659
660 2008-07-17 Tobias Burnus <burnus@net-b.de>
661
662 PR fortran/36825
663 PR fortran/36824
664 * array.c (gfc_match_array_spec): Fix array-rank check.
665 * resolve.c (resolve_fl_derived): Fix constentness check
666 for the array dimensions.
667
668 2008-07-14 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
669
670 * Make-lang.in (gfortranspec.o): Fix dependencies.
671
672 2008-07-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
673
674 PR fortran/36725
675 * io.c: Add error check for g0 edit descriptor followed by '.'.
676
677 2008-07-12 Daniel Kraft <d@domob.eu>
678
679 * resolve.c (resolve_fl_derived): Allow pointer components to empty
680 derived types fixing a missing part of PR fortran/33221.
681
682 2008-07-10 Daniel Kraft <d@domob.eu>
683
684 * gfc-internals.texi (section gfc_expr): Created documentation about
685 the gfc_expr internal data structure.
686
687 2008-07-07 Thomas Koenig <tkoenig@gcc.gnu.org>
688
689 PR fortran/36670
690 * iresolve.c (gfc_resolve_product): Set shape of return
691 value from array.
692 (gfc_resolve_sum): Likewise.
693
694 2008-07-07 Jakub Jelinek <jakub@redhat.com>
695
696 PR middle-end/36726
697 * f95-lang.c (poplevel): Don't ever add subblocks to
698 global_binding_level.
699
700 2008-07-02 Janus Weil <janus@gcc.gnu.org>
701 Tobias Burnus <burnus@net-b.de>
702 Paul Thomas <pault@gcc.gnu.org>
703
704 PR fortran/32580
705 * gfortran.h (struct gfc_symbol): New member "proc_pointer".
706 * check.c (gfc_check_associated,gfc_check_null): Implement
707 procedure pointers.
708 * decl.c (match_procedure_decl): Ditto.
709 * expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol): Ditto.
710 * interface.c (compare_actual_formal): Ditto.
711 * match.h: Ditto.
712 * match.c (gfc_match_pointer_assignment): Ditto.
713 * parse.c (parse_interface): Ditto.
714 * primary.c (gfc_match_rvalue,match_variable): Ditto.
715 * resolve.c (resolve_fl_procedure): Ditto.
716 * symbol.c (check_conflict,gfc_add_external,gfc_add_pointer,
717 gfc_copy_attr,gen_fptr_param,build_formal_args): Ditto.
718 * trans-decl.c (get_proc_pointer_decl,gfc_get_extern_function_decl,
719 create_function_arglist): Ditto.
720 * trans-expr.c (gfc_conv_variable,gfc_conv_function_val,
721 gfc_conv_function_call,gfc_trans_pointer_assignment): Ditto.
722
723 2008-07-02 Thomas Koenig <tkoenig@gcc.gnu.org>
724
725 PR fortran/36590
726 PR fortran/36681
727 * iresolve.c (resolve_mask_arg): Don't convert mask to
728 kind=1 logical if it is of that type already.
729
730 2008-06-29 Thomas Koenig <tkoenig@gcc.gnu.org>
731
732 PR fortran/36341
733 * iresolve.c (gfc_resolve_matmul): Copy shapes
734 from arguments.
735
736 2008-06-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
737
738 * invoke.texi: Add documentation for runtime behavior of
739 -fno-range-check.
740
741 2008-06-28 Daniel Kraft <d@domob.eu>
742
743 * gfc-internals.texi (section gfc_code): Extended documentation about
744 gfc_code in the internal datastructures chapter including details about
745 how IF, DO and SELECT blocks look like and an example for how the
746 block-chaining works.
747
748 2008-06-25 Paul Thomas <pault@gcc.gnu.org>
749
750 PR fortran/36526
751 * interface.c (check_intents): Correct error where the actual
752 arg was checked for a pointer argument, rather than the formal.
753
754 2008-06-24 Paul Thomas <pault@gcc.gnu.org>
755
756 PR fortran/34371
757 * expr.c (gfc_check_assign): Change message and locus for
758 error when conform == 0.
759
760 2008-06-23 Jakub Jelinek <jakub@redhat.com>
761
762 PR fortran/36597
763 * cpp.c (cpp_define_builtins): Change _OPENMP value to 200805.
764
765 2008-06-20 Laurynas Biveinis <laurynas.biveinis@gmail.com>
766 Tobias Burnus <burnus@net-b.de>
767
768 PR fortran/34908
769 PR fortran/36276
770 * scanner.c (preprocessor_line): do not call gfc_free for
771 current_file->filename if it differs from filename.
772
773 2008-06-20 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
774
775 * arith.c (hollerith2representation): Fix for -Wc++-compat.
776 * array.c (gfc_get_constructor): Likewise.
777 * decl.c (gfc_get_data_variable, gfc_get_data_value, gfc_get_data,
778 create_enum_history, gfc_match_final_decl): Likewise.
779 * error.c (error_char): Likewise.
780 * expr.c (gfc_get_expr, gfc_copy_expr): Likewise.
781 * gfortran.h (gfc_get_charlen, gfc_get_array_spec,
782 gfc_get_component, gfc_get_formal_arglist, gfc_get_actual_arglist,
783 gfc_get_namelist, gfc_get_omp_clauses, gfc_get_interface,
784 gfc_get_common_head, gfc_get_dt_list, gfc_get_array_ref,
785 gfc_get_ref, gfc_get_equiv, gfc_get_case, gfc_get_iterator,
786 gfc_get_alloc, gfc_get_wide_string): Likewise.
787 * interface.c (count_types_test): Likewise.
788 * intrinsic.c (add_char_conversions, gfc_intrinsic_init_1):
789 Likewise.
790 * io.c (gfc_match_open, gfc_match_close, match_filepos, match_io,
791 gfc_match_inquire, gfc_match_wait): Likewise.
792 * match.c (gfc_match, match_forall_iterator): Likewise.
793 * module.c (gfc_get_pointer_info, gfc_get_use_rename, add_fixup,
794 add_true_name, parse_string, write_atom, quote_string,
795 mio_symtree_ref, mio_gmp_real, write_common_0): Likewise.
796 * options.c (gfc_post_options): Likewise.
797 * primary.c (match_integer_constant, match_hollerith_constant,
798 match_boz_constant, match_real_constant,
799 gfc_get_structure_ctor_component, gfc_match_structure_constructor): Likewise.
800 * scanner.c (gfc_widechar_to_char, add_path_to_list,
801 add_file_change, load_line, get_file, preprocessor_line,
802 load_file, unescape_filename, gfc_read_orig_filename): Likewise.
803 * simplify.c (gfc_simplify_ibits, gfc_simplify_ishft,
804 gfc_simplify_ishftc): Likewise.
805 * symbol.c (gfc_get_st_label, gfc_get_namespace, gfc_new_symtree,
806 gfc_get_uop, gfc_new_symbol, save_symbol_data, gfc_get_gsymbol):
807 Likewise.
808 * target-memory.c (gfc_target_interpret_expr): Likewise.
809 * trans-const.c (gfc_build_wide_string_const): Likewise.
810 * trans-expr.c (gfc_add_interface_mapping): Likewise.
811 * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
812 gfc_conv_intrinsic_int, gfc_conv_intrinsic_lib_function,
813 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_ctime,
814 gfc_conv_intrinsic_fdate, gfc_conv_intrinsic_ttynam,
815 gfc_conv_intrinsic_minmax, gfc_conv_intrinsic_minmax_char,
816 gfc_conv_intrinsic_ishftc, gfc_conv_intrinsic_index_scan_verify,
817 gfc_conv_intrinsic_merge, gfc_conv_intrinsic_trim): Likewise.
818 * trans.c (gfc_get_backend_locus): Likewise.
819 * trans.h (gfc_get_ss): Likewise.
820
821 2008-06-18 Daniel Kraft <d@domob.eu>
822
823 PR fortran/36517, fortran/36492
824 * array.c (gfc_resolve_character_array_constructor): Call
825 gfc_set_constant_character_len with changed length-chec argument.
826 * decl.c (gfc_set_constant_character_len): Changed array argument to
827 be a generic length-checking argument that can be used for correct
828 checking with typespec and in special cases where the should-be length
829 is different from the target length.
830 (build_struct): Call gfc_set_constant_character_len with changed length
831 checking argument and introduced additional checks for exceptional
832 conditions on invalid code.
833 (add_init_expr_to_sym), (do_parm): Call gfc_set_constant_character_len
834 with changed argument.
835 * match.h (gfc_set_constant_character_len): Changed third argument to
836 int for the should-be length rather than bool.
837
838 2008-06-17 Daniel Kraft <d@domob.eu>
839
840 PR fortran/36112
841 * array.c (gfc_resolve_character_array_constructor): Check that all
842 elements with constant character length have the same one rather than
843 fixing it if no typespec is given, emit an error if they don't. Changed
844 return type to "try" and return FAILURE for the case above.
845 (gfc_resolve_array_constructor): Removed unneeded call to
846 gfc_resolve_character_array_constructor in this function.
847 * gfortran.h (gfc_resolve_character_array_constructor): Returns try.
848 * trans-array.c (get_array_ctor_strlen): Return length of first element
849 rather than last element.
850 * resolve.c (gfc_resolve_expr): Handle FAILURE return from
851 gfc_resolve_character_array_constructor.
852
853 2008-06-17 Paul Thomas <pault@gcc.gnu.org>
854
855 PR fortran/34396
856 * resolve.c (add_dt_to_dt_list): New function.
857 (resolve_fl_derived): Call new function for pointer components
858 and when derived type resolved.
859
860 2008-06-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
861
862 PR fortran/36515
863 * trans-decl.c (gfc_generate_function_code): Add range_check to options
864 array.
865
866 2008-06-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
867
868 * gfc-internals.texi: Expand TABs, drop indentation outside examples.
869 * gfortran.texi: Likewise.
870 * intrinsic.texi: Likewise.
871 * invoke.texi: Likewise.
872
873 2008-06-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
874
875 PR fortran/35863
876 * trans-io.c (gfc_build_io_library_fndecls): Build declaration for
877 transfer_character_wide which includes passing in the character kind to
878 support wide character IO. (transfer_expr): If the kind == 4, create the
879 argument and build the call.
880 * gfortran.texi: Fix typo.
881
882 2008-06-13 Tobias Burnus <burnus@net-b.de>
883
884 PR fortran/36476
885 * decl.c (do_parm): Handle init expression for len=*.
886
887 2008-06-12 Tobias Burnus <burnus@net-b.de>
888
889 PR fortran/36462
890 * trans-intrinsic.c (gfc_conv_intrinsic_index_scan_verify):
891 Fix passing of the BACK= argument.
892
893 2008-06-10 Jerry DeLisle <jvdelisle@gcc.gnu.org>
894
895 * cpp.c: Add copyright notice.
896 * cpp.h: Add copyright notice.
897
898 2008-06-08 Janus Weil <janus@gcc.gnu.org>
899
900 PR fortran/36459
901 * decl.c (match_procedure_decl): Correctly recognize if the interface
902 is an intrinsic procedure.
903
904 2008-06-08 Tobias Burnus <burnus@net-b.de>
905
906 PR fortran/35830
907 * resolve.c (resolve_symbol): Copy more attributes for
908 PROCEDUREs with interfaces.
909
910 2008-06-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
911
912 PR fortran/36420
913 PR fortran/36422
914 * io.c (check_format): Add new error message for zero width.
915 Use new error message for FMT_A and with READ, FMT_G. Allow
916 FMT_G with WRITE except when -std=F95 and -std=F2003.
917
918 2008-06-07 Tobias Burnus <burnus@net-b.de>
919
920 PR fortran/36437
921 * intrinsic.c (add_functions): Implement c_sizeof.
922 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Do not
923 create unneeded variable in the scalar case.
924 * intrinsic.texi: Add C_SIZEOF documentation.
925
926 2008-06-06 Tobias Burnus <burnus@net-b.de>
927
928 * intrinsic.texi (BESSEL_J1): Fix BES(S)EL_J1 typo.
929
930 2008-06-06 Jakub Jelinek <jakub@redhat.com>
931
932 * scanner.c (skip_free_comments, skip_fixed_comments): Handle tabs.
933 * parse.c (next_free): Allow tab after !$omp.
934 (decode_omp_directive): Handle !$omp task, !$omp taskwait
935 and !$omp end task.
936 (case_executable): Add ST_OMP_TASKWAIT.
937 (case_exec_markers): Add ST_OMP_TASK.
938 (gfc_ascii_statement): Handle ST_OMP_TASK, ST_OMP_END_TASK and
939 ST_OMP_TASKWAIT.
940 (parse_omp_structured_block, parse_executable): Handle ST_OMP_TASK.
941 * gfortran.h (gfc_find_sym_in_expr): New prototype.
942 (gfc_statement): Add ST_OMP_TASK, ST_OMP_END_TASK and ST_OMP_TASKWAIT.
943 (gfc_omp_clauses): Add OMP_SCHED_AUTO to sched_kind,
944 OMP_DEFAULT_FIRSTPRIVATE to default_sharing. Add collapse and
945 untied fields.
946 (gfc_exec_op): Add EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
947 * f95-lang.c (LANG_HOOKS_OMP_CLAUSE_COPY_CTOR,
948 LANG_HOOKS_OMP_CLAUSE_ASSIGN_OP, LANG_HOOKS_OMP_CLAUSE_DTOR,
949 LANG_HOOKS_OMP_PRIVATE_OUTER_REF): Define.
950 * trans.h (gfc_omp_clause_default_ctor): Add another argument.
951 (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
952 gfc_omp_clause_dtor, gfc_omp_private_outer_ref): New prototypes.
953 * types.def (BT_ULONGLONG, BT_PTR_ULONGLONG,
954 BT_FN_BOOL_ULONGLONGPTR_ULONGLONGPTR,
955 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULLPTR_ULLPTR,
956 BT_FN_BOOL_BOOL_ULL_ULL_ULL_ULL_ULLPTR_ULLPTR,
957 BT_FN_VOID_PTR_PTR, BT_PTR_FN_VOID_PTR_PTR,
958 BT_FN_VOID_OMPFN_PTR_OMPCPYFN_LONG_LONG_BOOL_UINT): New.
959 (BT_BOOL): Use integer type with BOOL_TYPE_SIZE rather
960 than boolean_type_node.
961 * dump-parse-tree.c (gfc_show_omp_node): Handle EXEC_OMP_TASK,
962 EXEC_OMP_TASKWAIT, OMP_SCHED_AUTO, OMP_DEFAULT_FIRSTPRIVATE,
963 untied and collapse clauses.
964 (gfc_show_code_node): Handle EXEC_OMP_TASK and EXEC_OMP_TASKWAIT.
965 * trans.c (gfc_trans_code): Handle EXEC_OMP_TASK and
966 EXEC_OMP_TASKWAIT.
967 * st.c (gfc_free_statement): Likewise.
968 * resolve.c (gfc_resolve_blocks, resolve_code): Likewise.
969 (find_sym_in_expr): Rename to...
970 (gfc_find_sym_in_expr): ... this. No longer static.
971 (resolve_allocate_expr, resolve_ordinary_assign): Adjust caller.
972 * match.h (gfc_match_omp_task, gfc_match_omp_taskwait): New
973 prototypes.
974 * openmp.c (resolve_omp_clauses): Allow allocatable arrays in
975 firstprivate, lastprivate, reduction, copyprivate and copyin
976 clauses.
977 (omp_current_do_code): Made static.
978 (omp_current_do_collapse): New variable.
979 (gfc_resolve_omp_do_blocks): Compute omp_current_do_collapse,
980 clear omp_current_do_code and omp_current_do_collapse on return.
981 (gfc_resolve_do_iterator): Handle collapsed do loops.
982 (resolve_omp_do): Likewise, diagnose errorneous collapsed do loops.
983 (OMP_CLAUSE_COLLAPSE, OMP_CLAUSE_UNTIED): Define.
984 (gfc_match_omp_clauses): Handle default (firstprivate),
985 schedule (auto), untied and collapse (n) clauses.
986 (OMP_DO_CLAUSES): Add OMP_CLAUSE_COLLAPSE.
987 (OMP_TASK_CLAUSES): Define.
988 (gfc_match_omp_task, gfc_match_omp_taskwait): New functions.
989 * trans-openmp.c (gfc_omp_private_outer_ref): New function.
990 (gfc_omp_clause_default_ctor): Add outer argument. For allocatable
991 arrays allocate them with the bounds of the outer var if outer
992 var is allocated.
993 (gfc_omp_clause_copy_ctor, gfc_omp_clause_assign_op,
994 gfc_omp_clause_dtor): New functions.
995 (gfc_trans_omp_array_reduction): If decl is allocatable array,
996 allocate it with outer var's bounds in OMP_CLAUSE_REDUCTION_INIT
997 and deallocate it in OMP_CLAUSE_REDUCTION_MERGE.
998 (gfc_omp_predetermined_sharing): Return OMP_CLAUSE_DEFAULT_SHARED
999 for assumed-size arrays.
1000 (gfc_trans_omp_do): Add par_clauses argument. If dovar is
1001 present in lastprivate clause and do loop isn't simple,
1002 set OMP_CLAUSE_LASTPRIVATE_STMT. If dovar is present in
1003 parallel's lastprivate clause, change it to shared and add
1004 lastprivate clause to OMP_FOR_CLAUSES. Handle collapsed do loops.
1005 (gfc_trans_omp_directive): Adjust gfc_trans_omp_do callers.
1006 (gfc_trans_omp_parallel_do): Likewise. Move collapse clause to
1007 OMP_FOR from OMP_PARALLEL.
1008 (gfc_trans_omp_clauses): Handle OMP_SCHED_AUTO,
1009 OMP_DEFAULT_FIRSTPRIVATE, untied and collapse clauses.
1010 (gfc_trans_omp_task, gfc_trans_omp_taskwait): New functions.
1011 (gfc_trans_omp_directive): Handle EXEC_OMP_TASK and
1012 EXEC_OMP_TASKWAIT.
1013
1014 2008-06-04 Janus Weil <janus@gcc.gnu.org>
1015
1016 PR fortran/36322
1017 PR fortran/36275
1018 * resolve.c (resolve_symbol): Correctly copy the interface for a
1019 PROCEDURE declaration.
1020
1021 2008-06-02 Janus Weil <janus@gcc.gnu.org>
1022
1023 PR fortran/36361
1024 * symbol.c (gfc_add_allocatable,gfc_add_dimension,
1025 gfc_add_explicit_interface): Added checks.
1026 * decl.c (attr_decl1): Added missing "var_locus".
1027 * parse.c (parse_interface): Checking for errors.
1028
1029 2008-06-02 Daniel Kraft <d@domob.eu>
1030
1031 * gfortran.h: New statement-type ST_FINAL for FINAL declarations.
1032 (struct gfc_symbol): New member f2k_derived.
1033 (struct gfc_namespace): New member finalizers, for use in the above
1034 mentioned f2k_derived namespace.
1035 (struct gfc_finalizer): New type defined for finalizers linked list.
1036 * match.h (gfc_match_final_decl): New function header.
1037 * decl.c (gfc_match_derived_decl): Create f2k_derived namespace on
1038 constructed symbol node.
1039 (gfc_match_final_decl): New function to match a FINAL declaration line.
1040 * parse.c (decode_statement): match-call for keyword FINAL.
1041 (parse_derived): Parse CONTAINS section and accept FINAL statements.
1042 * resolve.c (gfc_resolve_finalizers): New function to resolve (that is
1043 in this case, check) a list of finalizer procedures.
1044 (resolve_fl_derived): Call gfc_resolve_finalizers here.
1045 * symbol.c (gfc_get_namespace): Initialize new finalizers to NULL.
1046 (gfc_free_namespace): Free finalizers list.
1047 (gfc_new_symbol): Initialize new f2k_derived to NULL.
1048 (gfc_free_symbol): Free f2k_derived namespace.
1049 (gfc_free_finalizer): New function to free a single gfc_finalizer node.
1050 (gfc_free_finalizer_list): New function to free a linked list of
1051 gfc_finalizer nodes.
1052
1053 2008-06-02 Daniel Franke <franke.daniel@gmail.com>
1054
1055 PR fortran/36375
1056 PR fortran/36377
1057 * cpp.c (gfc_cpp_init): Do not initialize builtins if
1058 processing already preprocessed input.
1059 (gfc_cpp_preprocess): Finalize output with newline.
1060
1061 2008-05-31 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1062
1063 * intrinsic.texi: Revert wrong commit.
1064
1065 2008-05-31 Steven G. Kargl <kargls@comcast.net>
1066
1067 * arith.c (gfc_arith_init_1): Remove now unused r and c variables.
1068 Cleanup numerical inquiry function initialization.
1069 (gfc_arith_done_1): Replace multiple mpfr_clear() invocations with
1070 a single mpfr_clears().
1071 (gfc_check_real_range): Re-arrange logic to eliminate multiple
1072 unnecessary branching and assignments.
1073 (gfc_arith_times): Use mpfr_clears() in preference to multiple
1074 mpfr_clear().
1075 (gfc_arith_divide): Ditto.
1076 (complex_reciprocal): Eliminate now unused variables a, re, im.
1077 Cleanup the mpfr abuse. Use mpfr_clears() in preference to
1078 multiple mpfr_clear().
1079 (complex_pow): Fix comment whitespace. Use mpfr_clears() in
1080 preference to multiple mpfr_clear().
1081 * simplify.c (gfc_simplify_and): Remove blank line.
1082 (gfc_simplify_atan2): Move error checking earlier to eliminate
1083 a now unnecessay gfc_free_expr().
1084 (gfc_simplify_bessel_j0): Remove unnecessary gfc_set_model_kind().
1085 (gfc_simplify_bessel_j1): Ditto.
1086 (gfc_simplify_bessel_jn): Ditto.
1087 (gfc_simplify_bessel_y0): Ditto.
1088 (gfc_simplify_bessel_y1): Ditto.
1089 (gfc_simplify_bessel_yn): Ditto.
1090 (only_convert_cmplx_boz): Eliminate unnecessary duplicate code, and
1091 combine nested if statement rational expressions.
1092 (gfc_simplify_cos): Use mpfr_clears() in preference to multiple
1093 mpfr_clear().
1094 (gfc_simplify_exp): Ditto.
1095 (gfc_simplify_fraction): Move gfc_set_model_kind() to after the
1096 special case of 0. Use mpfr_clears() in preference to multiple
1097 mpfr_clear().
1098 (gfc_simplify_gamma): Eliminate unnecessary gfc_set_model_kind().
1099 (gfc_simplify_lgamma): Ditto.
1100 (gfc_simplify_log10): Ditto.
1101 (gfc_simplify_log): Move gfc_set_model_kind () inside switch
1102 statement. Use mpfr_clears() in preference to multiple mpfr_clear().
1103 (gfc_simplify_mod): Eliminate now unused variables quot, iquot,
1104 and term. Simplify the mpfr magic.
1105 (gfc_simplify_modulo): Ditto.
1106 (gfc_simplify_nearest): Eliminate unnecessary gfc_set_model_kind().
1107 (gfc_simplify_scale): Use mpfr_clears() in preference to multiple
1108 mpfr_clear().
1109 (gfc_simplify_sin): Ditto
1110 (gfc_simplify_sqrt): Ditto
1111 (gfc_simplify_set_exponent): Move gfc_set_model_kind() to after the
1112 special case of 0. Use mpfr_clears() in preference to multiple
1113 mpfr_clear().
1114
1115 2008-05-29 Daniel Franke <franke.daniel@gmail.com>
1116
1117 PR target/36348
1118 * Make-lang.in (F95_OBJS): Added dependency on FORTRAN_TARGET_OBJS.
1119
1120 2008-05-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1121
1122 * scanner.c (load_line): Add first_char argument. Don't call ungetc.
1123 (gfc_read_orig_filename): Adjust call to load_line. Don't call
1124 ungetc.
1125 (load_file): Adjust call to load_line.
1126
1127 2008-05-28 Janus Weil <janus@gcc.gnu.org>
1128
1129 PR fortran/36325
1130 PR fortran/35830
1131 * interface.c (gfc_procedure_use): Enable argument checking for
1132 external procedures with explicit interface.
1133 * symbol.c (check_conflict): Fix conflict checking for externals.
1134 (copy_formal_args): Fix handling of arrays.
1135 * resolve.c (resolve_specific_f0, resolve_specific_s0): Fix handling
1136 of intrinsics.
1137 * parse.c (parse_interface): Non-abstract INTERFACE statement implies
1138 EXTERNAL attribute.
1139
1140 2008-05-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1141
1142 PR fortran/36319
1143 * intrinsic.c (gfc_convert_chartype): Don't mark conversion
1144 function as pure.
1145 * trans-array.c (gfc_trans_array_ctor_element): Divide element
1146 size by the size of one character to obtain length.
1147 * iresolve.c (gfc_resolve_cshift): Call the _char4 variant when
1148 appropriate.
1149 (gfc_resolve_eoshift): Likewise.
1150 * trans-intrinsic.c (gfc_conv_intrinsic_ctime): Minor beautification.
1151 (gfc_conv_intrinsic_fdate): Minor beautification.
1152 (gfc_conv_intrinsic_ttynam): Minor beautification.
1153 (gfc_conv_intrinsic_minmax_char): Allow all character kinds.
1154 (size_of_string_in_bytes): New function.
1155 (gfc_conv_intrinsic_size): Call size_of_string_in_bytes for
1156 character expressions.
1157 (gfc_conv_intrinsic_sizeof): Likewise.
1158 (gfc_conv_intrinsic_array_transfer): Likewise.
1159 (gfc_conv_intrinsic_trim): Allow all character kinds. Minor
1160 beautification.
1161 (gfc_conv_intrinsic_repeat): Fix comment typo.
1162 * simplify.c (gfc_convert_char_constant): Take care of conversion
1163 of array constructors.
1164
1165 2008-05-27 Tobias Burnus <burnus@net-b.de>
1166
1167 PR fortran/36316
1168 * trans-array.c (gfc_set_loop_bounds_from_array_spec):
1169 Add missing fold_convert.
1170
1171 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
1172
1173 * fortran/cpp.c (cpp_define_builtins): Remove usage of TARGET_* macros,
1174 added FIXME instead.
1175
1176 2008-05-26 Daniel Franke <franke.daniel@gmail.com>
1177
1178 PR fortran/18428
1179 * lang.opt (A, C, CC, D, E, H, P, U, cpp, d, fworking-directory,
1180 imultilib, iprefix, iquote, isysroot, isystem, nocpp, nostdinc,
1181 o, undef, v): New options.
1182 * options.c (gfc_init_options): Also initialize preprocessor
1183 options.
1184 (gfc_post_options): Also handle post-initialization of preprocessor
1185 options.
1186 (gfc_handle_option): Check if option is a preprocessor option.
1187 If yes, let gfc_cpp_handle_option() handle the option.
1188 * lang-specs.h: Reorganized to handle new options.
1189 * scanner.c (gfc_new_file): Read temporary file instead of
1190 input source if preprocessing is enabled.
1191 * f95-lang.c (gfc_init): Initialize preprocessor.
1192 (gfc_finish): Clean up preprocessor.
1193 * cpp.c: New.
1194 * cpp.h: New.
1195 * Make-lang.in: Added new objects and dependencies.
1196 * gfortran.texi: Updated section "Preprocessing and
1197 conditional compilation".
1198 * invoke.texi: Added new section "Preprocessing Options",
1199 listed and documented the preprocessing options handled
1200 by gfortran.
1201
1202 2008-05-25 Tobias Burnus <burnus@net-b.de>
1203
1204 PR fortran/32600
1205 * trans-expr.c (gfc_conv_function_call): Remove library
1206 call for c_f_pointer with scalar Fortran pointers and for
1207 c_f_procpointer.
1208
1209 2008-05-21 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1210
1211 PR fortran/36257
1212 * iresolve.c (check_charlen_present): Don't force the rank to 1.
1213
1214 2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1215
1216 PR fortran/36265
1217 * trans-expr.c (gfc_conv_string_tmp): Pick the correct type for
1218 the temporary variable.
1219
1220 2008-05-19 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1221
1222 * simplify.c (gfc_simplify_dble, gfc_simplify_real): Initialize
1223 result variable to avoid warnings.
1224
1225 2008-05-18 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1226
1227 * intrinsic.c (char_conversions, ncharconv): New static variables.
1228 (find_char_conv): New function.
1229 (add_functions): Add simplification functions for ADJUSTL and
1230 ADJUSTR. Don't check the kind of their argument. Add checking for
1231 LGE, LLE, LGT and LLT.
1232 (add_subroutines): Fix argument type for SLEEP. Fix argument name
1233 for SYSTEM.
1234 (add_char_conversions): New function.
1235 (gfc_intrinsic_init_1): Call add_char_conversions.
1236 (gfc_intrinsic_done_1): Free char_conversions.
1237 (check_arglist): Use kind == 0 as a signal that we don't want
1238 the kind value to be checked.
1239 (do_simplify): Also simplify character functions.
1240 (gfc_convert_chartype): New function
1241 * trans-array.c (gfc_trans_array_ctor_element): Don't force the
1242 use of default character type.
1243 (gfc_trans_array_constructor_value): Likewise.
1244 (get_array_ctor_var_strlen): Use integer kind to build an integer
1245 instead of a character kind!
1246 (gfc_build_constant_array_constructor): Don't force the use of
1247 default character type.
1248 (gfc_conv_loop_setup): Likewise.
1249 * trans-expr.c (gfc_conv_string_tmp): Don't force the use of
1250 default character type. Allocate enough memory for wide strings.
1251 (gfc_conv_concat_op): Make sure operand kind are the same.
1252 (string_to_single_character): Remove gfc_ prefix. Reindent.
1253 Don't force the use of default character type.
1254 (gfc_conv_scalar_char_value): Likewise.
1255 (gfc_build_compare_string): Call string_to_single_character.
1256 (fill_with_spaces): New function
1257 (gfc_trans_string_copy): Add kind arguments. Use them to deal
1258 with wide character kinds.
1259 (gfc_conv_statement_function): Whitespace fix. Call
1260 gfc_trans_string_copy with new kind arguments.
1261 (gfc_conv_substring_expr): Call gfc_build_wide_string_const
1262 instead of using gfc_widechar_to_char.
1263 (gfc_conv_string_parameter): Don't force the use of default
1264 character type.
1265 (gfc_trans_scalar_assign): Pass kind args to gfc_trans_string_copy.
1266 * intrinsic.h (gfc_check_lge_lgt_lle_llt, gfc_convert_char_constant,
1267 gfc_resolve_adjustl, gfc_resolve_adjustr): New prototypes.
1268 * decl.c (gfc_set_constant_character_len): Don't assert the
1269 existence of a single character kind.
1270 * trans-array.h (gfc_trans_string_copy): New prototype.
1271 * gfortran.h (gfc_check_character_range, gfc_convert_chartype):
1272 New prototypes.
1273 * error.c (print_wide_char_into_buffer): New function lifting
1274 code from gfc_print_wide_char. Fix order to output '\x??' instead
1275 of 'x\??'.
1276 (gfc_print_wide_char): Call print_wide_char_into_buffer.
1277 (show_locus): Call print_wide_char_into_buffer with buffer local
1278 to this function.
1279 * trans-const.c (gfc_build_wide_string_const): New function.
1280 (gfc_conv_string_init): Deal with wide characters strings
1281 constructors.
1282 (gfc_conv_constant_to_tree): Call gfc_build_wide_string_const.
1283 * trans-stmt.c (gfc_trans_label_assign): Likewise.
1284 (gfc_trans_character_select): Deal with wide strings.
1285 * expr.c (gfc_check_assign): Allow conversion between character
1286 kinds on assignment.
1287 * trans-const.h (gfc_build_wide_string_const): New prototype.
1288 * trans-types.c (gfc_get_character_type_len_for_eltype,
1289 gfc_get_character_type_len): Create too variants of the old
1290 gfc_get_character_type_len, one getting kind argument and the
1291 other one directly taking a type tree.
1292 * trans.h (gfor_fndecl_select_string_char4,
1293 gfor_fndecl_convert_char1_to_char4,
1294 gfor_fndecl_convert_char4_to_char1): New prototypes.
1295 * trans-types.h (gfc_get_character_type_len_for_eltype): New
1296 prototype.
1297 * resolve.c (resolve_operator): Exit early when kind mismatches
1298 are detected, because that makes us issue an error message later.
1299 (validate_case_label_expr): Fix wording of error message.
1300 * iresolve.c (gfc_resolve_adjustl, gfc_resolve_adjustr): New
1301 functions.
1302 (gfc_resolve_pack): Call _char4 variants of library function
1303 when dealing with wide characters.
1304 (gfc_resolve_reshape): Likewise.
1305 (gfc_resolve_spread): Likewise.
1306 (gfc_resolve_transpose): Likewise.
1307 (gfc_resolve_unpack): Likewise.
1308 * target-memory.c (size_character): Take character kind bit size
1309 correctly into account (not that it changes anything for now, but
1310 it's more generic).
1311 (gfc_encode_character): Added gfc_ prefix. Encoding each
1312 character of a string by calling native_encode_expr for the
1313 corresponding unsigned integer.
1314 (gfc_target_encode_expr): Add gfc_ prefix to encode_character.
1315 * trans-decl.c (gfc_build_intrinsic_function_decls): Build
1316 gfor_fndecl_select_string_char4, gfor_fndecl_convert_char1_to_char4
1317 and gfor_fndecl_convert_char4_to_char1.
1318 * target-memory.h (gfc_encode_character): New prototype.
1319 * arith.c (gfc_check_character_range): New function.
1320 (eval_intrinsic): Allow non-default character kinds.
1321 * check.c (gfc_check_access_func): Only allow default
1322 character kind arguments.
1323 (gfc_check_chdir): Likewise.
1324 (gfc_check_chdir_sub): Likewise.
1325 (gfc_check_chmod): Likewise.
1326 (gfc_check_chmod_sub): Likewise.
1327 (gfc_check_lge_lgt_lle_llt): New function.
1328 (gfc_check_link): Likewise.
1329 (gfc_check_link_sub): Likewise.
1330 (gfc_check_symlnk): Likewise.
1331 (gfc_check_symlnk_sub): Likewise.
1332 (gfc_check_rename): Likewise.
1333 (gfc_check_rename_sub): Likewise.
1334 (gfc_check_fgetputc_sub): Likewise.
1335 (gfc_check_fgetput_sub): Likewise.
1336 (gfc_check_stat): Likewise.
1337 (gfc_check_stat_sub): Likewise.
1338 (gfc_check_date_and_time): Likewise.
1339 (gfc_check_ctime_sub): Likewise.
1340 (gfc_check_fdate_sub): Likewise.
1341 (gfc_check_gerror): Likewise.
1342 (gfc_check_getcwd_sub): Likewise.
1343 (gfc_check_getarg): Likewise.
1344 (gfc_check_getlog): Likewise.
1345 (gfc_check_hostnm): Likewise.
1346 (gfc_check_hostnm_sub): Likewise.
1347 (gfc_check_ttynam_sub): Likewise.
1348 (gfc_check_perror): Likewise.
1349 (gfc_check_unlink): Likewise.
1350 (gfc_check_unlink_sub): Likewise.
1351 (gfc_check_system_sub): Likewise.
1352 * primary.c (got_delim): Perform correct character range checking
1353 for all kinds.
1354 * trans-intrinsic.c (gfc_conv_intrinsic_conversion): Generate
1355 calls to library functions convert_char4_to_char1 and
1356 convert_char1_to_char4 for character conversions.
1357 (gfc_conv_intrinsic_char): Allow all character kings.
1358 (gfc_conv_intrinsic_strcmp): Fix whitespace.
1359 (gfc_conv_intrinsic_repeat): Take care of all character kinds.
1360 * intrinsic.texi: For all GNU intrinsics accepting character
1361 arguments, mention that they're restricted to the default kind.
1362 * simplify.c (simplify_achar_char): New function.
1363 (gfc_simplify_achar, gfc_simplify_char): Call simplify_achar_char.
1364 gfc_simplify_ichar): Don't error out for wide characters.
1365 (gfc_convert_char_constant): New function.
1366
1367 2008-05-18 Steven G. Kargl <kargls@comcast.net>
1368
1369 PR fortran/36251
1370 * symbol.c (check_conflict): Issue errors for abuse of PUBLIC, PRIVATE,
1371 and BIND(C).
1372 * resolve.c (gfc_verify_binding_labels): Fix NULL pointer dereference.
1373
1374 2008-05-17 Tobias Burnus <burnus@net-b.de>
1375
1376 * intrinsic.texi: Correct description of GET_COMMAND_ARGUMENT
1377 and GET_ENVIRONMENT_VARIABLE; fix keyword= name for GETENV,
1378 GETLOG, GMTIME, HOSTNM, IRAND, ITIME, KILL.
1379 Move LOG_GAMMA after LOG10.
1380
1381 2008-05-17 Tobias Burnus <burnus@net-b.de>
1382
1383 * intrinsic.c (add_functions): Change FLUSH(C) to FLUSH(UNIT).
1384 * intrinsic.texi: Change INTEGER(*) to INTEGER; fix keyword= name for
1385 ABS, ADJUSTL, AINT, ALLOCATED, ANINT, ASSOCIATED, C_ASSOCIATED,
1386 CEILING, DBLE, DFLOAT, DOT_PRODUCT, DREAL, FLOAT, FLOOR, GET_COMMAND.
1387
1388 2008-05-16 Paul Thomas <pault@gcc.gnu.org>
1389
1390 PR fortran/35756
1391 PR fortran/35759
1392 * trans-stmt.c (gfc_trans_where): Tighten up the dependency
1393 check for calling gfc_trans_where_3.
1394
1395 PR fortran/35743
1396 * trans-stmt.c (gfc_trans_where_2): Set the mask size to zero
1397 if it is calculated to be negative.
1398
1399 PR fortran/35745
1400 * trans-stmt.c (gfc_trans_where_3, gfc_trans_where_assign): Set
1401 ss->where for scalar right hand sides.
1402 * trans-array.c (gfc_add_loop_ss_code): If ss->where is set do
1403 not evaluate scalars outside the loop. Clean up whitespace.
1404 * trans.h : Add a bitfield 'where' to gfc_ss.
1405
1406 2008-05-16 Tobias Burnus <burnus@net-b.de>
1407
1408 * libgfortran.h: Increase GFC_MAX_DIMENSIONS to 15.
1409 * array.c (gfc_match_array_spec): Error with -std=f2003 if rank > 7.
1410
1411 2008-04-16 Daniel Kraft <d@domob.eu>
1412
1413 PR fortran/27997
1414 * gfortran.h: Added field "length_from_typespec" to gfc_charlength.
1415 * aray.c (gfc_match_array_constructor): Added code to parse typespec.
1416 (check_element_type, check_constructor_type, gfc_check_constructor_type):
1417 Extended to support explicit typespec on constructor.
1418 (gfc_resolve_character_array_constructor): Pad strings correctly for
1419 explicit, constant character length.
1420 * trans-array.c: New static global variable "typespec_chararray_ctor"
1421 (gfc_trans_array_constructor): New code to support explicit but dynamic
1422 character lengths.
1423
1424 2008-05-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1425
1426 PR fortran/34325
1427 * decl.c (match_attr_spec): Check for matching pairs of parenthesis.
1428 * expr.c (gfc_specification_expr): Supplement the error message with the
1429 type that was found.
1430 * resolve.c (gfc_resolve_index): Likewise.
1431 * match.c (gfc_match_parens): Clarify error message with "at or before".
1432 (gfc_match_do): Check for matching pairs of parenthesis.
1433
1434 2008-05-16 Tobias Burnus <burnus@net-b.de
1435
1436 * intrinsic.texi: Write Fortran 77/90/95 instead of F77/90/95;
1437 add missing KIND argument to ACHAR and NINT; and state that
1438 the KIND argument is a F2003 extension for ACHAR, COUNT, IACHAR,
1439 ICHAR, INDEX, LBOUND, LEN, LEN_TRIM, SCAN, SIZE, UBOUND, VERIFY.
1440
1441 2008-05-16 Daniel Kraft <d@domob.eu>
1442
1443 * primary.c: New private structure "gfc_structure_ctor_component".
1444 (gfc_free_structure_ctor_component): New helper function.
1445 (gfc_match_structure_constructor): Extended largely to support named
1446 arguments and default initialization for structure constructors.
1447
1448 2008-05-15 Steven G. Kargl <kargls@comcast.net>
1449
1450 * simplify.c (gfc_simplify_dble, gfc_simplify_float,
1451 simplify_bound, gfc_simplify_nearest, gfc_simplify_real): Plug
1452 possible memory leaks.
1453 (gfc_simplify_reshape): Plug possible memory leaks and dereferencing
1454 of NULL pointers.
1455
1456 2008-05-15 Steven G. Kargl <kargls@comcast.net>
1457
1458 PR fortran/36239
1459 * simplify.c (gfc_simplify_int, gfc_simplify_intconv): Replaced hand
1460 rolled integer conversion with gfc_int2int, gfc_real2int, and
1461 gfc_complex2int.
1462 (gfc_simplify_intconv): Renamed to simplify_intconv.
1463
1464 2008-05-15 Steven G. Kargl, <kargl@comcast.net>
1465 * gfortran.dg/and_or_xor.f90: New test
1466
1467 * fortran/simplify.c (gfc_simplify_and, gfc_simplify_or,
1468 gfc_simplify_xor): Don't range check logical results.
1469
1470 2008-05-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1471
1472 * trans-expr.c (gfc_conv_concat_op): Take care of nondefault
1473 character kinds.
1474 (gfc_build_compare_string): Add kind argument and use it.
1475 (gfc_conv_statement_function): Fix indentation.
1476 * gfortran.h (gfc_character_info): New structure.
1477 (gfc_character_kinds): New array.
1478 * trans-types.c (gfc_character_kinds, gfc_character_types,
1479 gfc_pcharacter_types): New array.
1480 (gfc_init_kinds): Fill character kinds array.
1481 (validate_character): Take care of nondefault character kinds.
1482 (gfc_build_uint_type): New function.
1483 (gfc_init_types): Take care of nondefault character kinds.
1484 (gfc_get_char_type, gfc_get_pchar_type): New functions.
1485 (gfc_get_character_type_len): Use gfc_get_char_type.
1486 * trans.h (gfc_build_compare_string): Adjust prototype.
1487 (gfor_fndecl_compare_string_char4, gfor_fndecl_concat_string_char4,
1488 gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1489 gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1490 gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1491 gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4): New
1492 prototypes.
1493 * trans-types.h (gfc_get_char_type, gfc_get_pchar_type): New
1494 prototypes.
1495 * trans-decl.c (gfor_fndecl_compare_string_char4,
1496 gfor_fndecl_string_len_trim_char4, gfor_fndecl_string_index_char4,
1497 gfor_fndecl_string_scan_char4, gfor_fndecl_string_verify_char4,
1498 gfor_fndecl_string_trim_char4, gfor_fndecl_string_minmax_char4,
1499 gfor_fndecl_adjustl_char4, gfor_fndecl_adjustr_char4,
1500 gfor_fndecl_concat_string_char4): New function decls.
1501 (gfc_build_intrinsic_function_decls): Define new *_char4 function
1502 decls.
1503 * trans-intrinsic.c (gfc_conv_intrinsic_minmax_char,
1504 gfc_conv_intrinsic_len_trim, gfc_conv_intrinsic_ichar,
1505 gfc_conv_intrinsic_strcmp, gfc_conv_intrinsic_trim,
1506 gfc_conv_intrinsic_function): Deal with nondefault character kinds.
1507
1508 2008-05-15 Sa Liu <saliu@de.ibm.com>
1509
1510 * iso-c-binding.def: Add standard parameter to macro NAMED_INTCST.
1511 All existing NAMED_INTCST definitions has standard GFC_STD_F2003,
1512 c_int128_t, c_int_least128_t and c_int_fast128_t are added as
1513 GNU extensions.
1514 * iso-fortran-evn.def: Add standard parameter GFC_STD_F2003
1515 to macro NAMED_INTCST.
1516 * symbol.c (std_for_isocbinding_symbol): New helper function to
1517 return the standard that supports this isocbinding symbol.
1518 (generate_isocbinding_symbol): Do not generate GNU extension symbols
1519 if std=f2003. Add new parameter to NAMED_INTCST.
1520 * module.c (use_iso_fortran_env_module): Add new parameter to
1521 NAMED_INTCST and new field standard to struct intmod_sym.
1522 * gfortran.h: Add new parameter to NAMED_INTCST.
1523 * trans-types.c (init_c_interop_kinds): Add new parameter to
1524 NAMED_INTCST.
1525 * intrinsic.texi: Documented new types C_INT128_T, C_INT_LEASE128_T
1526 and C_INT_FAST128_T.
1527
1528 2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1529
1530 PR fortran/36059
1531 * trans-decl.c (gfc_build_dummy_array_decl): Don't repack
1532 arrays that have the TARGET attribute.
1533
1534 2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1535
1536 PR fortran/36186
1537 * simplify.c (only_convert_cmplx_boz): New function.
1538 (gfc_simplify_cmplx, gfc_simplify_complex, gfc_simplify_dcmplx):
1539 Call only_convert_cmplx_boz.
1540
1541 2008-05-14 Paul Thomas <pault@gcc.gnu.org>
1542
1543 PR fortran/36233
1544 * interface.c (compare_actual_formal): Do not check sizes if the
1545 actual is BT_PROCEDURE.
1546
1547 2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1548
1549 PR fortran/35682
1550 * trans-array.c (gfc_conv_ss_startstride): Any negative size is
1551 the same as zero size.
1552 (gfc_conv_loop_setup): Fix size calculation.
1553
1554 2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1555
1556 PR fortran/35685
1557 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Correctly
1558 handle zero-size sections.
1559
1560 2008-05-14 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1561
1562 PR fortran/36215
1563 * scanner.c (preprocessor_line): Allocate enough memory for a
1564 wide string.
1565
1566 2008-05-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1567
1568 PR fortran/36176
1569 * target-memory.c (gfc_target_expr_size): Correctly treat
1570 substrings.
1571 (gfc_target_encode_expr): Likewise.
1572 (gfc_interpret_complex): Whitespace change.
1573
1574 2008-05-11 Thomas Koenig <tkoenig@gcc.gnu.org>
1575
1576 PR fortran/35719
1577 * trans.c (gfc_call_malloc): If size equals zero, allocate one
1578 byte; don't return a null pointer.
1579
1580 2008-05-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1581
1582 PR fortran/36197
1583 * module.c (quote_string): Fix sprintf format.
1584
1585 2008-05-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1586
1587 PR fortran/36162
1588 * module.c (quote_string, unquote_string,
1589 mio_allocated_wide_string): New functions.
1590 (mio_expr): Call mio_allocated_wide_string where needed.
1591
1592 2008-05-07 Kenneth Zadeck <zadeck@naturalbridge.com>
1593
1594 * trans-decl.c (gfc_get_extern_function_decl, build_function_decl):
1595 Rename DECL_IS_PURE to DECL_PURE_P.
1596
1597 2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1598
1599 * arith.c: (gfc_arith_concat, gfc_compare_string,
1600 gfc_compare_with_Cstring, hollerith2representation,
1601 gfc_hollerith2int, gfc_hollerith2real, gfc_hollerith2complex,
1602 gfc_hollerith2character, gfc_hollerith2logical): Use wide
1603 characters for character constants.
1604 * data.c (create_character_intializer): Likewise.
1605 * decl.c (gfc_set_constant_character_len): Likewise.
1606 * dump-parse-tree.c (show_char_const): Correctly dump wide
1607 character strings.
1608 error.c (print_wide_char): Rename into gfc_print_wide_char.
1609 (show_locus): Adapt to new prototype of gfc_print_wide_char.
1610 expr.c (free_expr0): Representation is now disjunct from
1611 character string value, so we always free it.
1612 (gfc_copy_expr, find_substring_ref, gfc_simplify_expr): Adapt
1613 to wide character strings.
1614 * gfortran.h (gfc_expr): Make value.character.string a wide string.
1615 (gfc_wide_toupper, gfc_wide_strncasecmp, gfc_wide_memset,
1616 gfc_widechar_to_char, gfc_char_to_widechar): New prototypes.
1617 (gfc_get_wide_string): New macro.
1618 (gfc_print_wide_char): New prototype.
1619 * io.c (format_string): Make a wide string.
1620 (next_char, gfc_match_format, compare_to_allowed_values,
1621 gfc_match_open): Deal with wide strings.
1622 * module.c (mio_expr): Convert between wide strings and ASCII ones.
1623 * primary.c (match_hollerith_constant, match_charkind_name):
1624 Handle wide strings.
1625 * resolve.c (build_default_init_expr): Likewise.
1626 * scanner.c (gfc_wide_toupper, gfc_wide_memset,
1627 gfc_char_to_widechar): New functions.
1628 (wide_strchr, gfc_widechar_to_char, gfc_wide_strncasecmp):
1629 Changes in prototypes.
1630 (gfc_define_undef_line, load_line, preprocessor_line,
1631 include_line, load_file, gfc_read_orig_filename): Handle wide
1632 strings.
1633 * simplify.c (gfc_simplify_achar, gfc_simplify_adjustl,
1634 gfc_simplify_adjustr, gfc_simplify_char, gfc_simplify_iachar,
1635 gfc_simplify_ichar, simplify_min_max, gfc_simplify_new_line,
1636 gfc_simplify_repeat): Handle wide strings.
1637 (wide_strspn, wide_strcspn): New helper functions.
1638 (gfc_simplify_scan, gfc_simplify_trim, gfc_simplify_verify):
1639 Handle wide strings.
1640 * symbol.c (generate_isocbinding_symbol): Likewise.
1641 * target-memory.c (size_character, gfc_target_expr_size,
1642 encode_character, gfc_target_encode_expr, gfc_interpret_character,
1643 gfc_target_interpret_expr): Handle wide strings.
1644 * trans-const.c (gfc_conv_string_init): Lower wide strings to
1645 narrow ones.
1646 (gfc_conv_constant_to_tree): Likewise.
1647 * trans-expr.c (gfc_conv_substring_expr): Handle wide strings.
1648 * trans-io.c (gfc_new_nml_name_expr): Likewise.
1649 * trans-stmt.c (gfc_trans_label_assign): Likewise.
1650
1651 2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1652
1653 * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
1654 gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
1655 gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): Mark arguments
1656 with ATTRIBUTE_UNUSED.
1657
1658 2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1659
1660 * check.c (gfc_check_sizeof): Switch to ATTRIBUTE_UNUSED.
1661 * simplify.c (gfc_simplify_lgamma): Likewise.
1662
1663 2008-05-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1664
1665 * openmp.c (gfc_match_omp_eos): Use gfc_next_ascii_char and
1666 gfc_peek_ascii_char.
1667 * decl.c (gfc_match_kind_spec, gfc_match_type_spec,
1668 gfc_match_implicit_none, match_implicit_range, gfc_match_implicit,
1669 match_string_p, match_attr_spec, gfc_match_suffix,
1670 match_procedure_decl, gfc_match_entry, gfc_match_subroutine):
1671 Likewise.
1672 * gfortran.h (gfc_char_t): New type.
1673 (gfc_linebuf): Make line member a gfc_char_t.
1674 (locus): Make nextc member a gfc_char_t.
1675 (gfc_wide_is_printable, gfc_wide_is_digit, gfc_wide_fits_in_byte,
1676 gfc_wide_tolower, gfc_wide_strlen, gfc_next_ascii_char,
1677 gfc_peek_ascii_char, gfc_check_digit): New prototypes.
1678 * error.c (print_wide_char): New function.
1679 (show_locus): Use print_wide_char and gfc_wide_strlen.
1680 * io.c (next_char): Use gfc_char_t type.
1681 (match_io): Use gfc_peek_ascii_char and gfc_next_ascii_char.
1682 * match.c (gfc_match_parens, gfc_match_eos,
1683 gfc_match_small_literal_int, gfc_match_name, gfc_match_name_C,
1684 gfc_match_intrinsic_op, gfc_match_char, gfc_match_return,
1685 gfc_match_common): Likewise.
1686 * match.h (gfc_match_special_char): Change prototype.
1687 * parse.c (decode_specification_statement, decode_statement,
1688 decode_omp_directive, next_free, next_fixed): Use
1689 gfc_peek_ascii_char and gfc_next_ascii_char.
1690 * primary.c (gfc_check_digit): Change name.
1691 (match_digits, match_hollerith_constant, match_boz_constant,
1692 match_real_constant, next_string_char, match_charkind_name,
1693 match_string_constant, match_logical_constant_string,
1694 match_complex_constant, match_actual_arg, match_varspec,
1695 gfc_match_rvalue, match_variable): Use gfc_peek_ascii_char and
1696 gfc_next_ascii_char.
1697 * scanner.c (gfc_wide_fits_in_byte, wide_is_ascii,
1698 gfc_wide_is_printable, gfc_wide_tolower, gfc_wide_is_digit,
1699 gfc_wide_is_digit, wide_atoi, gfc_wide_strlen, wide_strcpy,
1700 wide_strchr, widechar_to_char, wide_strncmp, wide_strncasecmp,
1701 gfc_next_ascii_char, gfc_peek_ascii_char):
1702 New functions.
1703 (next_char, gfc_define_undef_line, skip_free_comments,
1704 gfc_next_char_literal, gfc_next_char, gfc_peek_char,
1705 gfc_error_recovery, load_line, preprocessor_line, include_line,
1706 load_file, gfc_read_orig_filename): Use gfc_char_t for source
1707 characters and the {gfc_,}wide_* functions to manipulate wide
1708 strings.
1709
1710 2008-05-06 Tobias Burnus <burnus@net-b.de>
1711
1712 PR fortran/36117
1713 * intrinsic.c (add_functions): Call gfc_simplify_bessel_*.
1714 * intrinsic.h: Add prototypes for gfc_simplify_bessel_*.
1715 * simplify.c (gfc_simplify_bessel_j0,gfc_simplify_bessel_j1,
1716 gfc_simplify_bessel_jn,gfc_simplify_bessel_y0,
1717 gfc_simplify_bessel_y1,gfc_simplify_bessel_yn): New.
1718
1719 2008-05-03 Janus Weil <jaydub66@gmail.com>
1720
1721 * misc.c (gfc_clear_ts): Set interface to NULL.
1722
1723 2008-05-03 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1724
1725 PR fortran/33268
1726 * gfortran.h: Add extra_comma pointer to gfc_dt structure. Add iokind to
1727 gfc_expr value union. Add io_kind enum to here from io.c.
1728 * io.c (gfc_free_dt): Free extra_comma.
1729 (gfc_resolve_dt): If an extra comma was encountered and io_unit is type
1730 BT_CHARACTER, resolve to format_expr and set default unit. Error if
1731 io_kind is M_WRITE. (match_io): Match the extra comma and set new
1732 pointer, extra_comma.
1733
1734 2008-05-01 Bud Davis <bdavis9659@sbcglobal.net>
1735
1736 PR35940/Fortran
1737 * simplify.c (gfc_simplify_index): Check for direction argument
1738 being a constant.
1739
1740 2008-05-01 Janus Weil <jaydub66@gmail.com>
1741
1742 * gfortran.h (struct gfc_symbol): Moving "interface" member to
1743 gfc_typespec (plus fixing a small docu error).
1744 * interface.c (gfc_procedure_use): Ditto.
1745 * decl.c (match_procedure_decl): Ditto.
1746 * resolve.c (resolve_specific_f0,
1747 resolve_specific_f0, resolve_symbol): Ditto.
1748
1749 2008-04-30 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1750
1751 * intrinsic.c (add_functions): Add SELECTED_CHAR_KIND intrinsic.
1752 * intrinsic.h (gfc_check_selected_char_kind,
1753 gfc_simplify_selected_char_kind): New prototypes.
1754 * gfortran.h (gfc_isym_id): Add GFC_ISYM_SC_KIND.
1755 * trans.h (gfor_fndecl_sc_kind): New function decl.
1756 * trans-decl.c (gfor_fndecl_sc_kind): Build new decl.
1757 * arith.c (gfc_compare_with_Cstring): New function.
1758 * arith.h (gfc_compare_with_Cstring): New prototype.
1759 * check.c (gfc_check_selected_char_kind): New function.
1760 * primary.c (match_string_constant, match_kind_param): Mark
1761 symbols used as literal constant kind param as referenced.
1762 * trans-intrinsic.c (gfc_conv_intrinsic_sc_kind): New function.
1763 (gfc_conv_intrinsic_function): Call gfc_conv_intrinsic_sc_kind.
1764 * intrinsic.texi (SELECTED_CHAR_KIND): Document new intrinsic.
1765 * simplify.c (gfc_simplify_selected_char_kind): New function.
1766
1767 2008-04-28 Paul Thomas <pault@gcc.gnu.org>
1768
1769 PR fortran/35997
1770 * module.c (find_symbol): Do not return a result for a symbol
1771 that has been renamed in another module.
1772
1773 2008-04-26 George Helffrich <george@gcc.gnu.org>
1774
1775 PR fortran/35892
1776 PR fortran/35154
1777 * trans-common.c (create_common): Add decl to function
1778 chain (if inside one) to preserve identifier scope in debug output.
1779
1780 2008-04-25 Jan Hubicka <jh@suse.cz>
1781
1782 * trans-decl.c (trans_function_start): Update.
1783
1784 2008-04-25 Tobias Burnus <burnus@net-b.de>
1785 Daniel Franke <franke.daniel@gmail.com>
1786
1787 PR fortran/35156
1788 * gfortranspec.c (lang_specific_driver): Deprecate
1789 -M option; fix ICE when "-M" is last argument and
1790 make "-M<dir>" work.
1791 * options.c (gfc_handle_module_path_options):
1792 Use -J instead of -M in error messages.
1793 * invoke.texi: Mark -M as depecated.
1794
1795 2008-04-23 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1796 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1797
1798 PR fortran/35994
1799 * trans-instrinsic.c (gfc_conv_intrinsic_minmaxloc): Correctly adjust
1800 loop counter offset.
1801
1802 2008-04-23 Paolo Bonzini <bonzini@gnu.org>
1803
1804 * trans-expr.c (gfc_conv_structure): Don't set TREE_INVARIANT.
1805 * trans-array.c (gfc_build_null_descriptor): Don't set TREE_INVARIANT.
1806 (gfc_trans_array_constructor_value): Don't set TREE_INVARIANT.
1807 (gfc_build_constant_array_constructor): Don't set TREE_INVARIANT.
1808 (gfc_conv_array_initializer): Don't set TREE_INVARIANT.
1809 * trans-common.c (get_init_field): Don't set TREE_INVARIANT.
1810 (create_common): Don't set TREE_INVARIANT.
1811 * trans-stmt.c (gfc_trans_character_select): Don't set TREE_INVARIANT.
1812 * trans-decl.c (gfc_generate_function_code): Don't set TREE_INVARIANT.
1813
1814 2008-04-21 Steve Ellcey <sje@cup.hp.com>
1815
1816 * f95-lang.c (gfc_init_decl_processing): use ptr_mode instead of Pmode.
1817
1818 2008-04-21 Daniel Franke <franke.daniel@gmail.com>
1819
1820 PR fortran/35019
1821 * gfortranspec.c (lookup_option): Properly handle separated arguments
1822 in -J option, print missing argument message when necessary.
1823
1824 2008-04-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1825
1826 PR fortran/35882
1827 * scanner.c (skip_fixed_comments): Update continue_line when comment is
1828 detected. (gfc_next_char_literal): Likewise.
1829
1830 2008-04-19 Paul Thomas <pault@gcc.gnu.org>
1831
1832 PR fortran/35944
1833 PR fortran/35946
1834 PR fortran/35947
1835 * trans_array.c (gfc_trans_array_constructor): Temporarily
1836 realign loop, if loop->from is not zero, before creating
1837 the temporary array and provide an offset.
1838
1839 PR fortran/35959
1840 * trans-decl.c (gfc_init_default_dt): Add gfc_ prefix to name
1841 and allow for NULL body. Change all references from
1842 init_default_dt to gfc_init_default_dt.
1843 * trans.h : Add prototype for gfc_init_default_dt.
1844 * trans-array.c (gfc_trans_deferred_vars): After nullification
1845 call gfc_init_default_dt for derived types with allocatable
1846 components.
1847
1848 2008-04-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1849
1850 PR fortran/35892
1851 * trans-common.c (create_common): Revert patch causing regression.
1852
1853 2008-04-16 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1854
1855 PR fortran/35724
1856 * iresolve.c (gfc_resolve_eoshift): Check for NULL symtree in test for
1857 optional argument attribute.
1858
1859 2008-04-16 Paul Thomas <pault@gcc.gnu.org>
1860
1861 PR fortran/35932
1862 * trans-intrinsic.c (gfc_conv_intrinsic_char): Even though KIND
1863 is not used, the argument must be converted.
1864
1865 2008-04-16 Jakub Jelinek <jakub@redhat.com>
1866
1867 PR target/35662
1868 * f95-lang.c (gfc_init_builtin_functions): Make sure
1869 BUILT_IN_SINCOS{,F,L} types aren't varargs.
1870
1871 2008-04-15 Paul Thomas <pault@gcc.gnu.org>
1872
1873 PR fortran/35864
1874 * expr.c (scalarize_intrinsic_call): Reorder identification of
1875 array argument so that if one is not found a segfault does not
1876 occur. Return FAILURE if all scalar arguments.
1877
1878 2008-04-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1879 Tobias Burnus <burnus@net-b.de>
1880
1881 PR fortran/35882
1882 * options.c (gfc_init_options): Set the default maximum continuation
1883 lines to 255 for both free and fixed form source for warnings.
1884 (gfc_handle_option): Set -std=f95 fixed form max continuations to 19 and
1885 the -std=f95 free form max continuations to 39 for warnings.
1886 * scanner.c (gfc_next_char_literal): Adjust the current_line number only
1887 if it is less than the current locus.
1888
1889 2008-04-07 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1890
1891 PR fortran/25829 28655
1892 * io.c (io_tag): Add new tags for decimal, encoding, asynchronous,
1893 round, sign, and id. (match_open_element): Match new tags.
1894 (gfc_resolve_open): Resolve new tags. (gfc_match_open): Enable encoding
1895 for DEFAULT only. Update error messages. (match_dt_element): Fix match
1896 tag for asynchronous. Update error messages. (gfc_free_inquire): Free
1897 new expressions. (match_inquire_element): Match new tags.
1898 (gfc_match_inquire): Add constraint for ID and PENDING.
1899 (gfc_resolve_inquire): Resolve new tags.
1900 * trans-io.c (gfc_trans_inquire): Clean up whitespace and fix setting of
1901 mask for ID parameter.
1902 * ioparm.def: Fix order of parameters for pending, round, and sign.
1903 NOTE: These must line up with the definitions in libgfortran/io/io.h. or
1904 things don't work.
1905
1906 2008-04-06 Paul Thomas <pault@gcc.gnu.org>
1907
1908 PR fortran/35780
1909 * expr.c (scalarize_intrinsic_call): Identify which argument is
1910 an array and use that as the template.
1911 (check_init_expr): Remove tests that first argument is an array
1912 in the call to scalarize_intrinsic_call.
1913
1914 2008-04-06 Tobias Schlüter <tobi@gcc.gnu.org>
1915
1916 PR fortran/35832
1917 * io.c (io_tag): Add field 'value'. Split 'spec' field in
1918 existing io_tags.
1919 (match_etag, match_vtag, match_ltag): Split parsing in two steps
1920 to give better error messages.
1921
1922 2008-04-06 Tobias Burnus <burnus@net-b.de>
1923
1924 * io.c (check_io_constraints): Add constrains. ID= requires
1925 asynchronous= and asynchronous= must be init expression.
1926
1927 2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1928
1929 * f95-lang.c: Set LANG_HOOKS_NAME to "GNU Fortran".
1930
1931 2008-04-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1932
1933 * dump-parse-tree.c: Use fprintf, fputs and fputc instead of
1934 gfc_status and gfc_status_char. Remove gfc_ prefix of the gfc_show_*
1935 functions and make them static. Add new gfc_dump_parse_tree
1936 function.
1937 * gfortran.h (gfc_option_t): Rename verbose into dump_parse_tree.
1938 (gfc_status, gfc_status_char): Delete prototypes.
1939 * error.c (gfc_status, gfc_status_char): Remove functions.
1940 * scanner.c (gfc_new_file): Use printf instead of gfc_status.
1941 * options.c (gfc_init_options): Rename verbose into dump_parse_tree.
1942 (gfc_handle_module_path_options): Use gfc_fatal_error instead of
1943 gfc_status and exit.
1944 (gfc_handle_option): Rename verbose into dump_parse_tree.
1945 * parse.c (gfc_parse_file): Use gfc_dump_parse_tree.
1946
1947 2008-04-05 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1948 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1949
1950 PR fortran/25829 28655
1951 * dump-parse-tree.c (gfc_show_code_node): Show new I/O parameters.
1952 * gfortran.h (gfc_statement): Add ST_WAIT enumerator.
1953 (gfc_open): Add pointers for decimal, encoding, round, sign,
1954 asynchronous. (gfc_inquire): Add pointers for asynchronous, decimal,
1955 encoding, pending, round, sign, size, id.
1956 (gfc_wait): New typedef struct. (gfc_dt): Add pointers for id, pos,
1957 asynchronous, blank, decimal, delim, pad, round, sign.
1958 (gfc_exec_op): Add EXEC_WAIT enumerator. (gfc_code): Add pointer for
1959 wait. (gfc_free_wait), (gfc_resolve_wait): New function prototypes.
1960 * trans-stmt.h (gfc_trans_wait): New function prototype.
1961 * trans.c (gfc_trans_code): Add case for EXEC_WAIT.
1962 * io.c (io_tag): Add new tags for DECIMAL, ENCODING, ROUND, SIGN,
1963 ASYCHRONOUS, ID. (match_open_element): Add matchers for new tags.
1964 (gfc_free_open): Free new pointers. (gfc_resolve_open): Resolve new
1965 tags. (gfc_resolve_open): Remove comment around check for allowed
1966 values and ASYNCHRONOUS, update it. Likewise for DECIMAL, ENCODING,
1967 ROUND, and SIGN. (match_dt_element): Add matching for new tags.
1968 (gfc_free_wait): New function. (gfc_resolve_wait): New function.
1969 (match_wait_element): New function. (gfc_match_wait): New function.
1970 * resolve.c (gfc_resolve_blocks): Add case for EXEC_WAIT.
1971 (resolve_code): Add case for EXEC_WAIT.
1972 * st.c (gfc_free_statement): Add case for EXEC_WAIT.
1973 * trans-io.c (ioparam_type): Add IOPARM_ptype_wait. (gfc_st_parameter):
1974 Add "wait" entry. (iocall): Add IOCALL_WAIT enumerator.
1975 (gfc_build_io_library_fndecls): Add function declaration for st_wait.
1976 (gfc_trans_open): Add mask bits for new I/O tags.
1977 (gfc_trans_inquire): Add mask bits for new I/O tags.
1978 (gfc_trans_wait): New translation function.
1979 (build_dt): Add mask bits for new I/O tags.
1980 * match.c (gfc_match_if) Add matcher for "wait".
1981 * match.h (gfc_match_wait): Prototype for new function.
1982 * ioparm.def: Add new I/O parameter definitions.
1983 * parse.c (decode_statement): Add match for "wait" statement.
1984 (next_statement): Add case for ST_WAIT. (gfc_ascii_statement): Same.
1985
1986 2008-04-03 Jakub Jelinek <jakub@redhat.com>
1987
1988 PR fortran/35786
1989 * openmp.c (resolve_omp_clauses): Diagnose if a clause symbol
1990 isn't a variable.
1991
1992 2008-04-03 Tom Tromey <tromey@redhat.com>
1993
1994 * Make-lang.in (fortran_OBJS): New variable.
1995
1996 2008-04-03 Paolo Bonzini <bonzini@gnu.org>
1997
1998 * f95-lang.c (insert_block): Kill.
1999
2000 2008-04-01 George Helffrich <george@gcc.gnu.org>
2001
2002 PR fortran/35154, fortran/23057
2003 * trans-common.c (create_common): Add decl to function
2004 chain to preserve identifier scope in debug output.
2005
2006 2008-04-01 Joseph Myers <joseph@codesourcery.com>
2007
2008 * gfortran.texi: Include gpl_v3.texi instead of gpl.texi
2009 * Make-lang.in (GFORTRAN_TEXI): Include gpl_v3.texi instead of
2010 gpl.texi.
2011
2012 2008-03-30 Paul Thomas <pault@gcc.gnu.org>
2013
2014 PR fortran/35740
2015 * resolve.c (resolve_function, resolve_call): If the procedure
2016 is elemental do not look for noncopying intrinsics.
2017
2018 2008-03-29 Paul Thomas <pault@gcc.gnu.org>
2019
2020 PR fortran/35698
2021 * trans-array.c (gfc_array_init_size): Set 'size' zero if
2022 negative in one dimension.
2023
2024 PR fortran/35702
2025 * trans-expr.c (gfc_trans_string_copy): Only assign a char
2026 directly if the lhs and rhs types are the same.
2027
2028 2008-03-28 Daniel Franke <franke.daniel@gmail.com>
2029 Paul Richard Thomas <paul.richard.thomas@gmail.com>
2030
2031 PR fortran/34714
2032 * primary.c (match_variable): Improved matching of function
2033 result variables.
2034 * resolve.c (resolve_allocate_deallocate): Removed checks if
2035 the actual argument for STAT is a variable.
2036
2037 2008-03-28 Tobias Burnus <burnus@net-b.de>
2038
2039 * symbol.c (gfc_get_default_type): Fix error message; option
2040 -fallow_leading_underscore should be -fallow-leading-underscore
2041
2042 2008-03-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2043
2044 PR fortran/35724
2045 * iresolve.c (gfc_resolve_cshift): Check for NULL symtree in test for
2046 optional argument attribute.
2047
2048 2008-03-27 Tom Tromey <tromey@redhat.com>
2049
2050 * Make-lang.in: Revert automatic dependency patch.
2051
2052 2008-03-25 Tom Tromey <tromey@redhat.com>
2053
2054 * Make-lang.in: Remove .o targets.
2055 (fortran_OBJS): New variable.
2056 (fortran/gfortranspec.o): Move to fortran/. Reduce to variable
2057 setting.
2058 (GFORTRAN_D_OBJS): Update.
2059 (GFORTRAN_TRANS_DEPS): Remove.
2060
2061 2008-03-24 Paul Thomas <pault@gcc.gnu.org>
2062
2063 PR fortran/34813
2064 * resolve.c (resolve_structure_cons): It is an error to assign
2065 NULL to anything other than a pointer or allocatable component.
2066
2067 PR fortran/33295
2068 * resolve.c (resolve_symbol): If the symbol is a derived type,
2069 resolve the derived type. If the symbol is a derived type
2070 function, ensure that the derived type is visible in the same
2071 namespace as the function.
2072
2073 2008-03-23 Tobias Schlüter <tobi@gcc.gnu.org>
2074
2075 * trans.h: Use fold_build in build1_v, build2_v and build3_v
2076 macros.
2077 * trans-openmp.c (gfc_trans_omp_critical, gfc_trans_omp_single):
2078 Don't use build2_v macro.
2079
2080 2008-03-19 Daniel Franke <franke.daniel@gmail.com>
2081
2082 PR fortran/35152
2083 * interface.c (gfc_procedure_use): Check for keyworded arguments in
2084 procedures without explicit interfaces.
2085
2086 2008-03-16 Paul Thomas <pault@gcc.gnu.org>
2087
2088 PR fortran/35470
2089 * resolve.c (check_assumed_size_reference): Only visit the
2090 first reference and look directly at the highest dimension.
2091
2092 2008-03-15 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2093
2094 PR fortran/35184
2095 * trans-array.c (gfc_conv_array_index_offset): Remove unnecessary
2096 assert.
2097
2098 2008-03-15 Daniel Franke <franke.daniel@gmail.com>
2099
2100 PR fortran/35584
2101 * resolve.c (resolve_branch): Less strict and pessimistic warning
2102 message.
2103
2104 2008-03-11 Paolo Bonzini <bonzini@gnu.org>
2105
2106 * f95-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK): Delete.
2107 (gfc_be_parse_file): Call clear_binding_stack from here.
2108 (gfc_clear_binding_stack): Rename to clear_binding_stack.
2109
2110 2008-03-09 Paul Thomas <pault@gcc.gnu.org>
2111
2112 PR fortran/35474
2113 * module.c (mio_symtree_ref): After providing a symbol for a
2114 missing equivalence member, resolve and NULL the fixups.
2115
2116 2008-03-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2117
2118 * invoke.texi (Error and Warning Options): Document
2119 -Wline-truncation.
2120
2121 2008-03-08 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2122
2123 PR fortran/34956
2124 * trans-array.c (gfc_conv_ss_startstride): Fix the logic to avoid
2125 checking bounds of absent optional arguments.
2126
2127 2008-03-06 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2128
2129 PR fortran/33197
2130 * intrinsic.c (add_functions): Add simplification routines for
2131 ERF, DERF, ERFC and DERFC.
2132 * decl.c (gfc_match_suffix, gfc_match_subroutine): Change GNU
2133 extensions into Fortran 2008 features.
2134 * intrinsic.h (gfc_simplify_erf, gfc_simplify_erfc): New
2135 prototypes.
2136 * simplify.c (gfc_simplify_erf, gfc_simplify_erfc): New functions.
2137
2138 2008-03-03 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2139
2140 PR fortran/33197
2141 * intrinsic.c (add_functions): Modify intrinsics ACOSH, ASINH,
2142 ATANH, ERF, ERFC and GAMMA. Add intrinsics BESSEL_{J,Y}{0,1,N},
2143 ERFC_SCALED, LOG_GAMMA and HYPOT.
2144 * intrinsic.h (gfc_check_hypot, gfc_simplify_hypot,
2145 gfc_resolve_hypot): New prototypes.
2146 * mathbuiltins.def: Add HYPOT builtin. Make complex versions of
2147 ACOSH, ASINH and ATANH available.
2148 * gfortran.h (GFC_ISYM_ERFC_SCALED, GFC_ISYM_HYPOT): New values.
2149 * lang.opt: Add -std=f2008 option.
2150 * libgfortran.h: Define GFC_STD_F2008.
2151 * lang-specs.h: Add .f08 and .F08 file suffixes.
2152 * iresolve.c (gfc_resolve_hypot): New function.
2153 * parse.c (parse_contained): Allow empty CONTAINS for Fortran 2008.
2154 * check.c (gfc_check_hypot): New function.
2155 * trans-intrinsic.c (gfc_intrinsic_map): Define ERFC_SCALE builtin.
2156 * options.c (set_default_std_flags): Allow Fortran 2008 by default.
2157 (form_from_filename): Add .f08 suffix.
2158 (gfc_handle_option): Handle -std=f2008 option.
2159 * simplify.c (gfc_simplify_hypot): New function.
2160 * gfortran.texi: Document Fortran 2008 status and file extensions.
2161 * intrinsic.texi: Document new BESSEL_{J,Y}{0,1,N} intrinsics,
2162 as well as HYPOT and ERFC_SCALED. Update documentation of ERF,
2163 ERFC, GAMMA, LGAMMA, ASINH, ACOSH and ATANH.
2164 * invoke.texi: Document the new -std=f2008 option.
2165
2166 2008-03-02 Jakub Jelinek <jakub@redhat.com>
2167
2168 * gfortranspec.c (lang_specific_driver): Update copyright notice
2169 dates.
2170
2171 2008-02-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2172
2173 PR fortran/35059
2174 * expr.c (find_array_element): Modify traversing the constructor to
2175 avoid trying to access NULL memory pointed to by next for the
2176 last element. (find_array_section): Exit while loop if cons->next is
2177 NULL.
2178 * trans-expr.c (gfc_conv_scalar_char_value): Initialize gfc_typespec.
2179 (gfc_conv_function_call): Same.
2180 * decl.c (gfc_match_implicit): Same.
2181 * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Same.
2182
2183 2008-02-28 Daniel Franke <franke.daniel@gmail.com>
2184
2185 PR fortran/31463
2186 PR fortran/33950
2187 PR fortran/34296
2188 * lang.opt: Added -Wreturn-type.
2189 * options.c (gfc_handle_option): Recognize -Wreturn-type.
2190 * trans-decl.c (gfc_trans_deferred_vars): Emit warnings for funtions
2191 where the result value is not set.
2192 (gfc_generate_function_code): Likewise.
2193 (generate_local_decl): Emit warnings for funtions whose RESULT
2194 variable is not set.
2195
2196 2008-02-28 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2197
2198 PR fortran/34868
2199 * trans-expr.c (gfc_conv_variable): Don't build indirect
2200 references when explicit interface is mandated.
2201 * resolve.c (resolve_formal_arglist): Set attr.always_explicit
2202 on the result symbol as well as the procedure symbol.
2203
2204 2008-02-27 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2205
2206 PR fortran/33387
2207 * trans.h: Remove prototypes for gfor_fndecl_math_exponent4,
2208 gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2209 gfor_fndecl_math_exponent16.
2210 * f95-lang.c (build_builtin_fntypes): Add new function types.
2211 (gfc_init_builtin_functions): Add new builtins for nextafter,
2212 frexp, ldexp, fabs, scalbn and inf.
2213 * iresolve.c (gfc_resolve_rrspacing): Don't add hidden arguments.
2214 (gfc_resolve_scale): Don't convert type of second argument.
2215 (gfc_resolve_set_exponent): Likewise.
2216 (gfc_resolve_size): Don't add hidden arguments.
2217 * trans-decl.c: Remove gfor_fndecl_math_exponent4,
2218 gfor_fndecl_math_exponent8, gfor_fndecl_math_exponent10 and
2219 gfor_fndecl_math_exponent16.
2220 * trans-intrinsic.c (gfc_intrinsic_map): Remove intrinsics
2221 for scalbn, fraction, nearest, rrspacing, set_exponent and
2222 spacing.
2223 (gfc_conv_intrinsic_exponent): Directly call frexp.
2224 (gfc_conv_intrinsic_fraction, gfc_conv_intrinsic_nearest,
2225 gfc_conv_intrinsic_spacing, gfc_conv_intrinsic_rrspacing,
2226 gfc_conv_intrinsic_scale, gfc_conv_intrinsic_set_exponent): New
2227 functions.
2228 (gfc_conv_intrinsic_function): Use the new functions above.
2229
2230 2008-02-26 Tobias Burnus <burnus@net-b.de>
2231
2232 PR fortran/35033
2233 * interface.c (check_operator_interface): Show better line for error
2234 messages; fix constrains for user-defined assignment operators.
2235 (gfc_extend_assign): Fix constrains for user-defined assignment
2236 operators.
2237
2238 2008-02-26 Tom Tromey <tromey@redhat.com>
2239
2240 * trans-io.c (set_error_locus): Remove old location code.
2241 * trans-decl.c (gfc_set_decl_location): Remove old location code.
2242 * f95-lang.c (gfc_init): Remove test of USE_MAPPED_LOCATION.
2243 * scanner.c (gfc_gobble_whitespace): Remove old location code.
2244 (get_file): Likewise.
2245 (preprocessor_line): Likewise.
2246 (load_file): Likewise.
2247 (gfc_new_file): Likewise.
2248 * trans.c (gfc_trans_runtime_check): Remove old location code.
2249 (gfc_get_backend_locus): Likewise.
2250 (gfc_set_backend_locus): Likewise.
2251 * data.c (gfc_assign_data_value): Remove old location code.
2252 * error.c (show_locus): Remove old location code.
2253 * gfortran.h (gfc_linebuf): Remove old location code.
2254 (gfc_linebuf_linenum): Remove old-location variant.
2255
2256 2008-02-25 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2257
2258 PR fortran/34729
2259 * trans-const.c (gfc_build_string_const): Don't call gettext.
2260 (gfc_build_localized_string_const): New function.
2261 * trans-const.h (gfc_build_localized_string_const): New prototype.
2262 * trans.c (gfc_trans_runtime_check): Use
2263 gfc_build_localized_string_const instead of gfc_build_string_const.
2264 (gfc_call_malloc): Likewise.
2265 (gfc_allocate_with_status): Likewise.
2266 (gfc_allocate_array_with_status): Likewise.
2267 (gfc_deallocate_with_status): Likewise.
2268 (gfc_call_realloc): Likewise.
2269 * trans-io.c (gfc_trans_io_runtime_check): Likewise.
2270
2271 2008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
2272
2273 * arith.c: Update copyright years.
2274 * arith.h: Likewise.
2275 * array.c: Likewise.
2276 * bbt.c: Likewise.
2277 * check.c: Likewise.
2278 * data.c: Likewise.
2279 * data.h: Likewise.
2280 * decl.c: Likewise.
2281 * dependency.c: Likewise.
2282 * dependency.h: Likewise.
2283 * dump-parse-tree.c: Likewise.
2284 * error.c: Likewise.
2285 * expr.c: Likewise.
2286 * gfc-internals.texi: Likewise.
2287 * gfortran.h: Likewise.
2288 * gfortran.texi: Likewise.
2289 * gfortranspec.c: Likewise.
2290 * interface.c: Likewise.
2291 * intrinsic.c: Likewise.
2292 * intrinsic.h: Likewise.
2293 * intrinsic.texi: Likewise.
2294 * invoke.texi: Likewise.
2295 * io.c: Likewise.
2296 * iresolve.c: Likewise.
2297 * iso-c-binding.def: Likewise.
2298 * iso-fortran-env.def: Likewise.
2299 * lang-specs.h: Likewise.
2300 * lang.opt: Likewise.
2301 * libgfortran.h: Likewise.
2302 * match.c: Likewise.
2303 * match.h: Likewise.
2304 * matchexp.c: Likewise.
2305 * misc.c: Likewise.
2306 * module.c: Likewise.
2307 * openmp.c: Likewise.
2308 * options.c: Likewise.
2309 * parse.c: Likewise.
2310 * parse.h: Likewise.
2311 * primary.c: Likewise.
2312 * resolve.c: Likewise.
2313 * scanner.c: Likewise.
2314 * simplify.c: Likewise.
2315 * st.c: Likewise.
2316 * symbol.c: Likewise.
2317 * target-memory.c: Likewise.
2318 * target-memory.h: Likewise.
2319 * trans-array.h: Likewise.
2320 * trans-const.h: Likewise.
2321 * trans-stmt.h: Likewise.
2322 * trans-types.c: Likewise.
2323 * trans-types.h: Likewise.
2324 * types.def: Likewise.
2325
2326 2008-02-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2327
2328 PR fortran/35223
2329 * simplify.c (gfc_simplify_ibclr), (gfc_simplify_ibits),
2330 (gfc_simplify_ibset): Remove call to range_check.
2331 (simplify_cmplx), (gfc_simplify_dble), (gfc_simplify_float)
2332 (gfc_simplify_real): Add call gfc_clear_ts to initialize the
2333 temporary gfc_typspec variable.
2334
2335 2008-02-24 Tobias Schlüter <tobi@gcc.gnu.org>
2336
2337 * trans-array.c (gfc_conv_descriptor_data_get,
2338 gfc_conv_descriptor_data_set_internal,
2339 gfc_conv_descriptor_data_addr, gfc_conv_descriptor_offset,
2340 gfc_conv_descriptor_dtype, gfc_conv_descriptor_dimension,
2341 gfc_conv_descriptor_stride, gfc_conv_descriptor_lbound,
2342 gfc_conv_descriptor_ubound, gfc_trans_create_temp_array,
2343 gfc_conv_array_transpose, gfc_grow_array,
2344 gfc_trans_array_constructor_subarray,
2345 gfc_trans_array_constructor_value, gfc_trans_scalarized_loop_end,
2346 gfc_array_init_size, gfc_array_allocate, gfc_array_deallocate,
2347 gfc_conv_array_initializer, gfc_trans_array_bounds,
2348 gfc_trans_auto_array_allocation, gfc_trans_dummy_array_bias,
2349 gfc_get_dataptr_offset, gfc_conv_array_parameter,
2350 gfc_trans_dealloc_allocated, get_full_array_size,
2351 gfc_duplicate_allocatable, structure_alloc_comps): Use fold_buildN
2352 instead of buildN.
2353 * trans-expr.c (gfc_conv_expr_present, gfc_conv_missing_dummy,
2354 gfc_conv_component_ref, gfc_conv_cst_int_power,
2355 gfc_conv_function_call, gfc_trans_structur_assign): Likewise.
2356 * trans-common.c (create_common): Likewise.
2357 * trans-openmp.c (gfc_trans_omp_atomic, gfc_trans_omp_do):
2358 Likewise.
2359 * trans-const.c (gfc_conv_constant_to_tree): Likewise.
2360 * trans-stmt.c (gfc_trans_goto, gfc_trans_return, gfc_trans_do,
2361 gfc_trans_integer_select, gfc_trans_character_select,
2362 gfc_trans_forall_loop, compute_overall_iter_number,
2363 gfc_trans_forall_1, gfc_evaluate_where_mask, gfc_trans_allocate,
2364 gfc_trans_deallocate): Likewise.
2365 * trans.c (gfc_build_addr_expr, gfc_trans_runtime_check,
2366 gfc_allocate_with_status, gfc_allocate_array_with_status,
2367 gfc_deallocate_with_status): Likewise.
2368 * f95-lang.c (gfc_truthvalue_conversion): Likewise.
2369 * trans-io.c (set_parameter_const, set_parameter_value,
2370 set_parameter_ref, set_string, set_internal_unit, io_result,
2371 set_error_locus, nml_get_addr_expr, transfer_expr): Likewise.
2372 * trans-decl.c (gfc_build_qualified_array, build_entry_thunks,
2373 gfc_get_fake_result_decl, gfc_trans_auto_character_variable,
2374 gfc_generate_function_code): Likewise.
2375 * convert.c (convert): Likewise.
2376 * trans-intrinsic.c (gfc_conv_intrinsic_conversion,
2377 build_fixbound_expr, build_fix_expr, gfc_conv_intrinsic_aint,
2378 gfc_conv_intrinsic_int, gfc_conv_intrinsic_imagpart,
2379 gfc_conv_intrinsic_conjg, gfc_conv_intrinsic_abs,
2380 gfc_conv_intrinsic_cmplx, gfc_conv_intrinsic_mod,
2381 gfc_conv_intrinsic_dim, gfc_conv_intrinsic_dprod,
2382 gfc_conv_intrinsic_ctime, gfc_conv_intrinsic_fdate,
2383 gfc_conv_intrinsic_ttynam, gfc_conv_intrinsic_minmax,
2384 gfc_conv_intrinsic_minmax_char, gfc_conv_intrinsic_count,
2385 gfc_conv_intrinsic_arith, gfc_conv_intrinsic_dot_product,
2386 gfc_conv_intrinsic_minmaxloc, gfc_conv_intrinsic_minmaxval,
2387 gfc_conv_intrinsic_btest, gfc_conv_intrinsic_not,
2388 gfc_conv_intrinsic_ibits, gfc_conv_intrinsic_ishft,
2389 gfc_conv_intrinsic_ichar, gfc_conv_intrinsic_size,
2390 gfc_conv_intrinsic_array_transfer, gfc_conv_intrinsic_transfer,
2391 gfc_conv_allocated, gfc_conv_associated, gfc_conv_intrinsic_trim,
2392 gfc_conv_intrinsic_repeat): Likewise.
2393
2394 2008-02-23 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2395
2396 PR target/25477
2397 * trans-expr.c (gfc_conv_power_op): Use BUILT_IN_CPOW{F,,L}.
2398 * f95-lang.c (gfc_init_builtin_functions): Define BUILT_IN_CPOW{F,,L}.
2399 * trans.h (gfor_fndecl_math_cpow, gfor_fndecl_math_cpowf,
2400 gfor_fndecl_math_cpowl10, gfor_fndecl_math_cpowl16): Remove.
2401 * trans-decl.c: Likewise.
2402
2403 2008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2404
2405 PR fortran/35059
2406 * expr.c (find_array_element): Modify traversing the constructor to
2407 avoid trying to access NULL memory pointed to by next for the
2408 last element. (find_array_section): Exit while loop if cons->next is
2409 NULL.
2410
2411 2008-02-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2412
2413 PR fortran/34907
2414 * iresolve.c (resolve_mask_arg): Add gfc_clear_ts to initialize
2415 structure.
2416 (gfc_resolve_aint): Likewise.
2417 (gfc_resolve_anint): Likewise.
2418 (gfc_resolve_besn): Likewise.
2419 (gfc_resolve_cshift): Likewise.
2420 (gfc_resolve_ctime): Likewise.
2421 (gfc_resolve_eoshift): Likewise.
2422 (gfc_resolve_index_func): Likewise.
2423 (gfc_resolve_isatty): Likewise.
2424 (gfc_resolve_malloc): Likewise.
2425 (gfc_resolve_rrspacing): Likewise.
2426 (gfc_resolve_scale): Likewise.
2427 (gfc_resolve_set_exponent): Likewise.
2428 (gfc_resolve_spacing): Likewise.
2429 (gfc_resolve_spacing): Likewise.
2430 (gfc_resolve_fgetc): Likewise.
2431 (gfc_resolve_fputc): Likewise.
2432 (gfc_resolve_ftell): Likewise.
2433 (gfc_resolve_ttynam): Likewise.
2434 (gfc_resolve_alarm_sub): Likewise.
2435 (gfc_resolve_mvbits): Likewise.
2436 (gfc_resolve_getarg): Likewise.
2437 (gfc_resolve_signal_sub): Likewise.
2438 (gfc_resolve_exit): Likewise.
2439 (gfc_resolve_flush): Likewise.
2440 (gfc_resolve_free): Likewise.
2441 (gfc_resolve_ctime_sub): Likewise.
2442 (gfc_resolve_fgetc_sub): Likewise.
2443 (gfc_resolve_fputc_sub): Likewise.
2444 (gfc_resolve_fseek_sub): Likewise.
2445 (gfc_resolve_ftell_sub): Likewise.
2446 (gfc_resolve_ttynam_sub): Likewise.
2447
2448 2008-02-22 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
2449
2450 * gfc-internals.texi: Fix typos and markup nits.
2451 * gfortran.texi: Likewise.
2452 * intrinsic.texi: Likewise.
2453
2454 2008-02-21 Richard Guenther <rguenther@suse.de>
2455
2456 * trans-expr.c (gfc_conv_expr_op): Expand INTRINSIC_PARENTHESES
2457 as unary PAREN_EXPR for real and complex typed expressions.
2458 (gfc_conv_unary_op): Fold the built tree.
2459
2460 2008-02-20 Tobias Burnus <burnus@net-b.de>
2461
2462 PR fortran/34997
2463 * match.c (gfc_match_name): Improve error message for '$'.
2464
2465 2008-02-19 Daniel Franke <franke.daniel@gmail.com>
2466
2467 PR fortran/35030
2468 * expr.c (gfc_check_pointer_assign): Add type and kind information
2469 to type-mismatch message.
2470 (gfc_check_assign): Unify error messages.
2471
2472 2008-02-16 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2473
2474 PR fortran/34952
2475 * gfortran.texi: Create new section for unimplemented extensions.
2476 Add "STRUCTURE and RECORD" and "ENCODE and DECODE statements".
2477 Remove "smaller projects" list. Fix a few typos.
2478
2479 2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2480
2481 * intrinsic.texi: Rename INDEX node to avoid clashing with
2482 index.html on case-insensitive systems.
2483
2484 2008-02-15 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2485
2486 PR fortran/35150
2487 * trans-expr.c (gfc_conv_function_call): Force evaluation of
2488 se->expr.
2489
2490 2008-02-10 Daniel Franke <franke.daniel@gmail.com>
2491
2492 PR fortran/35019
2493 * lang.opt: Allow '-J<dir>' next to '-J <dir>',
2494 likewise '-I <dir>' and '-I<dir>'.
2495
2496 2008-02-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2497
2498 PR other/35107
2499 * Make-lang.in (f951): Add $(GMPLIBS).
2500
2501 2008-02-05 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
2502
2503 PR fortran/35037
2504 * trans-common.c (build_field): Mark fields as volatile when needed.
2505
2506 2008-02-05 Tobias Burnus <burnus@net-b.de>
2507
2508 PR fortran/35093
2509 * data.c (gfc_assign_data_value): Only free "size" if
2510 it has not already been freed.
2511
2512 2008-02-05 Paul Thomas <pault@gcc.gnu.org>
2513
2514 PR fortran/34945
2515 * array.c (match_array_element_spec): Remove check for negative
2516 array size.
2517 (gfc_resolve_array_spec): Add check for negative size.
2518
2519 2008-02-05 Paul Thomas <pault@gcc.gnu.org>
2520
2521 PR fortran/32315
2522 * data.c (gfc_assign_data_value): Add bounds check for array
2523 references.
2524
2525 2008-02-04 Daniel Franke <franke.daniel@gmail.com>
2526
2527 * resolve.c (resolve_where): Fix typo.
2528 (gfc_resolve_where_code_in_forall): Likewise.
2529
2530 2008-02-03 Paul Thomas <pault@gcc.gnu.org>
2531
2532 PR fortran/32760
2533 * resolve.c (resolve_allocate_deallocate): New function.
2534 (resolve_code): Call it for allocate and deallocate.
2535 * match.c (gfc_match_allocate, gfc_match_deallocate) : Remove
2536 the checking of the STAT tag and put in above new function.
2537 * primary,c (match_variable): Do not fix flavor of host
2538 associated symbols yet if the type is not known.
2539
2540 2008-01-31 Paul Thomas <pault@gcc.gnu.org>
2541
2542 PR fortran/34910
2543 * expr.c (gfc_check_assign): It is an error to assign
2544 to a sibling procedure.
2545
2546 2008-01-30 Paul Thomas <pault@gcc.gnu.org>
2547
2548 PR fortran/34975
2549 * symbol.c (gfc_delete_symtree, gfc_undo_symbols): Rename
2550 delete_symtree to gfc_delete_symtree.
2551 * gfortran.h : Add prototype for gfc_delete_symtree.
2552 * module.c (load_generic_interfaces): Transfer symbol to a
2553 unique symtree and delete old symtree, instead of renaming.
2554 (read_module): The rsym and the found symbol are the same, so
2555 the found symtree can be deleted.
2556
2557 PR fortran/34429
2558 * decl.c (match_char_spec): Remove the constraint on deferred
2559 matching of functions and free the length expression.
2560 delete_symtree to gfc_delete_symtree.
2561 (gfc_match_type_spec): Whitespace.
2562 (gfc_match_function_decl): Defer characteristic association for
2563 all types except BT_UNKNOWN.
2564 * parse.c (decode_specification_statement): Only derived type
2565 function matching is delayed to the end of specification.
2566
2567 2008-01-28 Tobias Burnus <burnus@net-b.de>
2568
2569 PR libfortran/34980
2570 * simplify.c (gfc_simplify_shape): Simplify rank zero arrays.
2571
2572 2008-01-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2573
2574 PR fortran/34990
2575 * array.c (gfc_check_constructor_type): Revert clearing the expression.
2576
2577 2008-01-26 Tobias Burnus <burnus@net-b.de>
2578
2579 PR fortran/34848
2580 * trans-expr.c (gfc_conv_function_call): Don't call
2581 gfc_add_interface_mapping if the expression is NULL.
2582
2583 2008-01-26 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2584
2585 PR fortran/31610
2586 * trans-array.c (gfc_trans_create_temp_array): Remove call to
2587 gcc_assert (integer_zerop (loop->from[n])).
2588
2589 2008-01-25 Daniel Franke <franke.daniel@gmail.com>
2590
2591 PR fortran/34661
2592 * resolve.c (resolve_where): Added check if user-defined assignment
2593 operator is an elemental subroutine.
2594 (gfc_resolve_where_code_in_forall): Likewise.
2595
2596 2008-01-24 Daniel Franke <franke.daniel@gmail.com>
2597
2598 PR fortran/33375
2599 PR fortran/34858
2600 * gfortran.h: Revert changes from 2008-01-17.
2601 * match.c: Likewise.
2602 * symbol.c: Likewise.
2603 (gfc_undo_symbols): Undo namespace changes related to common blocks.
2604
2605 2008-01-24 Daniel Franke <franke.daniel@gmail.com>
2606
2607 PR fortran/34202
2608 * data.c (formalize_structure_cons): Skip formalization on
2609 empty structures.
2610
2611 2008-01-24 Daniel Franke <franke.daniel@gmail.com>
2612
2613 * gfortran.texi (OpenMP): Extended existing documentation.
2614 (contributors): Added major contributors of 2008 that were
2615 not listed yet.
2616 (proposed extensions): Removed implemented items.
2617
2618 2008-01-24 Paul Thomas <pault@gcc.gnu.org>
2619
2620 PR fortran/34872
2621 * parse.c (next_statement) : If ST_GET_FCN_CHARACTERISTICS is
2622 seen, check for a statement label and, if present, delete it
2623 and set the locus to the start of the statement.
2624
2625 2008-01-22 Paul Thomas <pault@gcc.gnu.org>
2626
2627 PR fortran/34875
2628 * trans-io.c (gfc_trans_transfer): If the array reference in a
2629 read has a vector subscript, use gfc_conv_subref_array_arg to
2630 copy back the temporary.
2631
2632 2008-01-22 Tobias Burnus <burnus@net-b.de>
2633
2634 PR fortran/34848
2635 * interface.c (compare_actual_formal): Fix adding type
2636 to missing_arg_type for absent optional arguments.
2637
2638 2008-01-22 Tobias Burnus <burnus@net-b.de>
2639
2640 PR fortran/34907
2641 * parse.c (parse_spec): Change = into ==.
2642
2643 2008-01-22 Daniel Franke <franke.daniel@gmail.com>
2644
2645 PR fortran/34915
2646 * expr.c (check_elemental): Fix check for valid data types.
2647
2648 2008-01-22 Tobias Burnus <burnus@net-b.de>
2649
2650 PR fortran/34899
2651 * scanner.c (load_line): Support <tab><digit> continuation lines.
2652 * invoke.texi (-Wtabs): Document this.
2653
2654 2008-01-22 Paul Thomas <pault@gcc.gnu.org>
2655
2656 PR fortran/34896
2657 * module.c (read_module): Set use_rename attribute.
2658
2659 2007-01-21 Tobias Burnus <burnus@net-b.de>
2660
2661 PR fortran/34901
2662 * interface.c (compare_parameter): Improved error message
2663 for arguments of same type and mismatched kinds.
2664
2665 2008-01-20 Paul Thomas <pault@gcc.gnu.org>
2666
2667 PR fortran/34861
2668 * resolve.c (resolve_entries): Do not do an array bounds check
2669 if the result symbols are the same.
2670
2671 PR fortran/34854
2672 * module.c (read_module) : Hide the symtree of the previous
2673 version of the symbol if this symbol is renamed.
2674
2675 2008-01-20 Paul Thomas <pault@gcc.gnu.org>
2676
2677 PR fortran/34784
2678 * array.c (gfc_check_constructor_type): Clear the expression ts
2679 so that the checking starts from the deepest level of array
2680 constructor.
2681 * primary.c (match_varspec): If an unknown type is changed to
2682 default character and the attempt to match a substring fails,
2683 change it back to unknown.
2684
2685 PR fortran/34785
2686 * trans-array.c (gfc_add_loop_ss_code) : If ss->string_length is
2687 NULL for an array constructor, use the cl.length expression to
2688 build it.
2689 (gfc_conv_array_parameter): Change call to gfc_evaluate_now to
2690 a tree assignment.
2691
2692 2008-01-19 Thomas Koenig <tkoenig@gcc.gnu.org>
2693
2694 PR fortran/34817
2695 PR fortran/34838
2696 * iresolve.c (gfc_resolve_all): Remove conversion of mask
2697 argument to kind=1 by removing call to resolve_mask_arg().
2698 (gfc_resolve_any): Likewise.
2699
2700 2008-01-19 Tobias Burnus <burnus@net-b.de>
2701
2702 PR fortran/34760
2703 * primary.c (match_variable): Handle FL_UNKNOWN without
2704 uneducated guessing.
2705 (match_variable): Improve error message.
2706
2707 2008-01-18 Tobias Burnus <burnus@net-b.de>
2708
2709 PR fortran/32616
2710 * interface.c (get_expr_storage_size): Return storage size
2711 for array element designators.
2712 (compare_actual_formal): Reject unequal string sizes for
2713 assumed-shape dummy arguments. And fix error message for
2714 array-sections with vector subscripts.
2715
2716 2008-01-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2717
2718 PR fortran/34556
2719 * simplify.c (is_constant_array_expr): New static function that returns
2720 true if the given expression is an array and is constant.
2721 (gfc_simplify_reshape): Use new function.
2722
2723 2008-01-17 H.J. Lu <hongjiu.lu@intel.com>
2724
2725 PR fortran/33375
2726 * symbol.c (free_common_tree): Renamed to ...
2727 (gfc_free_common_tree): This. Remove static.
2728 (gfc_free_namespace): Updated.
2729
2730 * gfortran.h (gfc_free_common_tree): New.
2731
2732 * match.c (gfc_match_common): Call gfc_free_common_tree () with
2733 gfc_current_ns->common_root and set gfc_current_ns->common_root
2734 to NULL on syntax error.
2735
2736 2008-01-18 Richard Sandiford <rsandifo@nildram.co.uk>
2737
2738 PR fortran/34686
2739 * trans-expr.c (gfc_conv_function_call): Use proper
2740 type for returned character pointers.
2741
2742 2008-01-17 Paul Thomas <pault@gcc.gnu.org>
2743
2744 PR fortran/34429
2745 PR fortran/34431
2746 PR fortran/34471
2747 * decl.c : Remove gfc_function_kind_locus and
2748 gfc_function_type_locus. Add gfc_matching_function.
2749 (match_char_length): If matching a function and the length
2750 does not match, return MATCH_YES and try again later.
2751 (gfc_match_kind_spec): The same.
2752 (match_char_kind): The same.
2753 (gfc_match_type_spec): The same for numeric and derived types.
2754 (match_prefix): Rename as gfc_match_prefix.
2755 (gfc_match_function_decl): Except for function valued character
2756 lengths, defer applying kind, type and charlen info until the
2757 end of specification block.
2758 gfortran.h (gfc_statement): Add ST_GET_FCN_CHARACTERISTICS.
2759 parse.c (decode_specification_statement): New function.
2760 (decode_statement): Call it when a function has kind = -1. Set
2761 and reset gfc_matching function, as function statement is being
2762 matched.
2763 (match_deferred_characteristics): Simplify with a single call
2764 to gfc_match_prefix. Do appropriate error handling. In any
2765 case, make sure that kind = -1 is reset or corrected.
2766 (parse_spec): Call above on seeing ST_GET_FCN_CHARACTERISTICS.
2767 Throw an error if kind = -1 after last specification statement.
2768 parse.h : Prototype for gfc_match_prefix.
2769
2770 2008-01-16 Tobias Burnus <burnus@net-b.de>
2771
2772 PR fortran/34796
2773 * interface.c (compare_parameter): Allow AS_DEFERRED array
2774 elements and reject attr.pointer array elemenents.
2775 (get_expr_storage_size): Return storage size of elements of
2776 assumed-shape and pointer arrays.
2777
2778 2008-01-15 Sebastian Pop <sebastian.pop@amd.com>
2779
2780 * f95-lang.c (gfc_init_builtin_functions): Initialize GOMP builtins
2781 for flag_tree_parallelize_loops.
2782
2783 2008-01-15 Thomas Koenig <tkoenig@gcc.gnu.org>
2784
2785 PR libfortran/34671
2786 * iresolve.c (gfc_resolve_all): Call resolve_mask_arg.
2787 (gfc_resolve_any): Likewise.
2788 (gfc_resolve_count): Likewise. Don't append kind of
2789 argument to function name.
2790
2791 2008-01-13 Tobias Burnus <burnus@net-b.de>
2792
2793 PR fortran/34665
2794 * resolve.c (resolve_actual_arglist): For expressions,
2795 also check for assume-sized arrays.
2796 * interface.c (compare_parameter): Move F2003 character checks
2797 here, print error messages here, reject elements of
2798 assumed-shape array as argument to dummy arrays.
2799 (compare_actual_formal): Update for the changes above.
2800
2801 2008-01-13 Tobias Burnus <burnus@net-b.de>
2802
2803 PR fortran/34763
2804 * decl.c (contained_procedure): Only check directly preceeding state.
2805
2806 2008-01-13 Tobias Burnus <burnus@net-b.de>
2807
2808 PR fortran/34759
2809 * check.c (gfc_check_shape): Accept array ranges of
2810 assumed-size arrays.
2811
2812 2008-01-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2813
2814 PR fortran/34432
2815 * match.c (gfc_match_name): Don't error if leading character is a '(',
2816 just return MATCH_NO.
2817
2818 2008-01-11 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2819
2820 PR fortran/34722
2821 * trans-io.c (create_dummy_iostat): Commit the symbol.
2822
2823 2008-01-11 Paul Thomas <pault@gcc.gnu.org>
2824
2825 PR fortran/34537
2826 * simplify.c (gfc_simplify_transfer): Return NULL if the size
2827 of the element is unavailable and only assign character length
2828 to the result, if 'mold' is constant.
2829
2830 2008-01-10 Paul Thomas <pault@gcc.gnu.org>
2831
2832 PR fortran/34396
2833 * trans-array.c (gfc_trans_array_ctor_element): Use gfc_trans_string_copy
2834 to assign strings and perform bounds checks on the string length.
2835 (get_array_ctor_strlen): Remove bounds checking.
2836 (gfc_trans_array_constructor): Initialize string length checking.
2837 * trans-array.h : Add prototype for gfc_trans_string_copy.
2838
2839 2008-01-08 Richard Guenther <rguenther@suse.de>
2840
2841 PR fortran/34706
2842 PR tree-optimization/34683
2843 * trans-types.c (gfc_get_array_type_bounds): Use an array type
2844 with known size for accesses if that is known.
2845
2846 2008-01-08 Paul Thomas <pault@gcc.gnu.org>
2847
2848 PR fortran/34476
2849 * expr.c (find_array_element): Check that the array bounds are
2850 constant before using them. Use lower, as well as upper bound.
2851 (check_restricted): Allow implied index variable.
2852
2853 2008-01-08 Paul Thomas <pault@gcc.gnu.org>
2854
2855 PR fortran/34681
2856 * trans_array.c (gfc_trans_deferred_array): Do not null the
2857 data pointer on entering scope, nor deallocate it on leaving
2858 scope, if the symbol has the 'save' attribute.
2859
2860 PR fortran/34704
2861 * trans_decl.c (gfc_finish_var_decl): Derived types with
2862 allocatable components and an initializer must be TREE_STATIC.
2863
2864 2008-01-07 Paul Thomas <pault@gcc.gnu.org>
2865
2866 PR fortran/34672
2867 * module.c (write_generic): Rewrite completely.
2868 (write_module): Change call to write_generic.
2869
2870 2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2871
2872 PR fortran/34659
2873 * scanner.c (load_line): Do not count ' ' as printable when checking for
2874 continuations.
2875
2876 2008-01-06 Paul Thomas <pault@gcc.gnu.org>
2877
2878 PR fortran/34545
2879 * module.c (load_needed): If the namespace has no proc_name
2880 give it the module symbol.
2881
2882 2008-01-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2883
2884 PR fortran/34387
2885 * trans-expr.c (gfc_conv_missing_dummy): Use a temporary to type convert
2886 the dummy variable expression, test for NULL, and pass the variable
2887 address to the called function.
2888
2889 2007-01-06 Tobias Burnus <burnus@net-b.de>
2890
2891 PR fortran/34658
2892 * match.c (gfc_match_common): Remove blank common in
2893 DATA BLOCK warning.
2894 * resolve.c (resolve_common_vars): New function.
2895 (resolve_common_blocks): Move checks to resolve_common_vars
2896 and invoke that function.
2897 (resolve_types): Call resolve_common_vars for blank commons.
2898
2899 2008-01-06 Tobias Burnus <burnus@net-b.de>
2900
2901 PR fortran/34655
2902 * resolve.c (resolve_equivalence_derived): Reject derived types with
2903 default initialization if equivalenced with COMMON variable.
2904
2905 2008-01-06 Tobias Burnus <burnus@net-b.de>
2906
2907 PR fortran/34654
2908 * io.c (check_io_constraints): Disallow unformatted I/O for
2909 internal units.
2910
2911 2008-01-06 Tobias Burnus <burnus@net-b.de>
2912
2913 PR fortran/34660
2914 * resolve.c (resolve_formal_arglist): Reject dummy procedure in
2915 ELEMENTAL functions.
2916
2917 2008-01-06 Tobias Burnus <burnus@net-b.de>
2918
2919 PR fortran/34662
2920 * interface.c (compare_actual_formal): Reject parameter
2921 actual to intent(out) dummy.
2922
2923 2008-01-04 Tobias Burnus <burnus@net-b.de>
2924
2925 PR fortran/34557
2926 * primary.c (match_varspec): Gobble whitespace before
2927 checking for '('.