1 2010-08-04 Tobias Burnus <burnus@net-b.de>
3 * trans-io.c (gfc_build_io_library_fndecls): Fix return
4 value of some libgfortran functions.
6 2010-08-03 Thomas Koenig <tkoenig@gcc.gnu.org>
9 * dependency.c (gfc_deb_compare_expr): Remove any integer
10 conversion functions to larger types from both arguments.
11 Remove handling these functions futher down.
13 2010-08-03 Janus Weil <janus@gcc.gnu.org>
17 * class.c (add_procs_to_declared_vtab1): Don't add erroneous procedures.
18 * resolve.c (resolve_tb_generic_targets): Check for errors.
20 2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
23 * depencency.c (gfc_dep_resolver): Fix logic for when a loop
26 2010-08-02 Thomas Koenig <tkoenig@gcc.gnu.org>
29 * dependency.h: Add prototype for gfc_are_identical_variables.
30 * frontend-passes.c: Include depencency.h.
31 (optimimize_equality): Use gfc_are_identical_variables.
32 * dependency.c (identical_array_ref): New function.
33 (gfc_are_identical_variables): New function.
34 (gfc_deb_compare_expr): Use gfc_are_identical_variables.
35 * dependency.c (gfc_check_section_vs_section). Rename gfc_
36 prefix from statc function.
37 (check_section_vs_section): Change arguments to gfc_array_ref,
38 adjust function body accordingly.
40 2010-08-02 Mikael Morin <mikael@gcc.gnu.org>
41 Janus Weil <janus@gcc.gnu.org>
46 * intrinsic.c (gfc_get_intrinsic_sub_symbol): Commit changed symbol.
47 * symbol.c (gen_cptr_param, gen_fptr_param, gen_shape_param,
48 gfc_copy_formal_args, gfc_copy_formal_args_intr,
49 gfc_copy_formal_args_ppc, generate_isocbinding_symbol): Ditto.
50 * parse.c (parse_derived_contains, parse_spec, parse_progunit):
51 Call reject_statement in case of error.
52 (match_deferred_characteritics): Call gfc_undo_symbols in case match
55 2010-08-01 Janus Weil <janus@gcc.gnu.org>
58 * class.c (gfc_build_class_symbol): Make '$vptr' component private.
59 (gfc_find_derived_vtab): Make vtabs and vtypes public.
60 * module.c (read_module): When reading module files, always import
61 vtab and vtype symbols.
63 2010-07-31 Mikael Morin <mikael@gcc.gnu.org>
67 * symbol.c (changed_syms): Made non-static.
68 * parse.c (changed_syms): Declare new external.
69 (next_statement): Assert changed_syms is NULL at the beginning.
71 2010-07-30 Janus Weil <janus@gcc.gnu.org>
72 Steven G. Kargl <kargl@gcc.gnu.org>
75 * match.c (match_type_spec): Try to parse derived types before
78 2010-07-30 Mikael Morin <mikael@gcc.gnu.org>
80 * gfortran.h (gfc_release_symbol): New prototype.
81 * symbol.c (gfc_release_symbol): New. Code taken from free_sym_tree.
82 (gfc_undo_symbols, free_sym_tree, gfc_free_finalizer):
83 Use gfc_release_symbol.
84 * parse.c (gfc_fixup_sibling_symbols): Ditto.
85 * resolve.c (resolve_symbol): Ditto.
87 2010-07-29 Tobias Burnus <burnus@net-b.de>
91 * trans-decl.c (gfc_get_extern_function_decl): Correctly handle
92 external procedure declarations in modules.
93 (gfc_get_symbol_decl): Modify assert.
95 2010-07-29 Janus Weil <janus@gcc.gnu.org>
98 * resolve.c (resolve_fl_derived): Call gfc_resolve_array_spec.
100 2010-07-29 Janus Weil <janus@gcc.gnu.org>
103 * trans-stmt.h (gfc_trans_class_init_assign): New prototype.
104 (gfc_trans_class_assign): Modified prototype.
105 * trans.h (gfc_conv_intrinsic_move_alloc): New prototype.
106 * trans-expr.c (gfc_trans_class_init_assign): Split off from ...
107 (gfc_trans_class_assign): ... here. Modified actual arguments.
108 * trans-intrinsic.c (gfc_conv_intrinsic_move_alloc): New function to
109 handle the MOVE_ALLOC intrinsic with scalar and class arguments.
110 * trans.c (trans_code): Call 'gfc_conv_intrinsic_move_alloc'.
112 2010-07-29 Mikael Morin <mikael@gcc.gnu.org>
116 * class.c (gfc_find_derived_vtab): Accept or discard newly created
117 symbols before returning.
119 2010-07-29 Joseph Myers <joseph@codesourcery.com>
121 * lang.opt (cpp): Remove Joined and Separate markers.
122 (cpp=): New internal option.
123 * lang-specs.h (F951_CPP_OPTIONS): Generate -cpp= option.
124 * cpp.c (gfc_cpp_handle_option): Handle OPT_cpp_ instead of
127 2010-07-29 Daniel Kraft <d@domob.eu>
130 * array.c (resolve_array_bound): Fix error message to properly handle
131 non-variable expressions.
133 2010-07-28 Mikael Morin <mikael@gcc.gnu.org>
135 * decl.c (free_value): Also free repeat field.
136 * data.c (gfc_assign_data_value): Always free offset before returning.
138 2010-07-28 Daniel Kraft <d@domob.eu>
140 * gfortran.h (gfc_build_intrinsic_call): New method.
141 * expr.c (gfc_build_intrinsic_call): New method.
142 * simplify.c (range_check): Ignore non-constant value.
143 (simplify_bound_dim): Handle non-variable expressions and
144 fix memory leak with non-free'ed expression.
145 (simplify_bound): Handle non-variable expressions.
146 (gfc_simplify_shape): Ditto.
147 (gfc_simplify_size): Ditto, but only in certain cases possible.
149 2010-07-28 Joseph Myers <joseph@codesourcery.com>
151 * gfortranspec.c (SWITCH_TAKES_ARG, WORD_SWITCH_TAKES_ARG):
154 2010-07-28 Tobias Burnus <burnus@net-b.de>
157 * trans-types.c (gfc_get_derived_type): Fix DT declaration
158 from modules for whole-file mode.
160 2010-07-27 Joseph Myers <joseph@codesourcery.com>
162 * gfortran.h (gfc_handle_option): Update prototype and return
164 * options.c (gfc_handle_option): Update prototype and return value
167 2010-07-27 Joseph Myers <joseph@codesourcery.com>
169 * cpp.c (gfc_cpp_init_options): Update prototype. Use number of
170 decoded options in allocating deferred_opt.
171 * cpp.h (gfc_cpp_init_options): Update prototype.
172 * f95-lang.c (LANG_HOOKS_OPTION_LANG_MASK): Define.
173 * gfortran.h (gfc_option_lang_mask): New.
174 (gfc_init_options): Update prototype.
175 * options.c (gfc_option_lang_mask): New.
176 (gfc_init_options): Update prototype. Pass new arguments to
177 gfc_cpp_init_options.
179 2010-07-26 Tobias Burnus <burnus@net-b.de>
182 * trans-decl.c (gfc_get_extern_function_decl): Fix generation
183 for functions which are later in the same file.
184 (gfc_create_function_decl, build_function_decl,
185 build_entry_thunks): Add global argument.
186 * trans.c (gfc_generate_module_code): Update
187 gfc_create_function_decl call.
188 * trans.h (gfc_create_function_decl): Update prototype.
189 * resolve.c (resolve_global_procedure): Also resolve for
192 2010-07-26 Richard Henderson <rth@redhat.com>
195 * f95-lang.c (LANG_HOOKS_WRITE_GLOBALS): New.
196 (gfc_write_global_declarations): New.
198 2010-07-26 Tobias Burnus <burnus@net-b.de>
201 * trans-io.c (build_dt): Use NULL_TREE rather than NULL
202 for call to transfer_namelist_element.
203 * trans-decl.c (gfc_get_symbol_decl): Also set sym->backend_decl
206 2010-07-25 Thomas Koenig <tkoenig@gcc.gnu.org>
209 * Make-lang.in: Add fortran/frontend-passes.o.
210 * gfortran.h: Add prototype for gfc_run_passes.
211 * resolve.c (gfc_resolve): Call gfc_run_passes.
212 * frontend-passes.c: New file.
214 2010-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
217 * scanner.c (gfc_next_char_literal): Enable truncation warning for
220 2010-07-25 Mikael Morin <mikael@gcc.gnu.org>
223 * gfortran.h (gfc_namespace): New field old_equiv.
224 (gfc_free_equiv_until): New prototype.
225 * match.c (gfc_free_equiv_until): New, renamed from gfc_free_equiv with
226 a parameterized stop condition.
227 (gfc_free_equiv): Use gfc_free_equiv_until.
228 * parse.c (next_statement): Save equivalence list.
229 (reject_statement): Restore equivalence list.
231 2010-07-25 Jerry DeLisle <jvdelisle@gcc.gnu.org>
234 * scanner.c (gfc_next_char_literal): Move check for truncation earlier
235 in the function so that it does not get missed by early exits.
236 (load_line): Add checks for quoted strings and free form comments to
237 disable warnings on comments. Add check for ampersand as first
238 character after truncation and don't warn for this case, but warn if
239 there are subsequent non-whitespace characters.
241 2010-07-24 Tobias Burnus <burnus@net-b.de>
244 * parse.c (gfc_parse_file): Do not override
245 gfc_global_ns_list items.
247 2010-07-24 Tobias Burnus <burnus@net-b.de>
249 * options.c (gfc_init_options): Enable -fwhole-file by default.
250 * interface.c (compare_parameter): Assume a Hollerith constant is
251 compatible with all other argument types.
253 2010-07-23 Tobias Burnus <burnus@net-b.de>
256 * trans-decl.c (gfc_get_symbol_decl): Use module decl with
257 -fwhole-file also for derived types.
258 * trans-types.c (copy_dt_decls_ifequal): Remove static and
259 rename to gfc_copy_dt_decls_ifequal.
260 (gfc_get_derived_type): Update call.
261 * trans-types.h (gfc_copy_dt_decls_ifequal): Add prototype.
263 2010-07-23 Tobias Burnus <burnus@net-b.de>
266 * resolve.c (resolve_global_procedure): Properly handle ENTRY.
268 2010-07-23 Jakub Jelinek <jakub@redhat.com>
270 * trans-types.c (gfc_get_array_descriptor_base,
271 gfc_get_array_type_bounds): Set TYPE_NAMELESS.
272 * trans-decl.c (gfc_build_qualified_array): Set DECL_NAMELESS
273 instead of clearing DECL_NAME.
274 (gfc_build_dummy_array_decl): Set DECL_NAMELESS.
276 2009-07-23 Paul Thomas <pault@gcc.gnu.org>
279 * trans-array.c (gfc_init_loopinfo): Initialize the reverse
281 gfc_trans_scalarized_loop_end: If reverse set in dimension n,
282 reverse the scalarization loop.
283 gfc_conv_resolve_dependencies: Pass the reverse field of the
284 loopinfo to gfc_dep_resolver.
285 trans-expr.c (gfc_trans_assignment_1): Enable loop reversal for
286 assignment by resetting loop.reverse.
287 gfortran.h : Add the gfc_reverse enum.
288 trans.h : Add the reverse field to gfc_loopinfo.
289 dependency.c (gfc_check_dependency): Pass null to the new arg
291 (gfc_check_section_vs_section): Check for reverse dependencies.
292 (gfc_dep_resolver): Add reverse argument and deal with the loop
294 dependency.h : Modify prototype for gfc_dep_resolver to include
297 2010-07-23 Daniel Kraft <d@domob.eu>
300 * gfortran.h (gfc_find_symtree_in_proc): New method.
301 * symbol.c (gfc_find_symtree_in_proc): New method.
302 * match.c (match_exit_cycle): Look for loop name also in parent
303 namespaces within current procedure.
305 2010-07-22 Tobias Burnus <burnus@net-b.de>
308 * dependency.c (gfc_check_dependency): Add argument alising check.
309 * symbol.c (gfc_symbols_could_alias): Add argument alising check.
311 2010-07-22 Daniel Kraft <d@domob.eu>
313 * trans-stmt.c (gfc_trans_return): Put back in the handling of se.post,
314 now in the correct place.
316 2010-07-21 Steven G. Kargl <kargl@gcc.gnu.org>
319 * Revert my commit r162325.
321 2010-07-21 Daniel Kraft <d@domob.eu>
323 * trans.h (gfc_get_return_label): Removed.
324 (gfc_generate_return): New method.
325 (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
326 returning a tree directly.
327 * trans-stmt.c (gfc_trans_return): Use `gfc_generate_return'.
328 (gfc_trans_block_construct): Update for new interface to
329 `gfc_trans_deferred_vars'.
330 * trans-decl.c (current_function_return_label): Removed.
331 (current_procedure_symbol): New variable.
332 (gfc_get_return_label): Removed.
333 (gfc_trans_deferred_vars): Update gfc_wrapped_block rather than
334 returning a tree directly.
335 (get_proc_result), (gfc_generate_return): New methods.
336 (gfc_generate_function_code): Clean up and do init/cleanup here
337 also with gfc_wrapped_block. Remove return-label but rather
340 2010-07-19 Steven G. Kargl <kargl@gcc.gnu.org>
343 * fortran/match.c (match_type_spec): Check for derived type before
346 2010-07-19 Paul Thomas <pault@gcc.gnu.org>
349 * interface.c (matching_typebound_op): Add argument for the
350 return of the generic name for the procedure.
351 (build_compcall_for_operator): Add an argument for the generic
352 name of an operator procedure and supply it to the expression.
353 (gfc_extend_expr, gfc_extend_assign): Use the generic name in
354 calls to the above procedures.
355 * resolve.c (resolve_typebound_function): Catch procedure
356 component calls for CLASS objects, check that the vtable is
357 complete and insert the $vptr and procedure components, to make
359 (resolve_typebound_function): The same.
360 * trans-decl.c (gfc_trans_deferred_vars): Do not deallocate
361 an allocatable scalar if it is a result.
363 2010-07-19 Paul Thomas <pault@gcc.gnu.org>
366 * match.c (gfc_match_iterator): Reverted.
368 2010-07-18 Paul Thomas <pault@gcc.gnu.org>
371 * match.c (gfc_match_iterator): Remove error that iterator
372 cannot be INTENT(IN).
374 2010-07-17 Mikael Morin <mikael@gcc.gnu.org>
376 * trans-array.c (gfc_free_ss): Don't free beyond ss rank.
377 Access subscript through the "dim" field index.
378 (gfc_trans_create_temp_array): Access ss info through the "dim" field
380 (gfc_conv_array_index_offset): Ditto.
381 (gfc_conv_loop_setup): Ditto.
382 (gfc_conv_expr_descriptor): Ditto.
383 (gfc_conv_ss_startstride): Ditto. Update call to
384 gfc_conv_section_startstride.
385 (gfc_conv_section_startstride): Set values along the array dimension.
386 Get array dimension directly from the argument.
388 2010-07-15 Jakub Jelinek <jakub@redhat.com>
390 * trans.h (gfc_string_to_single_character): New prototype.
391 * trans-expr.c (string_to_single_character): Renamed to ...
392 (gfc_string_to_single_character): ... this. No longer static.
393 (gfc_conv_scalar_char_value, gfc_build_compare_string,
394 gfc_trans_string_copy): Adjust callers.
395 * config-lang.in (gtfiles): Add fortran/trans-stmt.c.
396 * trans-stmt.c: Include ggc.h and gt-fortran-trans-stmt.h.
397 (select_struct): Move to toplevel, add GTY(()).
398 (gfc_trans_character_select): Optimize SELECT CASE
399 with character length 1.
401 2010-07-15 Nathan Froyd <froydnj@codesourcery.com>
403 * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN.
404 * trans-common.c: Likewise.
405 * trans-decl.c: Likewise.
406 * trans-types.c: Likewise.
409 2010-07-15 Janus Weil <janus@gcc.gnu.org>
412 * resolve.c (resolve_typebound_generic_call): Resolve generic
413 non-polymorphic type-bound procedure calls to the correct specific
415 (resolve_typebound_subroutine): Remove superfluous code.
417 2010-07-15 Daniel Kraft <d@domob.eu>
420 * trans.h (struct gfc_wrapped_block): New struct.
421 (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
422 (gfc_finish_wrapped_block): New method.
423 (gfc_init_default_dt): Add new init code to block rather than
425 * trans-array.h (gfc_trans_auto_array_allocation): Use gfc_wrapped_block
426 (gfc_trans_dummy_array_bias): Ditto.
427 (gfc_trans_g77_array): Ditto.
428 (gfc_trans_deferred_array): Ditto.
429 * trans.c (gfc_add_expr_to_block): Call add_expr_to_chain.
430 (add_expr_to_chain): New method based on old gfc_add_expr_to_block.
431 (gfc_start_wrapped_block), (gfc_add_init_cleanup): New methods.
432 (gfc_finish_wrapped_block): New method.
433 * trans-array.c (gfc_trans_auto_array_allocation): use gfc_wrapped_block
434 (gfc_trans_g77_array), (gfc_trans_dummy_array_bias): Ditto.
435 (gfc_trans_deferred_array): Ditto.
436 * trans-decl.c (gfc_trans_dummy_character): Ditto.
437 (gfc_trans_auto_character_variable), (gfc_trans_assign_aux_var): Ditto.
438 (init_intent_out_dt): Ditto.
439 (gfc_init_default_dt): Add new init code to block rather than
441 (gfc_trans_deferred_vars): Use gfc_wrapped_block to collect all init
442 and cleanup code and put it all together.
444 2010-07-15 Jakub Jelinek <jakub@redhat.com>
446 * trans.h (gfc_build_compare_string): Add CODE argument.
447 * trans-intrinsic.c (gfc_conv_intrinsic_strcmp): Pass OP to
448 gfc_build_compare_string.
449 * trans-expr.c (gfc_conv_expr_op): Pass CODE to
450 gfc_build_compare_string.
451 (string_to_single_character): Rename len variable to length.
452 (gfc_optimize_len_trim): New function.
453 (gfc_build_compare_string): Add CODE argument. If it is EQ_EXPR
454 or NE_EXPR and one of the strings is string literal with LEN_TRIM
455 bigger than the length of the other string, they compare unequal.
458 * trans-stmt.c (gfc_trans_character_select): Always use NULL for high
459 in CASE_LABEL_EXPR and use NULL for low for the default case.
461 2010-07-14 Mikael Morin <mikael@gcc.gnu.org>
463 * trans-array.c (gfc_conv_section_upper_bound): Remove
464 (gfc_conv_section_startstride): Don't set the upper bound in the
465 vector subscript case.
466 (gfc_conv_loop_setup): Don't use gfc_conv_section_upper_bound
468 2010-07-14 Janus Weil <janus@gcc.gnu.org>
471 * gfortran.h (gfc_is_data_pointer): Remove prototype.
472 * dependency.c (gfc_is_data_pointer): Make it static.
473 * intrinsic.texi: Update documentation on C_LOC.
474 * resolve.c (gfc_iso_c_func_interface): Fix pointer and target checks
475 and add a check for polymorphic variables.
477 2010-07-14 Jakub Jelinek <jakub@redhat.com>
479 * trans-expr.c (string_to_single_character): Also optimize
480 string literals containing a single char followed only by spaces.
481 (gfc_trans_string_copy): Remove redundant string_to_single_character
484 * trans-decl.c (gfc_build_intrinsic_function_decls,
485 gfc_build_builtin_function_decls): Mark functions as
486 DECL_PURE_P or TREE_READONLY.
488 2010-07-13 Nathan Froyd <froydnj@codesourcery.com>
490 * trans-decl.c (build_entry_thunks): Call build_call_expr_loc_vec
491 instead of build_function_call_expr.
492 * trans-intrinsic.c (gfc_conv_intrinsic_sr_kind): Likewise.
494 2010-07-13 Tobias Burnus <burnus@net-b.de>
495 Daniel Franke <franke.daniel@gmail.com>
498 * trans.h (gfc_build_library_function_decl_with_spec): New prototype.
499 * trans-decl.c (gfc_build_library_function_decl_with_spec): Removed
501 * trans-io (gfc_build_io_library_fndecls): Add "fn spec" annotations.
503 2010-07-13 Daniel Franke <franke.daniel@gmail.com>
504 Tobias Burnus <burnus@net-b.de>
507 * trans-decl.c (gfc_build_intrinsic_function_decls): Add
508 noclobber/noescape annotations to function calls.
509 (gfc_build_builtin_function_decls): Likewise.
511 2010-07-13 Janus Weil <janus@gcc.gnu.org>
517 * gfortran.h (gfc_find_derived_vtab): Modified prototype.
518 * class.c (gfc_build_class_symbol): Modified call to
519 'gfc_find_derived_vtab'.
520 (add_proc_component): Removed, moved code into 'add_proc_comp'.
521 (add_proc_comps): Renamed to 'add_proc_comp', removed treatment of
523 (add_procs_to_declared_vtab1): Removed unnecessary argument 'resolved'.
524 Removed treatment of generics.
525 (copy_vtab_proc_comps): Removed unnecessary argument 'resolved'.
526 Call 'add_proc_comp' instead of duplicating code.
527 (add_procs_to_declared_vtab): Removed unnecessary arguments 'resolved'
529 (add_generic_specifics,add_generics_to_declared_vtab): Removed.
530 (gfc_find_derived_vtab): Removed unnecessary argument 'resolved'.
531 Removed treatment of generics.
532 * iresolve.c (gfc_resolve_extends_type_of): Modified call to
533 'gfc_find_derived_vtab'.
534 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
535 Removed treatment of generics.
536 (resolve_select_type,resolve_fl_derived): Modified call to
537 'gfc_find_derived_vtab'.
538 * trans-decl.c (gfc_get_symbol_decl): Ditto.
539 * trans-expr.c (gfc_conv_derived_to_class,gfc_trans_class_assign):
541 * trans-stmt.c (gfc_trans_allocate): Ditto.
543 2010-07-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
546 * trans-io.c (build_dt): Set common.unit to flag chracter(kind=4)
549 2010-07-12 Mikael Morin <mikael@gcc.gnu.org>
551 * expr.c (gfc_get_int_expr): Don't initialize mpfr data twice.
552 * resolve.c (build_default_init_expr): Ditto.
554 2010-07-11 Tobias Burnus <burnus@net-b.de>
557 * module.c (sort_iso_c_rename_list): Remove.
558 (import_iso_c_binding_module,use_iso_fortran_env_module):
559 Allow multiple imports of the same symbol.
561 2010-07-11 Mikael Morin <mikael@gcc.gnu.org>
563 * arith.c (gfc_arith_done_1): Release mpfr internal caches.
565 2010-07-11 Janus Weil <janus@gcc.gnu.org>
568 * decl.c (build_sym,attr_decl1): Only build the class container if the
569 symbol has sufficient attributes.
570 * expr.c (gfc_check_pointer_assign): Use class_pointer instead of
571 pointer attribute for classes.
572 * match.c (gfc_match_allocate,gfc_match_deallocate): Ditto.
573 * module.c (MOD_VERSION): Bump.
574 (enum ab_attribute,attr_bits): Add AB_CLASS_POINTER.
575 (mio_symbol_attribute): Handle class_pointer attribute.
576 * parse.c (parse_derived): Use class_pointer instead of pointer
577 attribute for classes.
578 * primary.c (gfc_variable_attr,gfc_expr_attr): Ditto.
579 * resolve.c (resolve_structure_cons,resolve_deallocate_expr,
580 resolve_allocate_expr,resolve_fl_derived): Ditto.
581 (resolve_fl_var_and_proc): Check for class_ok attribute.
583 2010-07-10 Mikael Morin <mikael@gcc.gnu.org>
585 * trans-io.c (gfc_build_st_parameter): Update calls to
586 gfc_add_field_to_struct.
587 * trans-stmt.c (ADD_FIELD): Ditto.
589 (gfc_get_derived_type): Ditto. Don't create backend_decl for C_PTR's
591 (gfc_add_field_to_struct_1): Set TYPE_FIELDS(context) instead of
592 fieldlist, remove fieldlist from argument list.
593 (gfc_add_field_to_struct): Update call to gfc_add_field_to_struct_1
594 and remove fieldlist from argument list.
595 (gfc_get_desc_dim_type, gfc_get_array_descriptor_base,
596 gfc_get_mixed_entry_union): Move setting
597 TYPE_FIELDS to gfc_add_field_to_struct_1 and update calls to it.
598 * trans-types.h (gfc_add_field_to_struct): Update prototype.
600 2010-07-10 Paul Thomas <pault@gcc.gnu.org>
603 * trans-expr.c (arrayfunc_assign_needs_temporary): No temporary
604 if the lhs has never been host associated, as well as not being
605 use associated, a pointer or a target.
606 * resolve.c (resolve_variable): Mark variables that are host
608 * gfortran.h: Add the host_assoc bit to the symbol_attribute
611 2010-07-09 Janus Weil <janus@gcc.gnu.org>
613 * intrinsic.texi: Add documentation for SAME_TYPE_AS, EXTENDS_TYPE_OF,
614 STORAGE_SIZE, C_NULL_PTR and C_NULL_FUNPTR. Modify documentation of
617 2010-07-08 Janus Weil <janus@gcc.gnu.org>
620 * gfortran.h (gfc_isym_id): Add GFC_ISYM_C_SIZEOF,GFC_ISYM_STORAGE_SIZE.
621 * intrinsic.h (gfc_check_c_sizeof,gfc_check_storage_size,
622 gfc_resolve_storage_size): New prototypes.
623 * check.c (gfc_check_c_sizeof,gfc_check_storage_size): New functions.
624 * intrinsic.c (add_functions): Add STORAGE_SIZE.
625 * iresolve.c (gfc_resolve_storage_size): New function.
626 * trans-intrinsic.c (gfc_conv_intrinsic_sizeof): Handle polymorphic
628 (gfc_conv_intrinsic_storage_size): New function.
629 (gfc_conv_intrinsic_function): Handle STORAGE_SIZE.
631 2010-07-08 Jakub Jelinek <jakub@redhat.com>
634 * match.c (match_exit_cycle): Error on EXIT also from collapsed
635 !$omp do loops. Error on CYCLE to non-innermost collapsed
638 2010-07-08 Tobias Burnus <burnus@net-b.de>
641 * array.c (gfc_match_array_ref): Better error message for
642 coarrays with too few ranks.
643 (match_subscript): Move one diagnostic to caller.
644 * gfortran.h (gfc_get_corank): Add prottype.
645 * expr.c (gfc_get_corank): New function.
646 * iresolve.c (resolve_bound): Fix rank for cobounds.
647 (gfc_resolve_lbound,gfc_resolve_lcobound, gfc_resolve_ubound,
648 gfc_resolve_ucobound, gfc_resolve_this_image): Update
651 2010-07-06 Tobias Burnus <burnus@net-b.de>
654 * array.c (gfc_expand_constructor): Add optional diagnostic.
655 * gfortran.h (gfc_expand_constructor): Update prototype.
656 * expr.c (gfc_simplify_expr, check_init_expr,
657 gfc_reduce_init_expr): Update gfc_expand_constructor call.
658 * resolve.c (gfc_resolve_expr): Ditto.
660 2010-07-06 Tobias Burnus <burnus@net-b.de>
662 * trans-decl.c: Include diagnostic-core.h besides toplev.h.
663 * trans-intrinsic.c: Ditto.
664 * trans-types.c: Ditto.
665 * convert.c: Include diagnostic-core.h instead of toplev.h.
667 * trans-array.c: Ditto.
668 * trans-const.c: Ditto.
669 * trans-expr.c: Ditto.
671 * trans-openmp.c: Ditto.
674 2010-07-06 Thomas Koenig <tkoenig@gcc.gnu.org>
677 * check.c (dim_rank_check): Also check intrinsic functions.
678 Adjust permissible rank for functions which reduce the rank of
679 their argument. Spread is an exception, where DIM can
680 be one larger than the rank of array.
682 2010-07-05 Steven G. Kargl <kargl@gcc.gnu.org>
685 * fortran/io.c (resolve_tag): Check EXIST tag is a default logical.
687 2010-07-05 Paul Thomas <pault@gcc.gnu.org>
690 * trans-types.c (gfc_get_derived_type): Derived type fields
691 with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set
692 but build_pointer_type_for_mode must be used for this.
694 2010-07-05 Nathan Froyd <froydnj@codesourcery.com>
696 * trans.h (gfc_conv_procedure_call): Take a VEC instead of a tree.
697 * trans-intrinsic.c (gfc_conv_intrinsic_funcall): Adjust for new
698 type of gfc_conv_procedure_call.
699 (conv_generic_with_optional_char_arg): Likewise.
700 * trans-stmt.c (gfc_trans_call): Likewise.
701 * trans-expr.c (gfc_conv_function_expr): Likewise.
702 (gfc_conv_procedure_call): Use build_call_vec instead of
705 2010-07-04 Daniel Kraft <d@domob.eu>
707 * gfc-internals.texi (gfc_code): Document BLOCK and ASSOCIATE.
709 2010-07-04 Paul Thomas <pault@gcc.gnu.org>
713 * trans-types.c (gfc_get_derived_type): Derived type fields
714 with the vtype attribute must have TYPE_REF_CAN_ALIAS_ALL set.
716 2010-07-02 Mikael Morin <mikael@gcc.gnu.org>
719 * decl.c (match_procedure_in_type): Clear structure before using.
720 (gfc_match_generic): Ditto.
722 2010-07-02 Nathan Froyd <froydnj@codesourcery.com>
724 * trans-types.h (gfc_add_field_to_struct): Add tree ** parameter.
725 * trans-types.c (gfc_add_field_to_struct_1): New function, most
726 of which comes from...
727 (gfc_add_field_to_struct): ...here. Call it. Add new parameter.
728 (gfc_get_desc_dim_type): Call gfc_add_field_to_struct_1 for
730 (gfc_get_array_descriptor_base): Likewise.
731 (gfc_get_mixed_entry_union): Likewise.
732 (gfc_get_derived_type): Add extra chain parameter for
733 gfc_add_field_to_struct.
734 * trans-stmt.c (gfc_trans_character_select): Likewise.
735 * trans-io.c (gfc_build_st_parameter): Likewise.
737 2010-06-29 Janus Weil <janus@gcc.gnu.org>
740 * resolve.c (is_external_proc): Prevent procedure pointers from being
741 regarded as external procedures.
743 2010-06-29 Janus Weil <janus@gcc.gnu.org>
746 * trans-intrinsic.c (gfc_conv_associated): Handle polymorphic variables
747 passed as second argument of ASSOCIATED.
749 2010-06-29 Paul Thomas <pault@gcc.gnu.org>
752 * trans-expr.c (arrayfunc_assign_needs_temporary): New function
753 to determine if a function assignment can be made without a
755 (gfc_trans_arrayfunc_assign): Move all the conditions that
756 suppress the direct function call to the above new functon and
759 2010-06-28 Paul Thomas <pault@gcc.gnu.org>
762 * interface.c (argument_rank_mismatch): New function.
763 (compare_parameter): Call new function instead of generating
766 2010-06-28 Nathan Froyd <froydnj@codesourcery.com>
768 * trans-openmp.c (dovar_init): Define. Define VECs containing it.
769 (gfc_trans_omp_do): Use a VEC to accumulate variables and their
772 2010-06-28 Steven Bosscher <steven@gcc.gnu.org>
774 * Make-lang.in: Update dependencies.
776 2010-06-27 Nathan Froyd <froydnj@codesourcery.com>
778 * gfortran.h (gfc_code): Split backend_decl field into cycle_label
779 and exit_label fields.
780 * trans-openmp.c (gfc_trans_omp_do): Assign to new fields
782 * trans-stmt.c (gfc_trans_simple_do): Likewise.
783 (gfc_trans_do): Likewise.
784 (gfc_trans_do_while): Likewise.
785 (gfc_trans_cycle): Use cycle_label directly.
786 (gfc_trans_exit): Use exit_label directly.
788 2010-06-27 Daniel Kraft <d@domob.eu>
790 * dump-parse-tree.c (show_symbol): Dump target-expression for
792 (show_code_node): Make distinction between BLOCK and ASSOCIATE.
793 (show_namespace): Use show_level for correct indentation of
794 "inner namespaces" (contained procedures or BLOCK).
796 2010-06-27 Thomas Koenig <tkoenig@gcc.gnu.org>
799 * dump-parse-tree.c (show_code_node): Show namespace for
802 2010-06-26 Tobias Burnus <burnus@net-b.de>
804 * decl.c (gfc_match_decl_type_spec): Support
805 TYPE(intrinsic-type-spec).
807 2010-06-25 Tobias Burnus <burnus@net-b.de>
809 * intrinsic.h (gfc_check_selected_real_kind,
810 gfc_simplify_selected_real_kind): Update prototypes.
811 * intrinsic.c (add_functions): Add radix support to
813 * check.c (gfc_check_selected_real_kind): Ditto.
814 * simplify.c (gfc_simplify_selected_real_kind): Ditto.
815 * trans-decl.c (gfc_build_intrinsic_function_decls):
816 Change call from selected_real_kind to selected_real_kind2008.
817 * intrinsic.texi (SELECTED_REAL_KIND): Update for radix.
818 (PRECISION, RANGE, RADIX): Add cross @refs.
820 2010-06-25 Tobias Burnus <burnus@net-b.de>
822 * decl.c (gfc_match_entry): Mark ENTRY as GFC_STD_F2008_OBS.
823 * gfortran.texi (_gfortran_set_options): Update for
824 GFC_STD_F2008_OBS addition.
825 * libgfortran.h: Add GFC_STD_F2008_OBS.
826 * options.c (set_default_std_flags, gfc_handle_option): Handle
828 io.c (check_format): Fix allow_std check.
830 2010-06-25 Tobias Burnus <burnus@net-b.de>
832 * decl.c (gfc_match_entry): Allow END besides
833 END SUBROUTINE/END FUNCTION for contained procedures.
835 2010-06-25 Tobias Burnus <burnus@net-b.de>
837 * parse.c (next_free, next_fixed): Allow ";" as first character.
839 2010-06-24 Tobias Burnus <burnus@net-b.de>
842 * decl.c (variable_decl): Fix IMPORT diagnostic for CLASS.
844 2010-06-22 Janus Weil <janus@gcc.gnu.org>
847 * resolve.c (resolve_fl_derived): Avoid checking for abstract on class
850 2010-06-21 Tobias Burnus <burnus@net-b.de>
853 * interface.c (compare_parameter): Add gfc_is_simply_contiguous
855 * symbol.c (gfc_add_contiguous): New function.
856 (gfc_copy_attr, check_conflict): Handle contiguous attribute.
857 * decl.c (match_attr_spec): Ditto.
858 (gfc_match_contiguous): New function.
859 * resolve.c (resolve_fl_derived, resolve_symbol): Handle
861 * gfortran.h (symbol_attribute): Add contiguous.
862 (gfc_is_simply_contiguous): Add prototype.
863 (gfc_add_contiguous): Add prototype.
864 * match.h (gfc_match_contiguous): Add prototype.
865 * parse.c (decode_specification_statement,
866 decode_statement): Handle contiguous attribute.
867 * expr.c (gfc_is_simply_contiguous): New function.
868 * dump-parse-tree.c (show_attr): Handle contiguous.
869 * module.c (ab_attribute, attr_bits, mio_symbol_attribute):
871 * trans-expr.c (gfc_add_interface_mapping): Copy
873 * trans-array.c (gfc_conv_descriptor_stride_get,
874 gfc_conv_array_parameter): Handle contiguous arrays.
875 * trans-types.c (gfc_build_array_type, gfc_build_array_type,
876 gfc_sym_type, gfc_get_derived_type, gfc_get_array_descr_info):
878 * trans.h (gfc_array_kind): Ditto.
879 * trans-decl.c (gfc_get_symbol_decl): Ditto.
881 2010-06-20 Joseph Myers <joseph@codesourcery.com>
883 * options.c (gfc_handle_option): Don't handle N_OPTS.
885 2010-06-19 Janus Weil <janus@gcc.gnu.org>
888 * resolve.c (resolve_fl_derived): Reverse ordering of conditions
891 2010-06-18 Tobias Burnus <burnus@net-b.de>
894 * resolve.c (resolve_allocate_deallocate): Properly check
895 part-refs in stat=/errmsg= for invalid use.
897 2010-06-17 Janus Weil <janus@gcc.gnu.org>
900 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
901 Return directly in case of an error.
903 2010-06-16 Janus Weil <janus@gcc.gnu.org>
906 * gfortran.h (gfc_get_typebound_proc): Modified Prototype.
907 * decl.c (match_procedure_in_type): Give a unique gfc_typebound_proc
908 structure to each procedure in a procedure list.
909 * module.c (mio_typebound_proc): Add NULL argument to
910 'gfc_get_typebound_proc'.
911 * symbol.c (gfc_get_typebound_proc): Add a new argument, which is used
912 to initialize the new structure.
914 2010-06-15 Janus Weil <janus@gcc.gnu.org>
917 * gfortran.h (gfc_expr): Add new member 'mold'.
918 * match.c (gfc_match_allocate): Implement the MOLD tag.
919 * resolve.c (resolve_allocate_expr): Ditto.
920 * trans-stmt.c (gfc_trans_allocate): Ditto.
922 2010-06-15 Jakub Jelinek <jakub@redhat.com>
925 * trans-openmp.c (gfc_omp_predetermined_sharing): Don't return
926 OMP_CLAUSE_DEFAULT_SHARED for artificial vars with
927 GFC_DECL_SAVED_DESCRIPTOR set.
928 (gfc_omp_report_decl): New function.
929 * trans.h (gfc_omp_report_decl): New prototype.
930 * f95-lang.c (LANG_HOOKS_OMP_REPORT_DECL): Redefine.
932 2010-06-13 Daniel Franke <franke.daniel@gmail.com>
936 * gfortranspec.c (lang_specific_driver): Removed deprecation
938 * lang.opt: Add options -M, -MM, -MD, -MMD, -MF, -MG, -MP, -MT, -MQ.
939 * lang-specs.h (CPP_FORWARD_OPTIONS): Add -M* options.
940 * cpp.h (gfc_cpp_makedep): New.
941 (gfc_cpp_add_dep): New.
942 (gfc_cpp_add_target): New.
943 * cpp.c (gfc_cpp_option): Add deps* members.
944 (gfc_cpp_makedep): New.
945 (gfc_cpp_add_dep): New.
946 (gfc_cpp_add_target): New.
947 (gfc_cpp_init_options): Initialize new options.
948 (gfc_cpp_handle_option): Handle new options.
949 (gfc_cpp_post_options): Map new options to libcpp-options.
950 (gfc_cpp_init): Handle deferred -MQ and -MT options.
951 (gfc_cpp_done): If requested, write dependencies to file.
952 * module.c (gfc_dump_module): Add a module filename as target.
953 * scanner.c (open_included_file): New parameter system; add the
954 included file as dependency.
955 (gfc_open_included_file): Add the included file as dependency.
956 (gfc_open_intrinsic_module): Likewise.
957 * invoke.texi: Removed deprecation warning for -M.
958 * gfortran.texi: Removed Makefile-dependencies project.
960 2010-06-12 Daniel Franke <franke.daniel@gmail.com>
962 * resolve.c (resolve_global_procedure): Improved checking if an
963 explicit interface is required.
965 2010-06-12 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
967 * trans-decl.c (gfc_build_intrinsic_function_decls): Fix
969 * trans-intrinsic.c (gfc_conv_intrinsic_fdate): Fix argument type.
970 (gfc_conv_intrinsic_ttynam): Likewise.
971 (gfc_conv_intrinsic_trim): Likewise.
973 2010-06-12 Janus Weil <janus@gcc.gnu.org>
976 * decl.c (match_procedure_in_type): Allow procedure lists (F08).
978 2010-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
980 * trans-intrinsic.c (gfc_build_intrinsic_lib_fndecls): Fix comment.
982 2010-06-11 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
984 * mathbuiltins.def: Add builtins that do not directly correspond
985 to a Fortran intrinsic, with new macro OTHER_BUILTIN.
986 * f95-lang.c (gfc_init_builtin_functions): Define OTHER_BUILTIN.
987 * trans-intrinsic.c (gfc_intrinsic_map_t): Remove
988 code_{r,c}{4,8,10,16} fields. Add
989 {,complex}{float,double,long_double}_built_in fields.
990 (gfc_intrinsic_map): Adjust definitions of DEFINE_MATH_BUILTIN,
991 DEFINE_MATH_BUILTIN_C and LIB_FUNCTION accordingly. Add
992 definition of OTHER_BUILTIN.
993 (real_compnt_info): Remove unused struct.
994 (builtin_decl_for_precision, builtin_decl_for_float_kind): New
996 (build_round_expr): Call builtin_decl_for_precision instead of
998 (gfc_conv_intrinsic_aint): Call builtin_decl_for_float_kind
1000 (gfc_build_intrinsic_lib_fndecls): Match
1001 {real,complex}{4,8,10,16}decl into the C-style built_in_decls.
1002 (gfc_get_intrinsic_lib_fndecl): Do not hardcode floating-point
1004 (gfc_conv_intrinsic_lib_function): Go through all the extended
1006 (gfc_trans_same_strlen_check): Call builtin_decl_for_float_kind
1007 instead of a switch.
1008 (gfc_conv_intrinsic_abs): Likewise.
1009 (gfc_conv_intrinsic_mod): Likewise.
1010 (gfc_conv_intrinsic_sign): Likewise.
1011 (gfc_conv_intrinsic_fraction): Likewise.
1012 (gfc_conv_intrinsic_nearest): Likewise.
1013 (gfc_conv_intrinsic_spacing): Likewise.
1014 (gfc_conv_intrinsic_rrspacing): Likewise.
1015 (gfc_conv_intrinsic_scale): Likewise.
1016 (gfc_conv_intrinsic_set_exponent): Likewise.
1018 2010-06-11 Paul Thomas <pault@gcc.gnu.org>
1022 * trans-expr.c (gfc_conv_derived_to_class): Handle array-valued
1023 functions with CLASS formal arguments.
1025 2010-06-10 Janus Weil <janus@gcc.gnu.org>
1028 * resolve.c (conformable_arrays): Handle allocatable components.
1030 2010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1033 * gfortran.texi: Document that Cray pointers cannot be function
1036 2010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1039 * gfortran.texi: Document lack of support for syntax
1040 "complex FUNCTION name*16()", and existence of alternative
1041 legacy syntax "complex*16 FUNCTION name()".
1043 2010-06-10 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1046 * intrinsic.texi (FLUSH): Note the difference between FLUSH and
1047 POSIX's fsync(), and how to call the latter from Fortran code.
1049 2010-06-10 Daniel Franke <franke.daniel@gmail.com>
1052 * interface.c (compare_actual_formal): Reject actual arguments with
1053 array subscript passed to ASYNCHRONOUS dummys.
1055 2010-06-10 Daniel Kraft <d@domob.eu>
1058 * gfortran.h (enum gfc_statement): Add ST_ASSOCIATE, ST_END_ASSOCIATE.
1059 (struct gfc_symbol): New field `assoc'.
1060 (struct gfc_association_list): New struct.
1061 (struct gfc_code): New struct `block' in union, move `ns' there
1062 and add association list.
1063 (gfc_free_association_list): New method.
1064 (gfc_has_vector_subscript): Made public;
1065 * match.h (gfc_match_associate): New method.
1066 * parse.h (enum gfc_compile_state): Add COMP_ASSOCIATE.
1067 * decl.c (gfc_match_end): Handle ST_END_ASSOCIATE.
1068 * interface.c (gfc_has_vector_subscript): Made public.
1069 (compare_actual_formal): Rename `has_vector_subscript' accordingly.
1070 * match.c (gfc_match_associate): New method.
1071 (gfc_match_select_type): Change reference to gfc_code's `ns' field.
1072 * primary.c (match_variable): Don't allow names associated to expr here.
1073 * parse.c (decode_statement): Try matching ASSOCIATE statement.
1074 (case_exec_markers, case_end): Add ASSOCIATE statement.
1075 (gfc_ascii_statement): Hande ST_ASSOCIATE and ST_END_ASSOCIATE.
1076 (parse_associate): New method.
1077 (parse_executable): Handle ST_ASSOCIATE.
1078 (parse_block_construct): Change reference to gfc_code's `ns' field.
1079 * resolve.c (resolve_select_type): Ditto.
1080 (resolve_code): Ditto.
1081 (resolve_block_construct): Ditto and add comment.
1082 (resolve_select_type): Set association list in generated BLOCK to NULL.
1083 (resolve_symbol): Resolve associate names.
1084 * st.c (gfc_free_statement): Change reference to gfc_code's `ns' field
1085 and free association list.
1086 (gfc_free_association_list): New method.
1087 * symbol.c (gfc_new_symbol): NULL new field `assoc'.
1088 * trans-stmt.c (gfc_trans_block_construct): Change reference to
1089 gfc_code's `ns' field.
1091 2010-06-10 Kai Tietz <kai.tietz@onevision.com>
1093 * error.c (error_print): Pre-initialize loc by NULL.
1094 * openmp.c (resolve_omp_clauses): Add explicit
1095 braces to avoid ambigous else.
1096 * array.c (match_subscript): Pre-initialize m to MATCH_ERROR.
1098 2010-06-10 Gerald Pfeifer <gerald@pfeifer.com>
1100 * gfc-internals.texi: Move to GFDL 1.3.
1101 * gfortran.texi: Ditto.
1102 * intrinsic.texi: Ditto.
1103 * invoke.texi: Ditto.
1105 2010-06-09 Daniel Franke <franke.daniel@gmail.com>
1108 * check.c (gfc_check_selected_real_kind): Verify that the
1109 actual arguments are scalar.
1111 2010-06-09 Daniel Franke <franke.daniel@gmail.com>
1114 * intrinsic.c (gfc_convert_type_warn): Further improve -Wconversion.
1116 2010-06-09 Janus Weil <janus@gcc.gnu.org>
1119 * dump-parse-tree.c (show_symbol): Avoid infinite loop.
1121 2010-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
1123 * fortran/symbol.c (check_conflict): Remove an invalid conflict check.
1125 2010-06-09 Steven G. Kargl <kargl@gcc.gnu.org>
1127 * fortran/intrinsic.c (add_functions): Change gfc_check_btest,
1128 gfc_check_ibclr, and gfc_check_ibset to gfc_check_bitfcn.
1129 * fortran/intrinsic.h: Remove prototypes for gfc_check_btest,
1130 gfc_check_ibclr, and gfc_check_ibset. Add prototype for
1132 * fortran/check.c (nonnegative_check, less_than_bitsize1,
1133 less_than_bitsize2): New functions.
1134 (gfc_check_btest): Renamed to gfc_check_bitfcn. Use
1135 nonnegative_check and less_than_bitsize1.
1136 (gfc_check_ibclr, gfc_check_ibset): Removed.
1137 (gfc_check_ibits,gfc_check_mvbits): Use nonnegative_check and
1140 2010-06-09 Janus Weil <janus@gcc.gnu.org>
1143 * resolve.c (resolve_typebound_function,resolve_typebound_subroutine):
1146 2010-06-09 Kai Tietz <kai.tietz@onevision.com>
1148 * resolve.c (resolve_deallocate_expr): Avoid warning
1149 about possible use of iunitialized sym.
1150 (resolve_allocate_expr): Pre-initialize sym by NULL.
1152 2010-06-09 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
1155 * f95-lang.c (gfc_init_builtin_functions): Remove comment.
1157 2010-06-08 Laurynas Biveinis <laurynas.biveinis@gmail.com>
1159 * trans-types.c (gfc_get_nodesc_array_type): Use typed GC
1161 (gfc_get_array_type_bounds): Likewise.
1163 * trans-decl.c (gfc_allocate_lang_decl): Likewise.
1164 (gfc_find_module): Likewise.
1166 * f95-lang.c (pushlevel): Likewise.
1168 * trans.h (struct lang_type): Add variable_size GTY option.
1169 (struct lang_decl): Likewise.
1171 2010-06-08 Tobias Burnus <burnus@net-b.de>
1174 * symbol.c (check_conflict): Move protected--external/procedure check ...
1175 * resolve.c (resolve_select_type): ... to the resolution stage.
1177 2010-06-07 Tobias Burnus <burnus@net-b.de>
1179 * options.c (gfc_handle_option): Fix -fno-recursive.
1181 2010-06-07 Tobias Burnus <burnus@net-b.de>
1183 * gfc-internals.texi (copyrights-gfortran): Fix copyright year format.
1184 * gfortran.texi (copyrights-gfortran): Ditto.
1186 2010-06-07 Joseph Myers <joseph@codesourcery.com>
1188 * lang.opt (fshort-enums): Define using Var and VarExists.
1189 * options.c (gfc_handle_option): Don't set flag_short_enums here.
1191 2010-06-05 Paul Thomas <pault@gcc.gnu.org>
1192 Janus Weil <janus@gcc.gnu.org>
1195 * resolve.c (get_declared_from_expr): Move to before
1196 resolve_typebound_generic_call. Make new_ref and class_ref
1197 ignorable if set to NULL.
1198 (resolve_typebound_generic_call): Once we have resolved the
1199 generic call, check that the specific instance is that which
1200 is bound to the declared type.
1201 (resolve_typebound_function,resolve_typebound_subroutine): Avoid
1202 freeing 'class_ref->next' twice.
1204 2010-06-05 Paul Thomas <pault@gcc.gnu.org>
1207 * trans-array.c (structure_alloc_comps): Dereference scalar
1208 'decl' if it is a REFERENCE_TYPE. Tidy expressions containing
1211 2010-06-04 Joseph Myers <joseph@codesourcery.com>
1213 * gfortranspec.c (append_arg, lang_specific_driver): Use
1214 GCC-specific formats in diagnostics.
1216 2010-06-02 Tobias Burnus <burnus@net-b.de>
1219 * parse.c (gfc_fixup_sibling_symbols): Do not "fix" use-associated
1222 2010-06-01 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1225 * match.c (gfc_match_stopcode): Move gfc_match_eos call inside
1228 2010-05-31 Steven G. Kargl <kargl@gcc.gnu.org>
1230 * fortran/gfortran.texi: Fix typos in description of variable-format-
1233 2010-05-31 Thomas Koenig <tkoenig@gcc.gnu.org>
1236 * dependency.c (gfc_check_section_vs_section): Check
1237 for interleaving array assignments without conflicts.
1239 2010-05-30 Janus Weil <janus@gcc.gnu.org>
1241 * gcc/fortran/gfortran.h (CLASS_DATA): New macro for accessing the
1242 $data component of a class container.
1243 * gcc/fortran/decl.c (attr_decl1): Use macro CLASS_DATA.
1244 * gcc/fortran/expr.c (gfc_check_pointer_assign,gfc_check_assign_symbol,
1245 gfc_has_ultimate_allocatable,gfc_has_ultimate_pointer): Ditto.
1246 * gcc/fortran/interface.c (matching_typebound_op): Ditto.
1247 * gcc/fortran/match.c (gfc_match_allocate, gfc_match_deallocate): Ditto.
1248 * gcc/fortran/parse.c (parse_derived): Ditto.
1249 * gcc/fortran/primary.c (gfc_match_varspec, gfc_variable_attr,
1250 gfc_expr_attr): Ditto.
1251 * gcc/fortran/resolve.c (resolve_structure_cons, find_array_spec,
1252 resolve_deallocate_expr, resolve_allocate_expr, resolve_select_type,
1253 resolve_fl_var_and_proc, resolve_typebound_procedure,
1254 resolve_fl_derived): Ditto.
1255 * gcc/fortran/symbol.c (gfc_type_compatible): Restructured.
1256 * gcc/fortran/trans-array.c (structure_alloc_comps): Use macro
1258 * gcc/fortran/trans-decl.c (gfc_get_symbol_decl,
1259 gfc_trans_deferred_vars): Ditto.
1260 * gcc/fortran/trans-stmt.c (gfc_trans_allocate): Ditto.
1262 2010-05-28 Tobias Burnus <burnus@net-b.de>
1264 * options.c (gfc_handle_option): Fix handling of -fno-whole-file.
1266 2010-05-28 Joseph Myers <joseph@codesourcery.com>
1268 * gfortranspec.c (append_arg, lang_specific_driver): Use
1269 fatal_error instead of fatal. Use warning instead of fprintf for
1272 2010-05-28 Joseph Myers <joseph@codesourcery.com>
1274 * cpp.c (gfc_cpp_init_0): Use xstrerror instead of strerror.
1275 * module.c (write_char, gfc_dump_module, gfc_use_module): Use
1276 xstrerror instead of strerror.
1278 2010-05-26 Joseph Myers <joseph@codesourcery.com>
1280 * cpp.c (cb_cpp_error): Save and restore
1281 global_dc->warn_system_headers, not variable warn_system_headers.
1283 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1285 * fortran/f95-lang.c: Do not include libfuncs.h, expr.h, and except.h.
1287 2010-05-26 Steven Bosscher <steven@gcc.gnu.org>
1289 * trans-common.c: Do not include rtl.h, include output.h instead.
1290 * trans-decl.c: Likewise.
1292 2010-05-26 Paul Thomas <pault@gcc.gnu.org>
1295 * resolve.c (resolve_global_procedure): Resolve the gsymbol's
1296 namespace before trying to reorder the gsymbols.
1298 2010-05-25 Daniel Franke <franke.daniel@gmail.com>
1303 * resolve.c (resolve_global_procedure): Add check for global
1304 procedures with implicit interfaces and assumed-shape or optional
1305 dummy arguments. Verify that function return type, kind and string
1308 2010-05-21 Tobias Burnus <burnus@net-b.de>
1310 * gfortran.h: Do not include system.h.
1311 * bbt.c: Include system.h.
1313 * dependency.c: Ditto.
1314 * dump-parse-tree.c: Ditto.
1315 * arith.h: Do not include gfortran.h.
1316 * constructor.h: Do not include gfortran.h and splay-tree.h.
1317 * match.h: Do not include gfortran.h.
1319 * target-memory.h: Ditto.
1320 * openmp.c: Do not include toplev.h and target.h.
1321 * trans-stmt.c: Ditto not include toplev.h.
1323 * trans-common.c: Tell why toplev.h is needed. And
1324 do not include target.h.
1325 * trans-expr.c: Tell why toplev.h is needed.
1326 * trans-array.c: Ditto.
1327 * trans-openmp.c: Ditto.
1328 * trans-const.c: Ditto.
1330 * trans-types.c: Ditto.
1331 * trans-io.c: Ditto.
1332 * trans-decl.c: Ditto.
1335 * trans-intrinsic.c: Ditto.
1338 2010-05-22 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1341 * match.c (gfc_match_stopcode): Use gfc_match_init_expr. Go to cleanup
1342 before returning MATCH_ERROR. Add check for scalar. Add check for
1343 default integer kind.
1345 2010-05-22 Janus Weil <janus@gcc.gnu.org>
1348 * match.c (gfc_match_select_type): On error jump back out of the local
1350 * parse.c (parse_derived): Defer creation of vtab symbols to resolution
1351 stage, more precisely to ...
1352 * resolve.c (resolve_fl_derived): ... this place.
1354 2010-05-22 Janus Weil <janus@gcc.gnu.org>
1357 * resolve.c (ensure_not_abstract): Allow abstract types with
1358 non-abstract ancestors.
1360 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1362 * trans-const.c: Include realmpfr.h.
1363 * Make-lang.in: Update dependencies.
1365 2010-05-21 Steven Bosscher <steven@gcc.gnu.org>
1367 * trans-const.c, trans-types.c, trans-intrinsic.c:
1368 Clean up redundant includes.
1370 2010-05-20 Daniel Franke <franke.daniel@gmail.com>
1373 * lang.opt (Wunused-dummy-argument): New option.
1374 * gfortran.h (gfc_option_t): Add warn_unused_dummy_argument.
1375 * options.c (gfc_init_options): Disable warn_unused_dummy_argument.
1376 (set_Wall): Enable warn_unused_dummy_argument.
1377 (gfc_handle_option): Set warn_unused_dummy_argument according to
1379 * trans-decl.c (generate_local_decl): Separate warnings about
1380 unused variables and unused dummy arguments.
1381 * invoke.texi: Documented new option.
1383 2010-05-20 Steven Bosscher <steven@gcc.gnu.org>
1385 * trans-expr.c: Do not include convert.h, ggc.h, real.h, and gimple.h.
1386 (gfc_conv_string_tmp): Do not assert type comparibilty.
1387 * trans-array.c: Do not include gimple.h, ggc.h, and real.h.
1388 (gfc_conv_expr_descriptor): Remove assert.
1389 * trans-common.c: Clarify why rtl.h and tm.h are included.
1390 * trans-openmp.c: Do not include ggc.h and real.h.
1391 Explain why gimple.h is included.
1392 * trans-const.c: Do not include ggc.h.
1393 * trans-stmt.c: Do not include gimple.h, ggc.h, and real.h.
1394 * trans.c: Do not include ggc.h and real.h.
1395 Explain why gimple.h is included.
1396 * trans-types.c: Do not include tm.h. Explain why langhooks.h
1397 and dwarf2out.h are included.
1398 * trans-io.c: Do not include gimple.h and real.h.
1399 * trans-decl.c: Explain why gimple.h, tm.h, and rtl.h are included.
1400 * trans-intrinsic.c: Do not include gimple.h. Explain why tm.h
1403 2010-05-20 Tobias Burnus <burnus@net-b.de>
1405 * options.c (gfc_init_options,gfc_post_options): Enable
1406 flag_associative_math by default.
1408 2010-05-19 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1411 * trans-stmt.c (gfc_trans_stop): Add generation of call to
1412 gfortran_error_stop_numeric. Fix up some whitespace. Use stop_string for
1413 blank STOP, handling a null expression. (gfc_trans_pause): Use
1414 pause_string for blank PAUSE.
1415 * trans.h: Add external function declaration for error_stop_numeric.
1416 * trans-decl.c (gfc_build_builtin_function_decls): Add the building of
1417 the declaration for the library call. Adjust whitespaces.
1418 * match.c (gfc_match_stopcode): Remove use of the actual stop code to
1419 signal no stop code. Match the expression following the stop and pass
1420 that to the translators. Remove the old use of digit matching. Add
1421 checks that the stop_code expression is INTEGER or CHARACTER, constant,
1422 and if CHARACTER, default character KIND.
1424 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
1427 * lang.opt (Wconversion-extra): New option.
1428 * gfortran.h (gfc_option_t): Add warn_conversion_extra.
1429 * options.c (gfc_init_options): Disable -Wconversion-extra by default.
1430 (set_Wall): Enable -Wconversion.
1431 (gfc_handle_option): Set warn_conversion_extra.
1432 * intrinsic.c (gfc_convert_type_warn): Ignore kind conditions
1433 introduced for -Wconversion if -Wconversion-extra is present.
1434 * invoke.texi: Add -Wconversion to -Wall; document new behaviour of
1435 -Wconversion; document -Wconversion-extra.
1437 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
1440 * gfortran.h (gfc_has_default_initializer): New.
1441 * expr.c (gfc_has_default_initializer): New.
1442 * resolve.c (has_default_initializer): Removed, use
1443 gfc_has_default_initializer() instead. Updated all callers.
1444 * trans-array.c (has_default_initializer): Removed, use
1445 gfc_has_default_initializer() instead. Updated all callers.
1446 * trans-decl.c (generate_local_decl): Do not check the
1447 first component only to check for initializers, but use
1448 gfc_has_default_initializer() instead.
1450 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
1453 * primary.c (match_string_constant): Move start_locus just inside
1455 * data.c (create_character_intializer): Clarified truncation warning.
1457 2010-05-19 Daniel Franke <franke.daniel@gmail.com>
1460 * intrinsic.h (gfc_check_float): New prototype.
1461 (gfc_check_sngl): New prototype.
1462 * check.c (gfc_check_float): New.
1463 (gfc_check_sngl): New.
1464 * intrinsic.c (add_functions): Moved DFLOAT from aliasing DBLE
1465 to be a specific for REAL. Added check routines for FLOAT, DFLOAT
1467 * intrinsic.texi: Removed individual nodes of FLOAT, DFLOAT and SNGL,
1468 added them to the list of specifics of REAL instead.
1470 2010-05-17 Janus Weil <janus@gcc.gnu.org>
1473 * trans-expr.c (gfc_conv_structure): Remove unneeded and buggy code.
1474 This is now handled via 'gfc_class_null_initializer'.
1476 2010-05-17 Janus Weil <janus@gcc.gnu.org>
1478 * class.c (gfc_add_component_ref,gfc_class_null_initializer,
1479 gfc_build_class_symbol,add_proc_component,add_proc_comps,
1480 add_procs_to_declared_vtab1,copy_vtab_proc_comps,
1481 add_procs_to_declared_vtab,add_generic_specifics,
1482 add_generics_to_declared_vtab,gfc_find_derived_vtab,
1483 find_typebound_proc_uop,gfc_find_typebound_proc,
1484 gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
1485 gfc_get_tbp_symtree): Moved here from other places.
1486 * expr.c (gfc_add_component_ref,gfc_class_null_initializer): Move to
1488 * gfortran.h (gfc_build_class_symbol,gfc_find_derived_vtab,
1489 gfc_find_typebound_proc,gfc_find_typebound_user_op,
1490 gfc_find_typebound_intrinsic_op,gfc_get_tbp_symtree,
1491 gfc_add_component_ref, gfc_class_null_initializer): Moved to class.c.
1492 * Make-lang.in: Add class.o.
1493 * symbol.c (gfc_build_class_symbol,add_proc_component,add_proc_comps,
1494 add_procs_to_declared_vtab1,copy_vtab_proc_comps,
1495 add_procs_to_declared_vtab,add_generic_specifics,
1496 add_generics_to_declared_vtab,gfc_find_derived_vtab,
1497 find_typebound_proc_uop,gfc_find_typebound_proc,
1498 gfc_find_typebound_user_op,gfc_find_typebound_intrinsic_op,
1499 gfc_get_tbp_symtree): Move to class.c.
1501 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1503 * trans-types.c (gfc_init_types): Use build_function_type_list.
1504 (gfc_get_ppc_type): Likewise.
1505 * trans-decl.c (gfc_generate_constructors): Likewise.
1506 * f95-lang.c (build_builtin_fntypes): Likewise.
1507 (gfc_init_builtin_functions): Likewise.
1508 (DEF_FUNCTION_TYPE_0): Likewise.
1509 (DEF_FUNCTION_TYPE_1): Likewise.
1510 (DEF_FUNCTION_TYPE_2): Likewise.
1511 (DEF_FUNCTION_TYPE_3): Likewise.
1512 (DEF_FUNCTION_TYPE_4): Likewise.
1513 (DEF_FUNCTION_TYPE_5): Likewise.
1514 (DEF_FUNCTION_TYPE_6): Likewise.
1515 (DEF_FUNCTION_TYPE_7): Likewise. Use ARG7.
1516 (DEF_FUNCTION_TYPE_VAR_0): Use build_varags_function_type_list.
1518 2010-05-17 Nathan Froyd <froydnj@codesourcery.com>
1520 * trans-array.c (gfc_trans_array_constructor_value): Use
1521 build_constructor instead of build_constructor_from_list.
1522 (gfc_build_constant_array_constructor): Likewise.
1523 * trans-decl.c (create_main_function): Likewise.
1524 * trans-stmt.c (gfc_trans_character_select): Likewise.
1526 2010-05-17 Janus Weil <janus@gcc.gnu.org>
1529 * resolve.c (resolve_fl_var_and_proc): Move error messages here from ...
1530 (resolve_fl_variable_derived): ... this place.
1531 (resolve_symbol): Make sure function symbols (and their result
1532 variables) are not resolved twice.
1534 2010-05-16 Daniel Franke <franke.daniel@gmail.com>
1537 * array.c (match_array_list): Revert change from 2010-05-13.
1539 2010-05-16 Richard Guenther <rguenther@suse.de>
1541 * trans-decl.c (module_htab_decls_hash): Revert last change.
1543 2010-05-16 Richard Guenther <rguenther@suse.de>
1545 * trans-decl.c (module_htab_decls_hash): Use IDENTIFIER_HASH_VALUE.
1547 2010-05-16 Manuel López-Ibáñez <manu@gcc.gnu.org>
1549 * options.c (set_Wall): Remove special logic for Wuninitialized
1552 2010-05-15 Janus Weil <janus@gcc.gnu.org>
1556 * trans-decl.c (gfc_trans_deferred_vars): Modify ordering of
1559 2010-05-15 Janus Weil <janus@gcc.gnu.org>
1563 * gfortran.h (gfc_class_null_initializer): New prototype.
1564 * expr.c (gfc_class_null_initializer): New function to build a NULL
1565 initializer for CLASS pointers.
1566 * symbol.c (gfc_build_class_symbol): Modify internal naming of class
1567 containers. Remove default NULL initialization of $data component.
1568 * trans.c (gfc_allocate_array_with_status): Fix wording of an error
1570 * trans-expr.c (gfc_conv_initializer,gfc_trans_subcomponent_assign):
1571 Use new function 'gfc_class_null_initializer'.
1572 * trans-intrinsic.c (gfc_conv_allocated): Handle allocatable scalar
1575 2010-05-14 Steven G. Kargl <kargl@gcc.gnu.org>
1578 * fortran/interface.c (get_sym_storage_size): Use signed instead of
1579 unsigned mpz_get_?i routines.
1581 2010-05-14 Jakub Jelinek <jakub@redhat.com>
1583 * trans.c (trans_code): Set backend locus early.
1584 * trans-decl.c (gfc_get_fake_result_decl): Use source location
1585 of the function instead of current input_location.
1587 2010-05-13 Daniel Franke <franke.daniel@gmail.com>
1590 * intrinsic.c (gfc_init_expr): Renamed to gfc_init_expr_flag.
1592 * expr.c (init_flag): Removed; use gfc_init_expr_flag everywhere.
1593 * array.c (match_array_list): Pass on gfc_init_expr_flag when matching
1596 2010-05-13 Jakub Jelinek <jakub@redhat.com>
1599 * openmp.c (resolve_omp_clauses): Allow procedure pointers in clause
1601 * trans-openmp.c (gfc_omp_privatize_by_reference): Don't privatize
1602 by reference dummy procedures or non-dummy procedure pointers.
1603 (gfc_omp_predetermined_sharing): Return
1604 OMP_CLAUSE_DEFAULT_FIRSTPRIVATE for dummy procedures.
1606 2010-05-11 Daniel Franke <franke.daniel@gmail.com>
1609 * openmp.c (gfc_match_omp_taskwait): Report unexpected characters
1610 after OMP statement.
1611 (gfc_match_omp_critical): Likewise.
1612 (gfc_match_omp_flush): Likewise.
1613 (gfc_match_omp_workshare): Likewise.
1614 (gfc_match_omp_master): Likewise.
1615 (gfc_match_omp_ordered): Likewise.
1616 (gfc_match_omp_atomic): Likewise.
1617 (gfc_match_omp_barrier): Likewise.
1618 (gfc_match_omp_end_nowait): Likewise.
1620 2010-05-11 Daniel Franke <franke.daniel@gmail.com>
1623 * resolve.c (validate_case_label_expr): Removed FIXME.
1624 (resolve_select): Raise default warning on case labels out of range
1625 of the case expression.
1627 2010-05-10 Daniel Franke <franke.daniel@gmail.com>
1632 * intrinsic.c (gfc_convert_type_warn): Be more discriminative
1633 about conversion warnings.
1635 2010-05-10 Janus Weil <janus@gcc.gnu.org>
1638 * match.c (gfc_match_select_type): Move error message to
1639 resolve_select_type.
1640 * resolve.c (resolve_select_type): Error message moved here from
1641 gfc_match_select_type. Correctly set type of temporary.
1643 2010-05-10 Richard Guenther <rguenther@suse.de>
1645 * trans-decl.c (gfc_build_library_function_decl): Split out
1647 (build_library_function_decl_1): ... this new function.
1648 Set a fnspec attribute if a specification was provided.
1649 (gfc_build_library_function_decl_with_spec): New function.
1650 (gfc_build_intrinsic_function_decls): Annotate internal_pack
1651 and internal_unpack.
1653 2010-05-07 Daniel Franke <franke.daniel@gmail.com>
1656 * intrinc.c (gfc_is_intrinsic): Do not prematurely mark symbol
1659 2010-05-07 Jason Merrill <jason@redhat.com>
1661 * trans-expr.c (gfc_conv_procedure_call): Rename nullptr to null_ptr
1662 to avoid -Wc++-compat warning.
1664 2010-05-06 Manuel López-Ibáñez <manu@gcc.gnu.org>
1667 * options.c (gfc_handle_option): Add argument kind.
1668 * gfortran.h (gfc_handle_option): Update declaration.
1670 2010-05-06 Tobias Burnus <burnus@net-b.de>
1673 * trans-types.c (gfc_sym_type): Mark Cray pointees as
1676 2010-05-05 Daniel Franke <franke.daniel@gmail.com>
1679 * resolve.c (traverse_data_list): Rephrase error message for
1680 non-constant bounds in data-implied-do.
1682 2010-05-05 Daniel Franke <franke.daniel@gmail.com>
1685 * gfortran.h: Removed repeat count from constructor, removed
1687 * data.h (gfc_assign_data_value_range): Changed return value from
1689 * data.c (gfc_assign_data_value): Add location to constructor element.
1690 (gfc_assign_data_value_range): Call gfc_assign_data_value()
1691 for each element in range. Return early if an error was generated.
1692 * resolve.c (check_data_variable): Stop early if range assignment
1695 2010-05-05 Janus Weil <janus@gcc.gnu.org>
1698 * resolve.c (resolve_fl_derived): Some fixes for class variables.
1699 * symbol.c (gfc_build_class_symbol): Add separate class container for
1702 2010-05-03 Steven G. Kargl <kargl@gcc.gnu.org>
1705 * fortran/parse.c (parse_interface): Do not dereference a NULL pointer.
1707 2010-05-02 Tobias Burnus <burnus@net-b.de>
1710 * intrinsic.c (add_functions): Fix GFC_STD and add gfc_resolve_ calls
1711 for lcobound, ucobound, image_index and this_image.
1712 * intrinsic.h (gfc_resolve_lcobound, gfc_resolve_this_image,
1713 gfc_resolve_image_index, gfc_resolve_ucobound): New prototypes.
1714 * iresolve.c (gfc_resolve_lcobound, gfc_resolve_this_image,
1715 gfc_resolve_image_index, gfc_resolve_ucobound, resolve_bound): New
1717 (gfc_resolve_lbound, gfc_resolve_ubound): Use resolve_bound.
1719 2010-04-30 Tobias Burnus <burnus@net-b.de>
1723 * trans-types.c (gfc_get_array_descriptor_base): Fix index
1724 calculation for array descriptor types.
1726 2010-04-29 Janus Weil <janus@gcc.gnu.org>
1729 * symbol.c (add_proc_component,copy_vtab_proc_comps): Remove
1730 initializers for PPC members of the vtabs.
1732 2010-04-29 Janus Weil <janus@gcc.gnu.org>
1735 * symbol.c (add_proc_component,add_proc_comps): Correctly set the 'ppc'
1736 attribute for all PPC members of the vtypes.
1737 (copy_vtab_proc_comps): Copy the correct interface.
1738 * trans.h (gfc_trans_assign_vtab_procs): Modified prototype.
1739 * trans-expr.c (gfc_trans_assign_vtab_procs): Pass the derived type as
1740 a dummy argument and make sure all PPC members of the vtab are
1741 initialized correctly.
1742 (gfc_conv_derived_to_class,gfc_trans_class_assign): Additional argument
1743 in call to gfc_trans_assign_vtab_procs.
1744 * trans-stmt.c (gfc_trans_allocate): Ditto.
1746 2010-04-29 Paul Thomas <pault@gcc.gnu.org>
1749 * resolve.c (resolve_typebound_function): Renamed
1750 resolve_class_compcall.Do all the detection of class references
1752 (resolve_typebound_subroutine): resolve_class_typebound_call
1753 renamed. Otherwise same as resolve_typebound_function.
1754 (gfc_resolve_expr): Call resolve_typebound_function.
1755 (resolve_code): Call resolve_typebound_subroutine.
1757 2010-04-29 Janus Weil <janus@gcc.gnu.org>
1760 * resolve.c (resolve_typebound_generic_call): For CLASS methods
1761 pass back the specific symtree name, rather than the target
1764 2010-04-29 Paul Thomas <pault@gcc.gnu.org>
1767 * resolve.c (resolve_structure_cons): Make the initializer of
1768 the vtab component 'extends' the same type as the component.
1770 2010-04-29 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1773 * interface.c (check_interface1): Pass symbol name rather than NULL to
1774 gfc_compare_interfaces.(gfc_compare_interfaces): Add assert to
1775 trap MULL. (gfc_compare_derived_types): Revert previous change
1776 incorporated incorrectly during merge from trunk, r155778.
1777 * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
1778 than NULL to gfc_compare_interfaces.
1779 * symbol.c (add_generic_specifics): Likewise.
1781 2010-02-29 Janus Weil <janus@gcc.gnu.org>
1784 * interface.c (gfc_compare_derived_types): Add condition for vtype.
1785 * symbol.c (gfc_find_derived_vtab): Sey access to private.
1786 (gfc_find_derived_vtab): Likewise.
1787 * module.c (ab_attribute): Add enumerator AB_VTAB.
1788 (mio_symbol_attribute): Use new attribute, AB_VTAB.
1789 (check_for_ambiguous): Likewise.
1791 2010-04-29 Paul Thomas <pault@gcc.gnu.org>
1792 Janus Weil <janus@gcc.gnu.org>
1795 * trans-expr.c (select_class_proc): Remove function.
1796 (conv_function_val): Delete reference to previous.
1797 (gfc_conv_derived_to_class): Add second argument to the call to
1798 gfc_find_derived_vtab.
1799 (gfc_conv_structure): Exclude proc_pointer components when
1800 accessing $data field of class objects.
1801 (gfc_trans_assign_vtab_procs): New function.
1802 (gfc_trans_class_assign): Add second argument to the call to
1803 gfc_find_derived_vtab.
1804 * symbol.c (gfc_build_class_symbol): Add delayed_vtab arg and
1805 implement holding off searching for the vptr derived type.
1806 (add_proc_component): New function.
1807 (add_proc_comps): New function.
1808 (add_procs_to_declared_vtab1): New function.
1809 (copy_vtab_proc_comps): New function.
1810 (add_procs_to_declared_vtab): New function.
1811 (void add_generic_specifics): New function.
1812 (add_generics_to_declared_vtab): New function.
1813 (gfc_find_derived_vtab): Add second argument to the call to
1814 gfc_find_derived_vtab. Add the calls to
1815 add_procs_to_declared_vtab and add_generics_to_declared_vtab.
1816 * decl.c (build_sym, build_struct): Use new arg in calls to
1817 gfc_build_class_symbol.
1818 * gfortran.h : Add vtype bitfield to symbol_attr. Remove the
1819 definition of struct gfc_class_esym_list. Modify prototypes
1820 of gfc_build_class_symbol and gfc_find_derived_vtab.
1821 * trans-stmt.c (gfc_trans_allocate): Add second argument to the
1822 call to gfc_find_derived_vtab.
1823 * module.c : Add the vtype attribute.
1824 * trans.h : Add prototype for gfc_trans_assign_vtab_procs.
1825 * resolve.c (resolve_typebound_generic_call): Add second arg
1826 to pass along the generic name for class methods.
1827 (resolve_typebound_call): The same.
1828 (resolve_compcall): Use the second arg to carry the generic
1829 name from the above. Remove the reference to class_esym.
1830 (check_members, check_class_members, resolve_class_esym,
1831 hash_value_expr): Remove functions.
1832 (resolve_class_compcall, resolve_class_typebound_call): Modify
1833 to use vtable rather than member by member calls.
1834 (gfc_resolve_expr): Modify second arg in call to
1836 (resolve_select_type): Add second arg in call to
1837 gfc_find_derived_vtab.
1838 (resolve_code): Add second arg in call resolve_typebound_call.
1839 (resolve_fl_derived): Exclude vtypes from check for late
1840 procedure definitions. Likewise for checking of explicit
1841 interface and checking of pass arg.
1842 * iresolve.c (gfc_resolve_extends_type_of): Add second arg in
1843 calls to gfc_find_derived_vtab.
1844 * match.c (select_type_set_tmp): Use new arg in call to
1845 gfc_build_class_symbol.
1846 * trans-decl.c (gfc_get_symbol_decl): Complete vtable if
1848 * parse.c (endType): Finish incomplete classes.
1850 2010-04-28 Tobias Burnus <burnus@net-b.de>
1854 * simplify.c (simplify_cobound): Handle scalar coarrays.
1856 2010-04-27 Tobias Burnus <burnus@net-b.de>
1858 * gfc-internals.texi: Update copyright year.
1859 * gfortran.texi: Ditto.
1860 * invoke.texi: Ditto.
1862 2010-04-27 Tobias Burnus <burnus@net-b.de>
1865 * resolve.c (resolve_allocate_expr): Allow array coarrays.
1866 * trans-types.h (gfc_get_array_type_bounds): Update prototype.
1867 * trans-types.c (gfc_get_array_type_bounds,
1868 gfc_get_array_descriptor_base): Add corank argument.
1869 * trans-array.c (gfc_array_init_size): Handle corank.
1870 (gfc_trans_create_temp_array, gfc_array_allocate,
1871 gfc_conv_expr_descriptor): Add corank argument to call.
1872 * trans-stmt.c (gfc_trans_pointer_assign_need_temp): Ditto.
1874 2010-04-24 Steven G. Kargl <kargl@gcc.gnu.org>
1878 * trans-array.c (gfc_trans_array_bound_check): Use TREE_CODE instead
1879 of mucking with a tree directly.
1881 2010-04-24 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1884 * io.c (gfc_match_open): Remove branch to syntax error. Add call to
1885 gfc_error with new error message.
1887 2010-04-24 Paul Thomas <pault@gcc.gnu.org>
1891 * trans-expr.c (gfc_conv_expr): Supply an address expression for
1893 (gfc_conv_expr_reference): Call gfc_conv_expr and return for
1895 * trans-array.c (gfc_add_loop_ss_code): Store the value rather
1896 than the address of a GFC_SS_REFERENCE.
1897 * trans.h : Change comment on GFC_SS_REFERENCE.
1899 2010-04-22 Richard Guenther <rguenther@suse.de>
1902 * resolve.c (gfc_resolve_index): Wrap around ...
1903 (gfc_resolve_index_1): ... this. Add parameter to allow
1904 any integer kind index type.
1905 (resolve_array_ref): Allow any integer kind for the start
1906 index of an array ref.
1908 2010-04-21 Jakub Jelinek <jakub@redhat.com>
1911 * f95-lang.c (gfc_define_builtin): Set TREE_NOTHROW on
1914 2010-04-20 Harald Anlauf <anlauf@gmx.de>
1916 * intrinsic.c (sort_actual): Remove 'is' in error message.
1918 2010-04-20 Paul Thomas <pault@gcc.gnu.org>
1921 * resolve.c (resolve_fl_derived): If a component character
1922 length has not been resolved, do so now.
1923 (resolve_symbol): The same as above for a symbol character
1925 * trans-decl.c (gfc_create_module_variable): A 'length' decl is
1926 not needed for a character valued, procedure pointer.
1929 * resolve.c (ensure_not_abstract_walker): If 'overriding' is
1930 not found, return FAILURE rather than ICEing.
1932 2010-04-19 Jakub Jelinek <jakub@redhat.com>
1935 * openmp.c (gfc_resolve_do_iterator): Only make iteration vars for
1936 sequential loops private in the innermost containing task region.
1938 2010-04-18 Eric Botcazou <ebotcazou@adacore.com>
1940 * f95-lang.c (gfc_init_decl_processing): Remove second argument in call
1941 to build_common_tree_nodes.
1943 2010-04-17 Steven G. Kargl <kargl@gcc.gnu.org>
1946 * fortran/trans-array.c (gfc_conv_ss_startstride): Remove the use of
1947 gfc_msg_bounds by using 'Array bound mismatch' directly.
1948 (gfc_trans_dummy_array_bias): Remove the use of gfc_msg_bounds. Reword
1949 error message to include the mismatch in the extent of array bound.
1950 * fortran/trans.c: Remove gfc_msg_bounds. It is only used in one place.
1951 * fortran/trans.h: Remove extern definition of gfc_msg_bounds.
1953 2010-04-17 Jerry DeLisle <jvdelisle@gcc.gnu.org>
1955 * gfortran.texi: Update information on temporary file locations.
1957 2010-04-16 Jakub Jelinek <jakub@redhat.com>
1959 * trans-decl.c (gfc_build_qualified_array): Ensure
1960 ubound.N and lbound.N artificial variable names don't appear
1963 2010-04-15 Steven G. Kargl <kargl@gcc.gnu.org>
1966 * trans-array.c (gfc_trans_array_bound_check): Eliminate a redundant
1967 block of code. Set name to the variable associated with the descriptor.
1969 2010-04-15 Jakub Jelinek <jakub@redhat.com>
1971 * trans-decl.c (gfc_build_qualified_array): Clear DECL_IGNORED_P
1972 on VAR_DECL LBOUND and/or UBOUND, even for -O1.
1974 2010-04-14 Steven G. Kargl <kargl@gcc.gnu.org>
1976 * intrinsic.texi: Add the missing specific name of intrinsic
1977 procedure where the specific name is identical to the generic name.
1978 Fix inconsistent or mismatch in the argument names in intrinsic
1979 procedure descriptions. Add the SCALAR allocatable description to
1982 2010-04-14 Tobias Burnus <burnus@net-b.de>
1985 * array.c (gfc_find_array_ref): Handle codimensions.
1986 (gfc_match_array_spec,gfc_match_array_ref): Use gfc_fatal_error.
1987 * check.c (is_coarray, dim_corank_check, gfc_check_lcobound,
1988 gfc_check_image_index, gfc_check_this_image, gfc_check_ucobound):
1990 * gfortran.h (gfc_isym_id): Add GFC_ISYM_IMAGE_INDEX,
1991 GFC_ISYM_LCOBOUND, GFC_ISYM_THIS_IMAGE,
1993 * intrinsic.h (add_functions): Add this_image, image_index,
1994 lcobound and ucobound intrinsics.
1995 * intrinsic.c (gfc_check_lcobound,gfc_check_ucobound,
1996 gfc_check_image_index, gfc_check_this_image,
1997 gfc_simplify_image_index, gfc_simplify_lcobound,
1998 gfc_simplify_this_image, gfc_simplify_ucobound):
1999 New function prototypes.
2000 * intrinsic.texi (IMAGE_INDEX, LCOBOUND, THIS_IMAGE
2001 IMAGE_INDEX): Document new intrinsic functions.
2002 * match.c (gfc_match_critical, sync_statement): Make -fcoarray=none
2004 * simplify.c (simplify_bound_dim): Handle coarrays.
2005 (simplify_bound): Update simplify_bound_dim call.
2006 (gfc_simplify_num_images): Add -fcoarray=none check.
2007 (simplify_cobound, gfc_simplify_lcobound, gfc_simplify_ucobound,
2008 gfc_simplify_ucobound, gfc_simplify_ucobound): New functions.
2010 2010-04-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2013 * constructor.c: Fix typo in comment.
2014 * expr.c (find_array_section): Add check for max array limit.
2016 2010-04-13 Iain Sandoe <iains@gcc.gnu.org>
2019 * gfortranspec.c (lookup_option): Check for -static and return
2021 (lang_specific_driver): Break when OPTION_static is discovered.
2023 2010-04-12 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2025 * array.c (extract_element): Restore function from trunk.
2026 (gfc_get_array_element): Restore function from trunk.
2027 (gfc_expand_constructor): Restore check against
2028 flag_max_array_constructor.
2029 * constructor.c (node_copy_and_append): Delete unused.
2030 * gfortran.h: Delete comment and extra include.
2031 * constructor.h: Bump copyright and clean up TODO comments.
2032 * resolve.c: Whitespace.
2034 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
2036 * simplify.c (compute_dot_product): Replaced usage of ADVANCE macro
2037 with direct access access to elements. Adjusted prototype, fixed all
2039 (gfc_simplify_dot_product): Removed duplicate check for zero-sized
2041 (gfc_simplify_matmul): Removed usage of ADVANCE macro.
2042 (gfc_simplify_spread): Removed workaround, directly insert elements
2043 at a given array position.
2044 (gfc_simplify_transpose): Likewise.
2045 (gfc_simplify_pack): Replaced usage of ADVANCE macro with corresponding
2047 (gfc_simplify_unpack): Likewise.
2049 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
2051 * simplify.c (only_convert_cmplx_boz): Renamed to ...
2052 (convert_boz): ... this and moved to start of file.
2053 (gfc_simplify_abs): Whitespace fix.
2054 (gfc_simplify_acos): Whitespace fix.
2055 (gfc_simplify_acosh): Whitespace fix.
2056 (gfc_simplify_aint): Whitespace fix.
2057 (gfc_simplify_dint): Whitespace fix.
2058 (gfc_simplify_anint): Whitespace fix.
2059 (gfc_simplify_and): Replaced if-gate by more common switch-over-type.
2060 (gfc_simplify_dnint): Whitespace fix.
2061 (gfc_simplify_asin): Whitespace fix.
2062 (gfc_simplify_asinh): Moved creation of result-expr out of switch.
2063 (gfc_simplify_atan): Likewise.
2064 (gfc_simplify_atanh): Whitespace fix.
2065 (gfc_simplify_atan2): Whitespace fix.
2066 (gfc_simplify_bessel_j0): Removed ATTRIBUTE_UNUSED.
2067 (gfc_simplify_bessel_j1): Likewise.
2068 (gfc_simplify_bessel_jn): Likewise.
2069 (gfc_simplify_bessel_y0): Likewise.
2070 (gfc_simplify_bessel_y1): Likewise.
2071 (gfc_simplify_bessel_yn): Likewise.
2072 (gfc_simplify_ceiling): Reorderd statements.
2073 (simplify_cmplx): Use convert_boz(), check for constant arguments.
2075 (gfc_simplify_cmplx): Use correct default kind. Removed check for
2077 (gfc_simplify_complex): Replaced if-gate. Removed check for
2079 (gfc_simplify_conjg): Whitespace fix.
2080 (gfc_simplify_cos): Whitespace fix.
2081 (gfc_simplify_cosh): Replaced if-gate by more common switch-over-type.
2082 (gfc_simplify_dcmplx): Removed check for constant arguments.
2083 (gfc_simplify_dble): Use convert_boz() and gfc_convert_constant().
2084 (gfc_simplify_digits): Whitespace fix.
2085 (gfc_simplify_dim): Whitespace fix.
2086 (gfc_simplify_dprod): Reordered statements.
2087 (gfc_simplify_erf): Whitespace fix.
2088 (gfc_simplify_erfc): Whitespace fix.
2089 (gfc_simplify_epsilon): Whitespace fix.
2090 (gfc_simplify_exp): Whitespace fix.
2091 (gfc_simplify_exponent): Use convert_boz().
2092 (gfc_simplify_floor): Reorderd statements.
2093 (gfc_simplify_gamma): Whitespace fix.
2094 (gfc_simplify_huge): Whitespace fix.
2095 (gfc_simplify_iand): Whitespace fix.
2096 (gfc_simplify_ieor): Whitespace fix.
2097 (simplify_intconv): Use gfc_convert_constant().
2098 (gfc_simplify_int): Use simplify_intconv().
2099 (gfc_simplify_int2): Reorderd statements.
2100 (gfc_simplify_idint): Reorderd statements.
2101 (gfc_simplify_ior): Whitespace fix.
2102 (gfc_simplify_ishftc): Removed duplicate type check.
2103 (gfc_simplify_len): Use range_check() instead of manual range check.
2104 (gfc_simplify_lgamma): Removed ATTRIBUTE_UNUSED. Whitespace fix.
2105 (gfc_simplify_log): Whitespace fix.
2106 (gfc_simplify_log10): Whitespace fix.
2107 (gfc_simplify_minval): Whitespace fix.
2108 (gfc_simplify_maxval): Whitespace fix.
2109 (gfc_simplify_mod): Whitespace fix.
2110 (gfc_simplify_modulo): Whitespace fix.
2111 (simplify_nint): Reorderd statements.
2112 (gfc_simplify_not): Whitespace fix.
2113 (gfc_simplify_or): Replaced if-gate by more common switch-over-type.
2114 (gfc_simplify_radix): Removed unused result-variable. Whitespace fix.
2115 (gfc_simplify_range): Removed unused result-variable. Whitespace fix.
2116 (gfc_simplify_real): Use convert_boz() and gfc_convert_constant().
2117 (gfc_simplify_realpart): Whitespace fix.
2118 (gfc_simplify_selected_char_kind): Removed unused result-variable.
2119 (gfc_simplify_selected_int_kind): Removed unused result-variable.
2120 (gfc_simplify_selected_real_kind): Removed unused result-variable.
2121 (gfc_simplify_sign): Whitespace fix.
2122 (gfc_simplify_sin): Whitespace fix.
2123 (gfc_simplify_sinh): Replaced if-gate by more common switch-over-type.
2124 (gfc_simplify_sqrt): Avoided goto by inlining check. Whitespace fix.
2125 (gfc_simplify_tan): Replaced if-gate by more common switch-over-type.
2126 (gfc_simplify_tanh): Replaced if-gate by more common switch-over-type.
2127 (gfc_simplify_xor): Replaced if-gate by more common switch-over-type.
2129 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
2131 * gfortran.h (gfc_start_constructor): Removed.
2132 (gfc_get_array_element): Removed.
2133 * array.c (gfc_start_constructor): Removed, use gfc_get_array_expr
2134 instead. Fixed all callers.
2135 (extract_element): Removed.
2136 (gfc_expand_constructor): Temporarily removed check for
2137 max-array-constructor. Will be re-introduced later if still required.
2138 (gfc_get_array_element): Removed, use gfc_constructor_lookup_expr
2139 instead. Fixed all callers.
2140 * expr.c (find_array_section): Replaced manual lookup of elements
2141 by gfc_constructor_lookup.
2143 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
2145 * gfortran.h (gfc_get_null_expr): New prototype.
2146 (gfc_get_operator_expr): New prototype.
2147 (gfc_get_character_expr): New prototype.
2148 (gfc_get_iokind_expr): New prototype.
2149 * expr.c (gfc_get_null_expr): New.
2150 (gfc_get_character_expr): New.
2151 (gfc_get_iokind_expr): New.
2152 (gfc_get_operator_expr): Moved here from matchexp.c (build_node).
2153 * matchexp.c (build_node): Renamed and moved to
2154 expr.c (gfc_get_operator_expr). Reordered arguments to match
2155 other functions. Fixed all callers.
2156 (gfc_get_parentheses): Use specific function to build expr.
2157 * array.c (gfc_match_array_constructor): Likewise.
2158 * arith.c (eval_intrinsic): Likewise.
2159 (gfc_hollerith2int): Likewise.
2160 (gfc_hollerith2real): Likewise.
2161 (gfc_hollerith2complex): Likewise.
2162 (gfc_hollerith2logical): Likewise.
2163 * data.c (create_character_intializer): Likewise.
2164 * decl.c (gfc_match_null): Likewise.
2165 (enum_initializer): Likewise.
2166 * io.c (gfc_match_format): Likewise.
2167 (match_io): Likewise.
2168 * match.c (gfc_match_nullify): Likewise.
2169 * primary.c (match_string_constant): Likewise.
2170 (match_logical_constant): Likewise.
2171 (build_actual_constructor): Likewise.
2172 * resolve.c (build_default_init_expr): Likewise.
2173 * symbol.c (generate_isocbinding_symbol): Likewise.
2174 (gfc_build_class_symbol): Likewise.
2175 (gfc_find_derived_vtab): Likewise.
2176 * simplify.c (simplify_achar_char): Likewise.
2177 (gfc_simplify_adjustl): Likewise.
2178 (gfc_simplify_adjustr): Likewise.
2179 (gfc_simplify_and): Likewise.
2180 (gfc_simplify_bit_size): Likewise.
2181 (gfc_simplify_is_iostat_end): Likewise.
2182 (gfc_simplify_is_iostat_eor): Likewise.
2183 (gfc_simplify_isnan): Likewise.
2184 (simplify_bound): Likewise.
2185 (gfc_simplify_leadz): Likewise.
2186 (gfc_simplify_len_trim): Likewise.
2187 (gfc_simplify_logical): Likewise.
2188 (gfc_simplify_maxexponent): Likewise.
2189 (gfc_simplify_minexponent): Likewise.
2190 (gfc_simplify_new_line): Likewise.
2191 (gfc_simplify_null): Likewise.
2192 (gfc_simplify_or): Likewise.
2193 (gfc_simplify_precision): Likewise.
2194 (gfc_simplify_repeat): Likewise.
2195 (gfc_simplify_scan): Likewise.
2196 (gfc_simplify_size): Likewise.
2197 (gfc_simplify_trailz): Likewise.
2198 (gfc_simplify_trim): Likewise.
2199 (gfc_simplify_verify): Likewise.
2200 (gfc_simplify_xor): Likewise.
2201 * trans-io.c (build_dt): Likewise.
2202 (gfc_new_nml_name_expr): Removed.
2204 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
2206 * arith.h (gfc_constant_result): Removed prototype.
2207 * constructor.h (gfc_build_array_expr): Removed prototype.
2208 (gfc_build_structure_constructor_expr): Removed prototype.
2209 * gfortran.h (gfc_int_expr): Removed prototype.
2210 (gfc_logical_expr): Removed prototype.
2211 (gfc_get_array_expr): New prototype.
2212 (gfc_get_structure_constructor_expr): New prototype.
2213 (gfc_get_constant_expr): New prototype.
2214 (gfc_get_int_expr): New prototype.
2215 (gfc_get_logical_expr): New prototype.
2216 * arith.c (gfc_constant_result): Moved and renamed to
2217 expr.c (gfc_get_constant_expr). Fixed all callers.
2218 * constructor.c (gfc_build_array_expr): Moved and renamed to
2219 expr.c (gfc_get_array_expr). Split gfc_typespec argument to type
2220 and kind. Fixed all callers.
2221 (gfc_build_structure_constructor_expr): Moved and renamed to
2222 expr.c (gfc_get_structure_constructor_expr). Split gfc_typespec argument
2223 to type and kind. Fixed all callers.
2224 * expr.c (gfc_logical_expr): Renamed to ...
2225 (gfc_get_logical_expr): ... this. Added kind argument. Fixed all callers.
2226 (gfc_int_expr): Renamed to ...
2227 (gfc_get_int_expr): ... this. Added kind and where arguments. Fixed all
2229 (gfc_get_constant_expr): New.
2230 (gfc_get_array_expr): New.
2231 (gfc_get_structure_constructor_expr): New.
2232 * simplify.c (int_expr_with_kind): Removed, callers use gfc_get_int_expr
2235 2010-04-12 Daniel Franke <franke.daniel@gmail.com>
2237 * constructor.h: New.
2238 * constructor.c: New.
2239 * Make-lang.in: Add new files to F95_PARSER_OBJS.
2240 * arith.c (reducy_unary): Use constructor API.
2241 (reduce_binary_ac): Likewise.
2242 (reduce_binary_ca): Likewise.
2243 (reduce_binary_aa): Likewise.
2244 * check.c (gfc_check_pack): Likewise.
2245 (gfc_check_reshape): Likewise.
2246 (gfc_check_unpack): Likewise.
2247 * decl.c (add_init_expr_to_sym): Likewise.
2248 (build_struct): Likewise.
2249 * dependency.c (gfc_check_dependency): Likewise.
2250 (contains_forall_index_p): Likewise.
2251 * dump-parse-tree.c (show_constructor): Likewise.
2252 * expr.c (free_expr0): Likewise.
2253 (gfc_copy_expr): Likewise.
2254 (gfc_is_constant_expr): Likewise.
2255 (simplify_constructor): Likewise.
2256 (find_array_element): Likewise.
2257 (find_component_ref): Likewise.
2258 (find_array_section): Likewise.
2259 (find_substring_ref): Likewise.
2260 (simplify_const_ref): Likewise.
2261 (scalarize_intrinsic_call): Likewise.
2262 (check_alloc_comp_init): Likewise.
2263 (gfc_default_initializer): Likewise.
2264 (gfc_traverse_expr): Likewise.
2265 * iresolve.c (check_charlen_present): Likewise.
2266 (gfc_resolve_reshape): Likewise.
2267 (gfc_resolve_transfer): Likewise.
2268 * module.c (mio_constructor): Likewise.
2269 * primary.c (build_actual_constructor): Likewise.
2270 (gfc_match_structure_constructor): Likewise.
2271 * resolve.c (resolve_structure_cons): Likewise.
2272 * simplify.c (is_constant_array_expr): Likewise.
2273 (init_result_expr): Likewise.
2274 (transformational_result): Likewise.
2275 (simplify_transformation_to_scalar): Likewise.
2276 (simplify_transformation_to_array): Likewise.
2277 (gfc_simplify_dot_product): Likewise.
2278 (simplify_bound): Likewise.
2279 (simplify_matmul): Likewise.
2280 (simplify_minval_maxval): Likewise.
2281 (gfc_simplify_pack): Likewise.
2282 (gfc_simplify_reshape): Likewise.
2283 (gfc_simplify_shape): Likewise.
2284 (gfc_simplify_spread): Likewise.
2285 (gfc_simplify_transpose): Likewise.
2286 (gfc_simplify_unpack): Likewise.q
2287 (gfc_convert_constant): Likewise.
2288 (gfc_convert_char_constant): Likewise.
2289 * target-memory.c (size_array): Likewise.
2290 (encode_array): Likewise.
2291 (encode_derived): Likewise.
2292 (interpret_array): Likewise.
2293 (gfc_interpret_derived): Likewise.
2294 (expr_to_char): Likewise.
2295 (gfc_merge_initializers): Likewise.
2296 * trans-array.c (gfc_get_array_constructor_size): Likewise.
2297 (gfc_trans_array_constructor_value): Likewise.
2298 (get_array_ctor_strlen): Likewise.
2299 (gfc_constant_array_constructor_p): Likewise.
2300 (gfc_build_constant_array_constructor): Likewise.
2301 (gfc_trans_array_constructor): Likewise.
2302 (gfc_conv_array_initializer): Likewise.
2303 * trans-decl.c (check_constant_initializer): Likewise.
2304 * trans-expr.c (flatten_array_ctors_without_strlen): Likewise.
2305 (gfc_apply_interface_mapping_to_cons): Likewise.
2306 (gfc_trans_structure_assign): Likewise.
2307 (gfc_conv_structure): Likewise.
2308 * array.c (check_duplicate_iterator): Likewise.
2309 (match_array_list): Likewise.
2310 (match_array_cons_element): Likewise.
2311 (gfc_match_array_constructor): Likewise.
2312 (check_constructor_type): Likewise.
2313 (check_constructor): Likewise.
2315 (expand_constructor): Likewise.
2316 (extract_element): Likewise.
2317 (gfc_expanded_ac): Likewise.
2318 (resolve_array_list): Likewise.
2319 (gfc_resolve_character_array_constructor): Likewise.
2320 (copy_iterator): Renamed to ...
2321 (gfc_copy_iterator): ... this.
2322 (gfc_append_constructor): Removed.
2323 (gfc_insert_constructor): Removed unused function.
2324 (gfc_get_constructor): Removed.
2325 (gfc_free_constructor): Removed.
2326 (qgfc_copy_constructor): Removed.
2327 * gfortran.h (struct gfc_expr): Removed member 'con_by_offset'.
2328 Removed all references. Replaced constructor list by splay-tree.
2329 (struct gfc_constructor): Removed member 'next', moved 'offset' from
2330 the inner struct, added member 'base'.
2331 (gfc_append_constructor): Removed prototype.
2332 (gfc_insert_constructor): Removed prototype.
2333 (gfc_get_constructor): Removed prototype.
2334 (gfc_free_constructor): Removed prototype.
2335 (qgfc_copy_constructor): Removed prototype.
2336 (gfc_copy_iterator): New prototype.
2337 * trans-array.h (gfc_constant_array_constructor_p): Adjusted prototype.
2339 2010-04-10 Tobias Burnus <burnus@net-b.de>
2342 * expr.c (gfc_is_constant_expr, gfc_traverse_expr): Handle
2343 proc-pointers and type-bound procedures.
2344 (gfc_specification_expr): Check proc-pointers for pureness.
2346 2010-04-09 Iain Sandoe <iains@gcc.gnu.org>
2349 * gfortranspec.c (lang_specific_driver): Do not expose vars
2350 only used by HAVE_LD_STATIC_DYNAMIC targets unless compiling
2353 2010-04-09 Tobias Burnus <burnus@net-b.de>
2356 * decl.c (variable_decl, match_attr_spec): Fix setting the array
2358 * array.c (match_subscript,gfc_match_array_ref): Add coarray support.
2359 * data.c (gfc_assign_data_value): Ditto.
2360 * expr.c (gfc_check_pointer_assign): Add check for coarray constraint.
2361 (gfc_traverse_expr): Traverse also through codimension expressions.
2362 (gfc_is_coindexed, gfc_has_ultimate_allocatable,
2363 gfc_has_ultimate_pointer): New functions.
2364 * gfortran.h (gfc_array_ref_dimen_type): Add DIMEN_STAR for coarrays.
2365 (gfc_array_ref): Add codimen.
2366 (gfc_array_ref): Add in_allocate.
2367 (gfc_is_coindexed, gfc_has_ultimate_allocatable,
2368 gfc_has_ultimate_pointer): Add prototypes.
2369 * interface.c (compare_parameter, compare_actual_formal,
2370 check_intents): Add coarray constraints.
2371 * match.c (gfc_match_iterator): Add coarray constraint.
2372 * match.h (gfc_match_array_ref): Update interface.
2373 * primary.c (gfc_match_varspec): Handle codimensions.
2374 * resolve.c (coarray_alloc, inquiry_argument): New static variables.
2375 (check_class_members): Return gfc_try instead for error recovery.
2376 (resolve_typebound_function,resolve_typebound_subroutine,
2377 check_members): Handle return value of check_class_members.
2378 (resolve_structure_cons, resolve_actual_arglist, resolve_function,
2379 check_dimension, compare_spec_to_ref, resolve_array_ref,
2380 resolve_ref, resolve_variable, gfc_resolve_expr, conformable_arrays,
2381 resolve_allocate_expr, resolve_ordinary_assign): Add coarray
2383 * trans-array.c (gfc_conv_array_ref, gfc_walk_variable_expr):
2384 Skip over coarray refs.
2385 (gfc_array_allocate) Add support for references containing coindexes.
2386 * trans-expr.c (gfc_add_interface_mapping): Copy coarray attribute.
2387 (gfc_map_intrinsic_function): Ignore codimensions.
2389 2010-04-08 Bud Davis <bdavis9659@sbcglobal.net>
2392 * io.c (check_format_string): Added check for additional non
2393 blank characters after the format string was successfully
2395 * io.c (check_format): Changed the error messages for positive
2396 int required and period required to drop through the error logic
2397 and report with gfc_error instead of gfc_error_now. Corrected
2398 format postion for hollerith strings.
2400 2010-04-08 Tobias Burnus <burnus@net-b.de>
2402 * module.c (use_iso_fortran_env_module): Fix standard check.
2404 2010-04-07 Jakub Jelinek <jakub@redhat.com>
2406 * parse.c (parse_derived, parse_enum): Avoid set but not used
2409 2010-04-07 Janne Blomqvist <jb@gcc.gnu.org>
2412 * gfortran.texi: Add section about representation of
2415 2010-04-07 Simon Baldwin <simonb@google.com>
2417 * cpp.c (cb_cpp_error): Add warning reason argument, set a value
2418 for diagnostic_override_option_index if CPP_W_WARNING_DIRECTIVE.
2420 2010-04-07 Richard Guenther <rguenther@suse.de>
2422 * options.c (gfc_init_options): Do not set.
2424 2010-04-06 Tobias Burnus <burnus@net-b.de>
2427 * array.c (gfc_match_array_spec): Add error for -fcoarray=none.
2428 * match.c (gfc_match_critical, sync_statement): Ditto.
2429 * gfortran.h (gfc_fcoarray): New enum.
2430 (gfc_option_t): Use it.
2431 * lang.opt (fcoarray): Add new flag.
2432 * invoke.texi (fcoarray): Document it.
2433 * options.c (gfc_init_options,gfc_handle_option): Handle -fcoarray=.
2434 (gfc_handle_coarray_option): New function.
2436 2010-04-06 Tobias Burnus <burnus@net-b.de>
2439 * gfortran.h (gfc_array_spec): Add cotype.
2440 * array.c (gfc_match_array_spec,gfc_set_array_spec): Use it
2441 and defer error diagnostic.
2442 * resolve.c (resolve_fl_derived): Add missing check.
2443 (resolve_symbol): Add cotype/type check.
2444 * parse.c (parse_derived): Fix setting of coarray_comp.
2446 2010-04-06 Tobias Burnus <burnus@net-b.de>
2449 * array.c (gfc_free_array_spec,gfc_resolve_array_spec,
2450 match_array_element_spec,gfc_copy_array_spec,
2451 gfc_compare_array_spec): Include corank.
2452 (match_array_element_spec,gfc_set_array_spec): Support codimension.
2453 * decl.c (build_sym,build_struct,variable_decl,
2454 match_attr_spec,attr_decl1,cray_pointer_decl,
2455 gfc_match_volatile): Add codimension.
2456 (gfc_match_codimension): New function.
2457 * dump-parse-tree.c (show_array_spec,show_attr): Support codimension.
2458 * gfortran.h (symbol_attribute,gfc_array_spec): Ditto.
2459 (gfc_add_codimension): New function prototype.
2460 * match.h (gfc_match_codimension): New function prototype.
2461 (gfc_match_array_spec): Update prototype
2462 * match.c (gfc_match_common): Update gfc_match_array_spec call.
2463 * module.c (MOD_VERSION): Bump.
2464 (mio_symbol_attribute): Support coarray attributes.
2465 (mio_array_spec): Add corank support.
2466 * parse.c (decode_specification_statement,decode_statement,
2467 parse_derived): Add coarray support.
2468 * resolve.c (resolve_formal_arglist, was_declared,
2469 is_non_constant_shape_array, resolve_fl_variable,
2470 resolve_fl_derived, resolve_symbol): Add coarray support.
2471 * symbol.c (check_conflict, gfc_add_volatile, gfc_copy_attr,
2472 gfc_build_class_symbol): Add coarray support.
2473 (gfc_add_codimension): New function.
2475 2010-04-06 Tobias Burnus <burnus@net-b.de>
2478 * iso-fortran-env.def: Add the integer parameters atomic_int_kind,
2479 atomic_logical_kind, iostat_inquire_internal_unit, stat_locked,
2480 stat_locked_other_image, stat_stopped_image and stat_unlocked of
2482 * intrinsic.texi (iso_fortran_env): Ditto.
2483 * libgfortran.h (libgfortran_stat_codes): New enum.
2484 * module.c (use_iso_fortran_env_module): Honour -std= when loading
2485 constants from the intrinsic module.
2487 2010-04-06 Tobias Burnus <burnus@net-b.de>
2490 * intrinsic.c (add_functions): Add num_images.
2491 * decl.c (gfc_match_end): Handle END CRITICAL.
2492 * intrinsic.h (gfc_simplify_num_images): Add prototype.
2493 * dump-parse-tree.c (show_code_node): Dump CRITICAL, ERROR STOP,
2495 * gfortran.h (gfc_statement): Add enum items for those.
2496 (gfc_exec_op) Ditto.
2497 (gfc_isym_id): Add num_images.
2498 * trans-stmt.c (gfc_trans_stop): Handle ERROR STOP.
2499 (gfc_trans_sync,gfc_trans_critical): New functions.
2500 * trans-stmt.h (gfc_trans_stop,gfc_trans_sync,
2501 gfc_trans_critical): Add/update prototypes.
2502 * trans.c (gfc_trans_code): Handle CRITICAL, ERROR STOP,
2503 and SYNC statements.
2504 * trans.h (gfor_fndecl_error_stop_string) Add variable.
2505 * resolve.c (resolve_sync): Add function.
2506 (gfc_resolve_blocks): Handle CRITICAL.
2507 (resolve_code): Handle CRITICAL, ERROR STOP,
2508 (resolve_branch): Add CRITICAL constraint check.
2509 and SYNC statements.
2510 * st.c (gfc_free_statement): Add new statements.
2511 * trans-decl.c (gfor_fndecl_error_stop_string): Global variable.
2512 (gfc_build_builtin_function_decls): Initialize it.
2513 * match.c (gfc_match_if): Handle ERROR STOP and SYNC.
2514 (gfc_match_critical, gfc_match_error_stop, sync_statement,
2515 gfc_match_sync_all, gfc_match_sync_images, gfc_match_sync_memory):
2517 (match_exit_cycle): Handle CRITICAL constraint.
2518 (gfc_match_stopcode): Handle ERROR STOP.
2519 * match.h (gfc_match_critical, gfc_match_error_stop,
2520 gfc_match_sync_all, gfc_match_sync_images,
2521 gfc_match_sync_memory): Add prototype.
2522 * parse.c (decode_statement, gfc_ascii_statement,
2523 parse_executable): Handle new statements.
2524 (parse_critical_block): New function.
2525 * parse.h (gfc_compile_state): Add COMP_CRITICAL.
2526 * intrinsic.texi (num_images): Document new function.
2527 * simplify.c (gfc_simplify_num_images): Add function.
2529 2010-04-06 Tobias Burnus <burnus@net-b.de>
2532 * trans-array.c (gfc_conv_expr_descriptor): Update
2533 gfc_trans_scalar_assign call.
2534 (has_default_initializer): New function.
2535 (gfc_trans_deferred_array): Nullify less often.
2536 * trans-expr.c (gfc_conv_subref_array_arg,
2537 gfc_trans_subcomponent_assign): Update call to
2538 gfc_trans_scalar_assign.
2539 (gfc_trans_scalar_assign): Add parameter and pass it on.
2540 (gfc_trans_assignment_1): Optionally, do not dealloc before
2542 * trans-openmp.c (gfc_trans_omp_array_reduction): Update
2543 call to gfc_trans_scalar_assign.
2544 * trans-decl.c (gfc_get_symbol_decl): Do not always apply
2545 initializer to static variables.
2546 (gfc_init_default_dt): Add dealloc parameter and pass it on.
2547 * trans-stmt.c (forall_make_variable_temp,
2548 generate_loop_for_temp_to_lhs, generate_loop_for_rhs_to_temp,
2549 gfc_trans_forall_1, gfc_trans_where_assign, gfc_trans_where_3
2550 gfc_trans_allocate): Update gfc_trans_assignment call.
2551 * trans.h (gfc_trans_scalar_assign, gfc_init_default_dt,
2552 gfc_init_default_dt, gfc_trans_assignment): Add bool dealloc
2553 parameter to prototype.
2555 2010-03-31 Paul Thomas <pault@gcc.gnu.org>
2557 * ioparm.def : Update copyright.
2559 * trans-array.c : ditto
2560 * trans-array.h : ditto
2562 * trans-types.c: ditto
2563 * dependency.c : ditto
2564 * gfortran.h : ditto
2566 * trans-io.c : ditto
2567 * trans-intrinsic.c : ditto
2568 * libgfortran.h : ditto
2569 * invoke.texi : ditto
2570 * intrinsic.texi : ditto
2573 * intrinsic.c : ditto
2574 * interface.c : ditto
2575 * iresolve.c : ditto
2576 * trans-stmt.c : ditto
2577 * trans-stmt.h : ditto
2582 2010-03-20 Paul Thomas <pault@gcc.gnu.org>
2585 * trans-decl.c (gfc_create_module_variable): With -fwhole-file
2586 do not assert the context of derived types.
2588 2010-03-20 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2591 * ioparm.def: Change inquire size variable to type pointer to
2594 2010-03-18 Paul Thomas <pault@gcc.gnu.org>
2597 * trans-expr.c (conv_parent_component_references): Ensure that
2598 'dt' has a backend_decl.
2601 * trans-expr.c (gfc_conv_structure): Ensure that the derived
2602 type has a backend_decl.
2605 * resolve.c (resolve_global_procedure): Check that the 'cl'
2606 structure is not NULL.
2608 2010-03-18 Shujing Zhao <pearly.zhao@oracle.com>
2610 * lang.opt (-ffixed-line-length-, ffree-line-length-): Remove
2613 2010-03-17 Tobias Burnus <burnus@net-b.de>
2616 * trans-array.c (gfc_conv_array_index_offset,gfc_conv_array_ref,
2617 gfc_conv_ss_startstride): Remove no-longer-needed cp_was_assumed
2619 * decl.c (gfc_match_derived_decl): Don't mark assumed-size Cray
2620 pointees as having explizit size.
2621 * expr.c (gfc_check_assign): Remove now unreachable Cray pointee
2623 * trans-types.c (gfc_is_nodesc_array): Add cp_was_assumed to assert.
2624 (gfc_sym_type): Don't mark Cray pointees as restricted pointers.
2625 * resolve.c (resolve_symbol): Handle cp_was_assumed.
2626 * trans-decl.c (gfc_trans_deferred_vars): Ditto.
2627 (gfc_finish_var_decl): Don't mark Cray pointees as restricted
2630 2010-03-14 Tobias Burnus <burnus@net-b.de>
2633 * resolve.c (resolve_structure_cons): Add missing PURE constraint.
2634 (resolve_ordinary_assign): Add check to avoid segfault.
2636 2010-03-12 Paul Thomas <pault@gcc.gnu.org>
2640 * resolve.c (resolve_compcall): Add new boolean dummy argument
2641 'class_members'. Only resolve expression at end if false.
2642 Remove redundant, static variable 'class_object'.
2643 (check_class_members): Add extra argument to call of
2645 (resolve_typebound_function): Renamed resolve_class_compcall.
2646 Do all the detection of class references here. Correct calls to
2647 resolve_compcall for extra argument.
2648 (resolve_typebound_subroutine): resolve_class_typebound_call
2649 renamed. Otherwise same as resolve_typebound_function.
2650 (gfc_resolve_expr): Call resolve_typebound_function.
2651 (resolve_code): Call resolve_typebound_subroutine.
2653 2010-03-10 Tobias Burnus <burnus@net-b.de
2656 * symbol.c (get_iso_c_sym): Set sym->result.
2658 2010-03-08 Janus Weil <janus@gcc.gnu.org>
2661 * resolve.c (resolve_compcall): Don't set 'value.function.name' here
2662 for TBPs, otherwise they will not be resolved properly.
2663 (resolve_function): Use 'value.function.esym' instead of
2664 'value.function.name' to check if we're dealing with a TBP.
2665 (check_class_members): Set correct type of passed object for all TBPs,
2666 not only generic ones, except if the type is abstract.
2668 2010-03-04 Janus Weil <janus@gcc.gnu.org>
2671 * decl.c (gfc_match_final_decl): Make sure variable names starting with
2672 'final...' are not misinterpreted as FINAL statements.
2674 2010-03-03 Paul Thomas <pault@gcc.gnu.org>
2677 * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
2678 allocatable ultimate components do not need temporaries, whilst
2679 ultimate pointer components do.
2681 2010-03-03 Janus Weil <janus@gcc.gnu.org>
2684 * resolve.c (resolve_code): Correctly set gfc_current_ns for
2686 (gfc_impure_variable): Make it work with sub-namespaces (BLOCK etc).
2689 2010-03-02 Paul Thomas <pault@gcc.gnu.org>
2692 * trans-array.c (gfc_conv_array_parameter): A full array of
2693 derived type need not be restricted to a symbol without an
2694 array spec to use the call to gfc_conv_expr_descriptor.
2697 * trans-array.c (gfc_conv_array_parameter): Contiguous refs to
2698 allocatable arrays do not need temporaries.
2700 2010-03-01 Tobias Burnus <burnus@net-b.de>
2703 * resolve.c (find_array_spec): Handle REF_COMPONENT with
2706 2010-02-28 Tobias Burnus <burnus@net-b.de>
2709 * trans-expr.c (is_zero_initializer_p): Move up in the file.
2710 (gfc_conv_initializer): Handle zero initializer as special case.
2712 2010-02-27 Tobias Burnus <burnus@net-b.de>
2715 * resolve.c (resolve_fl_variable_derived): Imply SAVE
2716 for module variables for Fortran 2008.
2718 2010-02-25 Jakub Jelinek <jakub@redhat.com>
2721 * trans-common.c (build_common_decl): Also update DECL_MODE,
2722 and DECL_SIZE when encountering a larger common block and call
2725 2010-02-24 Tobias Burnus <burnus@net-b.de>
2728 * trans-expr.c (gfc_conv_initializer): Call directly
2729 gfc_conv_constant for C_NULL_(FUN)PTR.
2731 2010-02-22 Paul Thomas <pault@gcc.gnu.org>
2734 * dependency.c (gfc_full_array_ref_p): Check for contiguous by
2735 checking the rest of the dimensions for elements.
2737 2010-02-21 Tobias Burnus <burnus@net-b.de>
2740 * gfortran.h (gfc_option_t): New flag -fprotect-parens.
2742 * option.c (gfc_init_options,gfc_handle_option): Ditto.
2743 * trans-expr.c (gfc_conv_expr_op): Use the flag.
2744 * invoke.texi: Document new -fno-protect-parens flag.
2746 2010-02-20 Paul Thomas <pault@gcc.gnu.org>
2752 * dependency.c (gfc_check_argument_var_dependency): Use enum
2753 value instead of arithmetic vaue for 'elemental'.
2754 (check_data_pointer_types): New function.
2755 (gfc_check_dependency): Call check_data_pointer_types.
2756 * trans-array.h : Change fourth argument of
2757 gfc_conv_array_parameter to boolean.
2758 * trans-array.c (gfc_conv_array_parameter): A contiguous array
2759 can be a dummy but it must not be assumed shape or deferred.
2760 Change fourth argument to boolean. Array constructor exprs will
2761 always be contiguous and do not need packing and unpacking.
2762 * trans-expr.c (gfc_conv_procedure_call): Clean up some white
2763 space and change fourth argument of gfc_conv_array_parameter
2765 (gfc_trans_arrayfunc_assign): Change fourth argument of
2766 gfc_conv_array_parameter to boolean.
2767 * trans-io.c (gfc_convert_array_to_string): The same.
2768 * trans-intrinsic.c (gfc_conv_intrinsic_loc): The same.
2770 2010-02-20 Tobias Burnus <burnus@net-b.de>
2773 * libgfortran.h: Add GFC_RTCHECK_MEM.
2774 * invoke.texi (-fcheck=): Document -fcheck=mem.
2775 * tranc.c (gfc_call_malloc): Remove negative-size run-time error
2776 and enable malloc-success check only with -fcheck=mem.
2777 * option.c (gfc_handle_runtime_check_option): Add -fcheck=mem.
2779 2010-02-16 Tobias Burnus <burnus@net-b.de>
2782 * gfortran.h (gfc_isym_id): Rename GFS_ISYM_GAMMA to GFS_ISYM_TGAMMA.
2783 * intrinsic.c (add_functions): Ditto.
2784 * iresolve.c (gfc_resolve_gamma): Call tgamma instead of gamma.
2785 * mathbuiltins.def: Use TGAMMA instead of GAMMA with "tgamma".
2787 2010-02-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2790 * trans-stmt.h: Add prototype for gfc_trans_code_cond. Add tree cond to
2791 gfc_trans_do prototype.
2792 * trans-stmt.c (gfc_trans_simple_do): Add optional argument to pass in
2793 a loop exit condition. If exit condition is given, build the loop exit
2794 code, checking IO results of implied do loops in READ and WRITE.
2795 (gfc_trans_do): Likewise.
2796 * trans.c (trans_code): New static work function, previously
2797 gfc_trans_code. Passes exit condition to gfc_trans_do.
2798 (gfc_trans_code): Calls trans_code with NULL_TREE condition.
2799 (gfc_trans_code_cond): Calls trans_code with loop exit condition.
2800 * trans-io.c (build_dt): Build an exit condition to allow checking IO
2801 result status bits in the dtparm structure. Use this condition in call
2802 to gfc_trans_code_cond.
2804 2010-02-13 Paul Thomas <pault@gcc.gnu.org>
2808 * trans-array.c (gfc_conv_array_parameter): Use
2809 gfc_full_array_ref_p to detect full and contiguous variable
2810 arrays. Full array components and contiguous arrays do not need
2811 internal_pack and internal_unpack.
2813 2010-02-11 Jakub Jelinek <jakub@redhat.com>
2816 * resolve.c (gfc_resolve_dim_arg): Call gfc_clear_ts.
2819 * decl.c (enumerator_decl): Don't call gfc_free_enum_history
2821 (gfc_match_enumerator_def): But here whenever enumerator_decl returns
2824 2010-02-10 Joost VandeVondele <jv244@cam.ac.uk>
2825 Tobias Burnus <burnus@net-b.de>
2828 * decl.c (gfc_match_subroutine): Explicitly set sym->declared_at.
2830 2010-02-10 Tobias Burnus <burnus@net-b.de>
2833 * trans-decl.c (gfc_generate_function_code): Only check
2834 actual-vs.-dummy character bounds if not bind(C).
2836 2010-02-10 Jakub Jelinek <jakub@redhat.com>
2839 * trans-expr.c (gfc_conv_subref_array_arg): Avoid accessing
2840 info->dimen after info has been freed.
2842 2010-02-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
2845 * array.c (gfc_constant_ac): Do not prevent expansion of constructors
2848 2010-02-09 Jakub Jelinek <jakub@redhat.com>
2850 * module.c (fix_mio_expr): Declare sym.
2852 2010-02-09 Paul Thomas <pault@gcc.gnu.org>
2855 * module.c (fix_mio_expr): Fix for private generic procedures.
2857 2010-02-09 Daniel Kraft <d@domob.eu>
2860 * resolve.c (resolve_charlen): Change warning about negative CHARACTER
2861 length to be correct and issue only with -Wsurprising.
2862 * invoke.texi (Wsurprising): Mention this new warning that is
2863 turned on by -Wsurprising.
2865 2010-02-09 Daniel Kraft <d@domob.eu>
2868 * intrinsic.texi (MAXVAL): Remove wrong claim that array argument
2869 can be CHARACTER type.
2870 (MINVAL), (MAXLOC), (MINLOC): Ditto.
2872 2010-02-05 Paul Thomas <pault@gcc.gnu.org>
2875 * trans-expr.c (gfc_conv_subref_array_arg): Add new argument
2876 'formal_ptr'. If this is true, give returned descriptor unity
2877 lbounds, in all dimensions, and the appropriate offset.
2878 (gfc_conv_procedure_call); If formal is a pointer, set the last
2879 argument of gfc_conv_subref_array_arg to true.
2880 * trans.h : Add last argument for gfc_conv_subref_array_arg.
2881 * trans-io.c (set_internal_unit, gfc_trans_transfer): Set the
2882 new arg of gfc_conv_subref_array_arg to false.
2883 * trans-stmt.c (forall_make_variable_temp): The same.
2885 2010-02-03 Tobias Burnus <burnus@net-b.de>
2888 * interface.c (compare_parameter): Disable rank-checking
2891 2010-02-02 Tobias Burnus <burnus@net-b.de>
2894 * parse.c (decode_specification_statement): Use sym->result not sym.
2896 2010-02-01 Tobias Burnus <burnus@net-b.de>
2899 * decl.c (variable_decl): Allow default initializer in
2900 TYPE declarations in PURE functions.
2902 2010-01-31 Janus Weil <janus@gcc.gnu.org>
2905 * resolve.c (resolve_allocate_expr): Move default initialization code
2906 here from gfc_trans_allocate.
2907 * trans.c (gfc_trans_code): Call gfc_trans_class_assign also for
2909 * trans-expr.c (gfc_trans_class_assign): Handle default initialization
2910 of CLASS variables via memcpy.
2911 * trans-stmt.c (gfc_trans_allocate): Move default initialization code
2912 to resolve_allocate_expr.
2914 2010-01-31 Paul Thomas <pault@gcc.gnu.org>
2917 * expr.c (gfc_get_full_arrayspec_from_expr): New function.
2918 * gfortran.h : Add prototype for above.
2919 * trans-expr.c (gfc_trans_alloc_subarray_assign): New function.
2920 (gfc_trans_subcomponent_assign): Call new function to replace
2921 the code to deal with allocatable components.
2922 * trans-intrinsic.c (gfc_conv_intrinsic_bound): Call
2923 gfc_get_full_arrayspec_from_expr to replace existing code.
2925 2010-01-25 Tobias Burnus <burnus@net-b.de>
2928 * array.c (gfc_array_dimen_size): Fix intrinsic procedure
2931 2010-01-24 Paul Thomas <pault@gcc.gnu.org>
2935 * expr.c (remove_subobject_ref): If the constructor is NULL use
2936 the expression as the source.
2937 (simplify_const_ref): Change the type of expression if
2938 there are component references. Allow for substring to be at
2939 the end of an arbitrarily long chain of references. If an
2940 element is found that is not in an EXPR_ARRAY, assume that this
2941 is scalar initialization of array. Call remove_subobject_ref in
2942 this case with NULL second argument.
2944 2010-01-24 Tobias Burnus <burnus@net-b.de>
2947 * array.c (gfc_array_dimen_size): Use correct specific
2948 function in the check.
2950 2010-01-21 Paul Thomas <pault@gcc.gnu.org>
2953 * trans-stmt.c (gfc_conv_elemental_dependencies): If temporary
2954 is required, turn any trailing array elements after a range
2955 into ranges so that offsets can be calculated.
2957 2010-01-20 Joern Rennecke <amylaar@spamcop.net>
2959 * module.c (mio_f2k_derived): Use enumerator as initializer of
2963 * gfortran.h (struct gfc_namespace) <resolved>: Change to signed
2964 bitfield of width 2.
2966 2010-01-19 Janus Weil <janus@gcc.gnu.org>
2969 * resolve.c (extract_compcall_passed_object): Set locus for
2970 passed-object argument.
2971 (extract_ppc_passed_object): Set locus and correctly remove PPC
2974 2010-01-19 Paul Thomas <pault@gcc.gnu.org>
2977 * trans-decl.c (add_argument_checking): Do not use the backend
2978 decl directly to test for the presence of an optional dummy
2979 argument. Use gfc_conv_expr_present, remembering to set the
2983 * trans-decl.c (gfc_generate_function_code): Small white space
2984 changes. If 'recurcheckvar' is NULL do not try to reset it.
2986 2010-01-19 Janus Weil <janus@gcc.gnu.org>
2989 * resolve.c (resolve_fl_derived): Set the accessibility of the parent
2990 component for extended types.
2991 * symbol.c (gfc_find_component): Remove a wrongly-worded error message
2992 and take care of parent component accessibility.
2994 2010-01-17 Janus Weil <janus@gcc.gnu.org>
2997 * gfortran.h (symbol_attribute): Remove 'ambiguous_interfaces'.
2998 * interface.c (check_interface1): Move a warning message here from
2999 resolve_fl_procedure.
3000 (check_sym_interfaces): Removed 'attr.ambiguous_interfaces'.
3001 * module.c (read_module): Remove call to gfc_check_interfaces, since
3002 this comes too early here.
3003 * resolve.c (resolve_fl_procedure): Move warning message to
3006 2010-01-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3009 * interface.c (check_interface1): Pass symbol name rather than NULL to
3010 gfc_compare_interfaces. (gfc_compare_interfaces): Add assert to
3012 * resolve.c (check_generic_tbp_ambiguity): Pass symbol name rather
3013 than NULL to gfc_compare_interfaces.
3015 2010-01-14 Paul Thomas <pault@gcc.gnu.org>
3018 * trans-array.c (duplicate_allocatable): Static version of
3019 gfc_duplicate_allocatable with provision to handle scalar
3020 components. New boolean argument to switch off call to malloc
3022 (gfc_duplicate_allocatable): New function to call above with
3024 (gfc_copy_allocatable_data): New function to call above with
3026 (structure_alloc_comps): Do not apply indirect reference to
3027 scalar pointers. Add new section to copy allocatable components
3028 of arrays. Extend copying of allocatable components to include
3030 (gfc_copy_only_alloc_comp): New function to copy allocatable
3031 component derived types, without allocating the base structure.
3032 * trans-array.h : Add primitive for gfc_copy_allocatable_data.
3033 Add primitive for gfc_copy_only_alloc_comp.
3034 * trans-expr.c (gfc_conv_procedure_call): After calls to
3035 transformational functions with results that are derived types
3036 with allocatable components, copy the components in the result.
3037 (gfc_trans_arrayfunc_assign): Deallocate allocatable components
3038 of lhs derived types before allocation.
3040 2010-01-14 Paul Thomas <pault@gcc.gnu.org>
3043 * module.c (load_generic_interfaces): If a procedure that is
3044 use associated but not generic is given an interface that
3045 includes itself, then make it generic.
3047 2010-01-11 Joseph Myers <joseph@codesourcery.com>
3048 Shujing Zhao <pearly.zhao@oracle.com>
3050 PR translation/42469
3051 * lang.opt (fblas-matmul-limit=, finit-character=, finit-integer=,
3052 finit-logical=, finit-real=, fmax-array-constructor=): Use tab
3053 character between option name and help text.
3055 2010-01-09 Jerry DeLisle <jvdelisle@gcc.gnu.org>
3059 * trans-array.c (gfc_conv_array_initializer): Change call to
3060 gfc_error_now to call to gfc_fatal_error.
3061 * array.c (count_elements): Whitespace. (extract_element): Whitespace.
3062 (is_constant_element): Changed name from constant_element.
3063 (gfc_constant_ac): Only use expand_construuctor for expression
3064 types of EXPR_ARRAY. If expression type is EXPR_CONSTANT, no need to
3065 call gfc_is_constant_expr.
3066 * expr.c (gfc_reduce_init_expr): Adjust conditionals and delete error
3068 * resolve.c (gfc_is_expandable_expr): New function that determiners if
3069 array expressions should have their constructors expanded.
3070 (gfc_resolve_expr): Use new function to determine whether or not to call
3071 gfc_expand_constructor.
3073 2010-01-09 Tobias Burnus <burnus@net-b.de>
3076 * trans-expr.c (gfc_trans_structure_assign): Handle
3078 * symbol.c (gen_special_c_interop_ptr): Add NULL_EXPR
3079 to the constructor for c_null_(fun)ptr.
3080 * resolve.c (resolve_structure_cons): Add special case
3081 for c_null_(fun)ptr.
3083 2010-01-09 Jakub Jelinek <jakub@redhat.com>
3085 * gfortranspec.c (lang_specific_driver): Update copyright notice
3088 2010-01-08 Tobias Burnus <burnus@net-b.de>
3091 * symbol.c (check_conflict, gfc_copy_attr): Add
3092 ASYNCHRONOUS support.
3093 (gfc_add_asynchronous): New function.
3094 * decl.c (match_attr_spec): Add ASYNCHRONOUS support.
3095 (gfc_match_asynchronous): New function.
3096 * dump-parse-tree.c (show_attr): Add ASYNCHRONOUS support.
3097 * gfortran.h (symbol_attribute): New ASYNCHRONOUS bit.
3098 (gfc_add_asynchronous): New Prototype.
3099 * module.c (ab_attribute, mio_symbol_attribute): Add
3100 ASYNCHRONOUS support.
3101 * resolve.c (was_declared): Ditto.
3102 * match.h (gfc_match_asynchronous): New prototype.
3103 * parse.c (decode_specification_statement,decode_statement):
3104 Add ASYNCHRONOUS support.
3106 2010-01-07 Tobias Burnus <burnus@net-b.de>
3109 * trans-decl.c (get_proc_pointer_decl): Fix call to
3110 gfc_conv_initializer for array-valued proc-pointer funcs.
3112 2010-01-07 Tobias Burnus <burnus@net-b.de>
3115 * trans-decl.c (gfc_trans_deferred_vars): Don't initialize
3116 allocatable scalars with SAVE attribute.
3118 2010-01-05 Tobias Burnus <burnus@net-b.de>
3121 * options.c (gfc_post_options): Set -frecursion
3122 when -fopenmp is used.
3124 2010-01-05 Tobias Burnus <burnus@net-b.de>
3127 * trans-expr.c (gfc_conv_procedure_call): Nullify
3128 return value for allocatable-scalar character functions.
3130 2010-01-04 Tobias Burnus <burnus@net-b.de>
3133 * error.c (error_printf, gfc_warning, gfc_notify_std,
3134 gfc_warning_now, gfc_error, gfc_error_now,
3135 gfc_fatal_error): Change argument name from nocmsgid to
3136 gmsgid to enable (x)gettext's % checking.
3138 2010-01-04 Tobias Burnus <burnus@net-b.de>
3140 * trans-decl.c (gfc_trans_deferred_vars): Fix spelling.
3142 2010-01-04 Tobias Burnus <burnus@net-b.de>
3145 * trans-expr.c (gfc_conv_procedure_call): Add indirect ref
3146 for functions returning allocatable scalars.
3147 * trans-stmt.c (gfc_trans_allocate): Emmit error when
3148 reallocating an allocatable scalar.
3149 * trans.c (gfc_allocate_with_status): Fix pseudocode syntax
3151 * trans-decl.c (gfc_trans_deferred_vars): Nullify local
3152 allocatable scalars.
3153 (gfc_generate_function_code): Nullify result variable for
3154 allocatable scalars.
3157 * module.c (gfc_use_module): Fix warning string to allow
3161 * invoke.texi (-fcheck=recursion): Mention that the checking
3162 is also disabled for -frecursive.
3163 * trans-decl.c (gfc_generate_function_code): Disable
3164 -fcheck=recursion when -frecursive is used.
3166 * intrinsic.texi (iso_c_binding): Improve wording.
3169 Copyright (C) 2010 Free Software Foundation, Inc.
3171 Copying and distribution of this file, with or without modification,
3172 are permitted in any medium without royalty provided the copyright
3173 notice and this notice are preserved.