blob: 6c7cea7c4a406d4a22eb528cb92a5c51a2165e56 [file] [log] [blame]
2013-12-30 Janus Weil <>
PR fortran/58998
* resolve.c (resolve_symbol): Check that symbol is not only flavorless
but also untyped.
2013-12-29 Janus Weil <>
PR fortran/59612
* dump-parse-tree.c (show_typespec): Check for charlen.
* invoke.texi: Fix documentation of -fdump-fortran-optimized and
2013-12-18 Janus Weil <>
PR fortran/59493
* gfortran.h (gfc_find_intrinsic_vtab): Removed prototype.
(gfc_find_vtab): New prototype.
* class.c (gfc_find_intrinsic_vtab): Rename to 'find_intrinsic_vtab' and
make static. Minor modifications.
(gfc_find_vtab): New function.
(gfc_class_initializer): Use new function 'gfc_find_vtab'.
* check.c (gfc_check_move_alloc): Ditto.
* expr.c (gfc_check_pointer_assign): Ditto.
* interface.c (compare_actual_formal): Ditto.
* resolve.c (resolve_allocate_expr, resolve_select_type): Ditto.
* trans-expr.c (gfc_conv_intrinsic_to_class, gfc_trans_class_assign):
* trans-intrinsic.c (conv_intrinsic_move_alloc): Ditto.
* trans-stmt.c (gfc_trans_allocate): Ditto.
2013-12-16 Janus Weil <>
PR fortran/54949
* symbol.c (check_conflict): Forbid abstract procedure pointers.
(gfc_add_abstract): Check for attribute conflicts.
2013-12-16 Jakub Jelinek <>
PR libgomp/59337
* openmp.c (resolve_omp_atomic): Adjust error message.
2013-12-15 Janus Weil <>
PR fortran/59493
* class.c (gfc_find_intrinsic_vtab): Handle BT_CLASS.
2013-12-14 Janus Weil <>
PR fortran/59502
* primary.c (gfc_match_varspec): Check for 'class_ok'.
2013-12-14 Janus Weil <>
PR fortran/59450
* module.c (mio_expr): Handle type-bound function expressions.
2013-12-12 Tobias Burnus <>
PR fortran/59440
* trans-decl.c (generate_namelist_decl): Ensure debug DIE
is created by setting DECL_IGNORED_P to 0.
2013-12-11 Janus Weil <>
PR fortran/58916
* resolve.c (conformable_arrays): Treat scalar 'e2'.
(resolve_allocate_expr): Check rank also for unlimited-polymorphic
2013-12-10 Janus Weil <>
PR fortran/35831
* interface.c (check_dummy_characteristics): Add checks for several
2013-12-10 Janus Weil <>
* gfortran.texi: Add possible kind values (and default) for
* invoke.texi: Correct documentation of -fdefault-integer-8,
-fdefault-real-8 and -fdefault-double-8.
2013-12-10 Janus Weil <>
* gfortran.texi: Modify documentation of kind type parameters.
* invoke.texi: Extend documentation of -fdefault-integer-8 and
2013-12-10 Janus Weil <>
* invoke.texi: Add -freal-4-real-16. Rearrange kind promotion options.
2013-12-08 Tobias Burnus <>
Janus Weil <>
PR fortran/58099
PR fortran/58676
PR fortran/41724
* resolve.c (gfc_resolve_intrinsic): Set elemental/pure.
(resolve_fl_procedure): Reject pure dummy procedures/procedure
(gfc_explicit_interface_required): Don't require a
match of ELEMENTAL for intrinsics.
2013-12-07 Janus Weil <>
PR fortran/59414
* resolve.c (resolve_specific_f0): Handle CLASS-valued functions.
2013-12-04 Tobias Burnus <>
PR debug/37132
* trans-decl.c (generate_namelist_decl, create_module_nml_decl):
New static functions.
(gfc_generate_module_vars, generate_local_vars): Call them.
(gfc_trans_use_stmts): Handle namelists for debug genertion.
2013-12-01 Paul Thomas <>
PR fortran/57354
* trans-array.c (gfc_conv_resolve_dependencies): For other than
SS_SECTION, do a dependency check if the lhs is liable to be
2013-12-01 Paul Thomas <>
PR fortran/58410
* trans-array.c (gfc_alloc_allocatable_for_assignment): Do not
use the array bounds of an unallocated array but set its size
to zero instead.
2013-12-01 Paul Thomas <>
PR fortran/34547
* resolve.c (resolve_transfer): EXPR_NULL is always in an
invalid context in a transfer statement.
2013-11-28 Sergey Ostanevich <>
* lang.opt (Wopenmp-simd): New.
2013-11-25 Janus Weil <>
PR fortran/59143
* interface.c (get_expr_storage_size): Handle array-valued type-bound
2013-11-24 Francois-Xavier Coudert <>
* scanner.c (gfc_open_intrinsic_module): Remove function.
* gfortran.h (gfc_open_intrinsic_module): Remove prototype.
2013-11-23 Janus Weil <>
PR fortran/59228
* interface.c (compare_parameter): Check for array spec.
2013-11-22 Andrew MacLeod <>
* trans.c: Add required include files from gimple.h.
* trans-expr.c: Likewise
* trans-openmp.c: Likewise
2013-11-22 David Malcolm <>
* trans.c (trans_runtime_error_vararg): Remove use of input_line
2013-11-17 Andrew MacLeod <>
* fortran/trans-intrinsic.c: Include tree-nested.h.
2013-11-14 Andrew MacLeod <>
* trans-expr.c: Include only gimplify.h and gimple.h as needed.
* trans-openmp.c: Likewise.
2013-11-14 Diego Novillo <>
* decl.c: Include stringpool.h.
* iresolve.c: Include stringpool.h.
* match.c: Include stringpool.h.
* module.c: Include stringpool.h.
* target-memory.c: Include stor-layout.h.
* trans-common.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
* trans-const.c: Include stor-layout.h.
* trans-decl.c: Include stringpool.h.
Include stor-layout.h.
Include varasm.h.
Include attribs.h.
* trans-expr.c: Include stringpool.h.
* trans-intrinsic.c: Include stringpool.h.
Include tree-nested.h.
Include stor-layout.h.
* trans-io.c: Include stringpool.h.
Include stor-layout.h.
* trans-openmp.c: Include stringpool.h.
* trans-stmt.c: Include stringpool.h.
* trans-types.c: Include stor-layout.h.
Include stringpool.h.
* trans.c: Include stringpool.h.
2013-11-12 Andrew MacLeod <>
* f95-lang.c: Don't include gimple.h.
* trans-array.c: Include gimple-expr.h instead of gimple.h.
* trans.c: Likewise.
* trans-decl.c: Likewise.
* trans-expr.c: Include gimplify.h.
* trans-openmp.c: Likewise.
2013-11-07 Janus Weil <>
PR fortran/58471
* primary.c (gfc_expr_attr): Check for result symbol.
2013-11-06 Francois-Xavier Coudert <>
* gfortran.texi: Fix typo.
2013-11-05 Tobias Burnus <>
* lang.opt (-Wdate-time): New option
* cpp.c (gfc_cpp_option_data): Add warn_date_time.
(gfc_cpp_init_options, gfc_cpp_handle_option,
gfc_cpp_post_options): Handle it and pass on to libcpp.
2013-11-05 Steven G. Kargl <>
PR fortran/58989
* check.c (gfc_check_reshape): ensure that shape is a constant
2013-11-05 Tobias Burnus <>
* lang.opt (fopenmp-simd): New option.
* gfortran.h (gfc_option_t): Add gfc_flag_openmp_simd.
* options.c (gfc_handle_option): Handle it.
2013-11-04 Ian Lance Taylor <>
* f95-lang.c (ATTR_LEAF_LIST): Define.
2013-11-04 Paul Thomas <>
PR fortran/58771
* trans-io.c (transfer_expr): If the backend_decl for a derived
type is missing, build it with gfc_typenode_for_spec.
2013-11-04 Paul Thomas <>
PR fortran/57445
* trans-expr.c (gfc_conv_class_to_class): Remove spurious
2013-10-29 Tobias Burnus <>
PR fortran/44350
* parse.c (parse_spec): Add C1116 constraint
check for BLOCK DATA.
2013-10-29 Paul Thomas <>
PR fortran/58793
* trans-types.c (gfc_typenode_for_spec): Add typenode for
BT_HOLLERITH. Note that the length is incorrect but unusable.
PR fortran/58858
* target-memory.c (gfc_element_size): Add element sizes for
BT_VOID and BT_ASSUMED, using gfc_typenode_for_spec.
2013-10-24 Tobias Burnus <>
PR fortran/44646
* trans-stmt.c (struct forall_info): Add do_concurrent field.
(gfc_trans_forall_1): Set it for do concurrent.
(gfc_trans_forall_loop): Mark those as annot_expr_ivdep_kind.
2013-10-23 Tobias Burnus <>
PR fortran/58793
* interface.c (compare_parameter): Reject passing TYPE(*)
to CLASS(*).
2013-10-22 Paul Thomas <>
PR fortran 57893
* class.c : Include target-memory.h.
(gfc_find_intrinsic_vtab) Build a minimal expression so that
gfc_element_size can be used to obtain the storage size, rather
that the kind value.
2013-10-21 Tobias Burnus <>
PR fortran/58803
* decl.c (match_ppc_decl): Prevent later
double free.
2013-10-17 Andrew MacLeod <>
* trans-openmp.c: Include omp-low.h.
2013-10-16 Tobias Burnus <>
PR fortran/58652
* interface.c (compare_parameter): Accept passing CLASS(*)
to CLASS(*).
2013-10-16 Tobias Burnus <>
* intrinsic.texi (OpenMP Modules): Update to OpenMPv4.
Document omp_proc_bind_kind.
2013-10-15 Tobias Burnus <>
PR fortran/58652
* trans-intrinsic.c (conv_intrinsic_move_alloc): Fix handling
of CLASS(*) variables.
2013-10-14 Tobias Burnus <>
PR fortran/58658
* expr.c (gfc_check_vardef_context): Fix pointer diagnostic
for CLASS(*).
2013-10-11 Jakub Jelinek <>
* trans-openmp.c (gfc_omp_clause_default_ctor,
gfc_omp_clause_dtor): Return NULL for OMP_CLAUSE_REDUCTION.
* f95-lang.c (ATTR_NULL, DEF_FUNCTION_TYPE_8): Define.
* types.def (DEF_FUNCTION_TYPE_8): Document.
2013-10-10 Tobias Burnus <>
PR fortran/58226
* options.c (gfc_get_option_string): Handle zero arg case.
2013-10-02 Tobias Burnus <>
PR fortran/58593
* trans-expr.c (gfc_conv_string_tmp): Fix obtaining
the byte size of a single character.
2013-10-01 Tobias Burnus <>
PR fortran/58579
* trans-expr.c (gfc_conv_string_tmp): Correctly obtain
the byte size of a single character.
2013-09-27 Janne Blomqvist <>
* intrinsic.texi (DATE_AND_TIME): Fix example.
2013-09-25 Tobias Burnus <>
PR fortran/58436
* class.c (generate_finalization_wrapper): Handle CLASS(*).
2013-09-25 Tobias Burnus <>
PR fortran/57697
PR fortran/58469
* resolve.c (generate_component_assignments): Avoid double free
at runtime and freeing a still-being used expr.
2013-09-25 Tom Tromey <>
* (fortran_OBJS): Use fortran/gfortranspec.o.
(gfortranspec.o): Remove.
(CFLAGS-fortran/gfortranspec.o): New variable.
($(F95_PARSER_OBJS), fortran/openmp.o, GFORTRAN_TRANS_DEPS)
(fortran/f95-lang.o, fortran/scanner.o, fortran/convert.o)
(fortran/frontend-passes.o, fortran/trans.o, fortran/trans-decl.o)
(fortran/trans-types, fortran/trans-const.o, fortran/trans-expr.o)
(fortran/trans-stmt.o, fortran/trans-openmp.o, fortran/trans-io.o)
(fortran/trans-array.o, fortran/trans-intrinsic.o)
(fortran/dependency.o, fortran/trans-common.o, fortran/resolve.o)
(fortran/data.o, fortran/options.o, fortran/cpp.o)
(fortran/scanner.o, fortran/module.o): Remove.
2013-09-25 Tom Tromey <>
* (gfortranspec.o): Don't use subshell.
2013-09-23 Janus Weil <>
PR fortran/58355
* decl.c (check_extended_derived_type): Prevent segfault, modify error
2013-09-20 Janus Weil <>
PR fortran/58099
* expr.c (gfc_check_pointer_assign): Remove second call to
'gfc_compare_interfaces' with swapped arguments.
* interface.c (gfc_compare_interfaces): Symmetrize the call to
'check_result_characteristics' by calling it with swapped arguments.
2013-09-18 Tobias Burnus <>
* expr.c (gfc_check_assign_symbol): Free lvalue.ref.
2013-09-18 Tobias Burnus <>
PR fortran/43366
* primary.c (gfc_variable_attr): Also handle codimension.
* resolve.c (resolve_ordinary_assign): Add invalid-diagnostic for
polymorphic assignment.
2013-09-16 Tobias Burnus <>
PR fortran/58356
* class.c (generate_finalization_wrapper): Init proc_tree if
not yet resolved.
2013-09-16 Tobias Burnus <>
PR fortran/57697
* resolve.c (generate_component_assignments): Correctly handle the
case that the LHS is not allocated.
2013-09-15 Tobias Burnus <>
PR fortran/57697
* resolve.c (generate_component_assignments): Handle unallocated
LHS with defined assignment of components.
2013-09-12 Brooks Moses <>
PR driver/42955
* Do not install driver binaries in $(target)/bin.
2013-09-09 Tobias Burnus <>
* invoke.texi (Error and Warning Options): Add hyphen.
2013-09-02 Thomas Koenig <>
PR fortran/PR56519
* gfortran.h: Declare gfc_do_concurrent_flag as extern.
* resolve.c: Rename do_concurrent_flag to gfc_do_concurrent_flag
and make non-static.
(resolve_function): Use gfc_do_concurrent_flag instead of
(pure_subroutine): Likewise.
(resolve_code): Likewise.
(resolve_types): Likewise.
* intrinsic.c (gfc_intrinsic_sub_interface): Raise error for
non-pure intrinsic subroutines within DO CONCURRENT.
2013-08-29 Thomas Koenig <>
PR fortran/52243
* trans-expr.c (is_runtime_conformable): New function.
* gfc_trans_assignment_1: Use it.
2013-08-26 Thomas Koenig <>
PR fortran/58146
* array.c (gfc_ref_dimen_size): If possible, use
gfc_dep_difference to calculate array refrence
sizes. Fall back to integer code otherwise.
* dependency.c (discard_nops). Move up.
Also discarde widening integer conversions.
(gfc_dep_compare_expr): Use discard_nops.
2013-08-23 Mikael Morin <>
PR fortran/57798
* trans-array.c (gfc_conv_ss_startstride, set_loop_bounds,
gfc_set_delta): Generate preliminary code before the outermost loop.
2013-08-23 Janus Weil <>
PR fortran/57843
* interface.c (gfc_extend_assign): Look for type-bound assignment
procedures before non-typebound.
2013-08-23 Mikael Morin <>
* trans-array.c (gfc_conv_section_startstride): Move &loop->pre access
to the callers.
(gfc_conv_ss_startstride, gfc_conv_expr_descriptor): Update callers.
2013-08-22 Janus Weil <>
PR fortran/58185
* match.c (copy_ts_from_selector_to_associate): Only build class
container for polymorphic selector. Some cleanup.
2013-08-20 Janus Weil <>
PR fortran/53655
* trans-decl.c (generate_local_decl): Check if type has any components.
2013-08-19 Janus Weil <>
PR fortran/46271
* openmp.c (resolve_omp_clauses): Bugfix for procedure pointers.
2013-08-12 Thomas Koenig <>
PR fortran/56666
* gfortran.h (gfc_option_t): Add warn_zerotrip.
* invoke.texi (-Wzerotrip): Document option.
* lang.opt (Wzerotrip): Add.
* options.c (gfc_init_options): Initialize warn_zerotrip.
(set_Wall): Add handling of warn_zerotrip.
(gfc_handle_option): Handle OPT_Wzerotrip.
* resolve.c (gfc_resolve_iterator): Honor
gfc_option.warn_zerotrip; update error message to show
how to suppress the warning.
2013-08-09 Janus Weil <>
* gfortran.h (gfc_get_code): Modified prototype.
* class.c (finalize_component, finalization_scalarizer,
finalization_get_offset, finalizer_insert_packed_call,
generate_finalization_wrapper, gfc_find_derived_vtab,
gfc_find_intrinsic_vtab): Use 'gfc_get_code'.
* io.c (match_io_iterator, match_io_element, terminate_io, get_io_list,
gfc_match_inquire): Call 'gfc_get_code' with argument.
* match.c (match_simple_forall, gfc_match_forall, gfc_match_goto,
gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where):
* parse.c (new_level): Ditto.
(add_statement): Use XCNEW.
* resolve.c (resolve_entries, resolve_allocate_expr,
resolve_select_type, build_assignment, build_init_assign): Call
'gfc_get_code' with argument.
* st.c (gfc_get_code): Add argument 'op'.
* trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code'
with argument.
* trans-stmt.c (gfc_trans_allocate): Ditto.
2013-08-09 Janus Weil <>
PR fortran/58058
* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary
string, if necessary.
2013-08-06 Martin Jambor <>
PR fortran/57987
* trans-decl.c (gfc_generate_function_code): Never call
cgraph_finalize_function on nested functions.
2013-08-06 Janus Weil <>
PR fortran/57306
* class.c (gfc_class_null_initializer): Rename to
'gfc_class_initializer'. Treat non-NULL init-exprs.
* gfortran.h (gfc_class_null_initializer): Update prototype.
* trans-decl.c (gfc_get_symbol_decl): Treat class variables.
* trans-expr.c (gfc_conv_initializer): Ditto.
(gfc_trans_subcomponent_assign): Renamed gfc_class_null_initializer.
2013-07-30 Tobias Burnus <>
PR fortran/57530
* symbol.c (gfc_type_compatible): A type is type compatible with
a class if both have the same declared type.
* interface.c (compare_type): Reject CLASS/TYPE even if they
are type compatible.
2013-07-30 Tobias Burnus <>
PR fortran/57530
* trans-expr.c (gfc_trans_class_assign): Handle CLASS array
(gfc_trans_pointer_assign): Ditto and support pointer assignment of
a polymorphic var to a nonpolymorphic var.
2013-07-22 Po Chang <>
* match.c (gfc_match_call): Exit loop after setting i.
* resolve.c (resolve_variable): Exit loop after setting seen.
* expr.c (gfc_check_pointer_assign): Exit loop after setting warn.
* trans-array.c (set_loop_bounds): Exit loop after setting
* trans-io.c (gfc_trans_transfer): Exit loop after setting seen_vector.
2013-07-28 Thomas Koenig <>
PR fortran/58009
* expr.c (gfc_check_vardef_context): Check for same values in
vector expression subscripts.
2013-07-27 Tobias Burnus <>
PR fortran/57991
* interface.c (check_some_aliasing): Also warn for intent OUT/OUT.
2013-07-27 Janus Weil <>
PR fortran/57285
* check.c (dim_rank_check): Re-enable this check for CLASS arrays.
2013-07-25 Janus Weil <>
PR fortran/57966
* resolve.c (resolve_typebound_function): Make sure the declared type,
including its type-bound procedures, is resolved before resolving the
actual type-bound call.
2013-07-25 Janus Weil <>
PR fortran/57639
* interface.c (compare_parameter): Check for class_ok.
* simplify.c (gfc_simplify_same_type_as): Ditto.
2013-07-23 Ondřej Bílka <>
* decl.c: Fix comment typos.
* interface.c: Likewise.
* trans-array.c: Likewise.
* trans.c: Likewise.
2013-07-22 Tobias Burnus <>
PR fortran/57906
PR fortran/52052
* class.c (gfc_build_class_symbol): Set coarray_comp.
* trans-array.c (structure_alloc_comps): For coarrays,
directly use the data pointer address.
2013-07-22 Chang <>
* trans-decl.c (gfc_build_dummy_array_decl): Exit loop after
2013-07-22 Tobias Burnus <>
* trans-array.c (gfc_array_allocate): Correct memory-leak patch.
2013-07-22 Tobias Burnus <>
* trans-array.c (gfc_array_allocate,
gfc_trans_deferred_array): Plug memory leak.
2013-07-21 Ondřej Bílka <>
* trans-decl.c: Fix comment typos.
* trans-expr.c: Ditto.
2013-07-21 Thomas Koenig <>
PR fortran/56937
* dependency.c (gfc_dep_resolver): Treat identical
array subscripts as identical; don't unconditionally
return a dependency if an array subscript is found.
2013-07-21 Tobias Burnus <>
PR fortran/35862
2013-07-21 Tobias Burnus <>
PR fortran/57894
* check.c (min_max_args): Add keyword= check.
2013-07-17 Mikael Morin <>
Tobias Burnus <>
PR fortran/57895
* match.c (gfc_match_name): Ensure that the error
message regarding -fdollar-ok gets printed.
(gfc_match_common): Avoid multiple freeing.
2013-07-16 Tobias Burnus <>
PR fortran/57912
* trans-expr.c (gfc_trans_scalar_assign): Correct if
condition for caf realloc.
2013-07-15 Tobias Burnus <>
* trans-array.h (gfc_deallocate_alloc_comp_no_caf,
gfc_reassign_alloc_comp_caf): New prototype.
* trans-array.c (enum): Add DEALLOCATE_ALLOC_COMP_NO_CAF
(structure_alloc_comps): Handle it.
gfc_deallocate_alloc_comp_no_caf): New function.
(gfc_alloc_allocatable_for_assignment): Call it.
* trans-expr.c (gfc_trans_scalar_assign,
gfc_trans_arrayfunc_assign, gfc_trans_assignment_1): Ditto.
* parse.c (parse_derived): Correctly set coarray_comp.
* resolve.c (resolve_symbol): Improve error wording.
2013-07-15 Tobias Burnus <>
PR fortran/37336
* trans.c (gfc_add_comp_finalizer_call): New function.
* trans.h (gfc_add_comp_finalizer_call): New prototype.
* trans-array.c (structure_alloc_comps): Call it.
2013-07-14 Thomas Koenig <>
Tobias Burnus <>
PR fortran/52669
* trans-decl.c (gfc_finish_var_decl): Move setting of
PRIVATE for a module variable if the module has a private
default or -fmodule-private is given to...
(gfc_create_module_variable): here. Optionally
warn about private module variable which is not used.
2013-07-08 Tobias Burnus <>
PR fortran/57834
* check.c (is_c_interoperable): Add special case for c_f_pointer.
(explicit-size, gfc_check_c_f_pointer, gfc_check_c_loc): Update
2013-07-08 Tobias Burnus <>
PR fortran/50554
* io.c (match_inquire_element): Add missing do-var check.
2013-07-08 Tobias Burnus <>
PR fortran/57785
* simplify.c (compute_dot_product): Complex conjugate for
(gfc_simplify_dot_product, gfc_simplify_matmul): Update call.
2013-07-08 Tobias Burnus <>
PR fortran/57469
* trans-decl.c (generate_local_decl): Don't warn that
a dummy is unused, when it is in a namelist.
2013-07-01 Dominique d'Humieres <>
PR fortran/54788
* array.c (spec_size): handle the case as==NULL.
2013-06-26 Tobias Burnus <>
PR fortran/29800
* trans-array.c (gfc_conv_array_ref): Improve out-of-bounds
diagnostic message.
* trans-array.c (gfc_conv_array_ref): Update prototype.
* trans-expr.c (gfc_conv_variable): Update call.
2013-06-24 Steven G. Kargl <>
Francois-Xavier Coudert <>
Dominique d'Humieres <>
PR fortran/52413
* simplify.c (gfc_simplify_fraction): Fix the sign of negative values.
2013-06-21 Tobias Burnus <>
PR fortran/37336
* trans-array.c (gfc_trans_deferred_array): Call the
finalizer for nonallocatable local variables.
* trans-decl.c (gfc_get_symbol_decl): Add local
finalizable vars to the deferred list.
(gfc_trans_deferred_vars): Call gfc_trans_deferred_array
for those.
2013-06-21 Tobias Burnus <>
* trans-array.c (gfc_alloc_allocatable_for_assignment): Allocate
at least one byte.
* trans-expr.c (alloc_scalar_allocatable_for_assignment): Ditto.
2013-06-20 Tobias Burnus <>
* resolve.c (get_temp_from_expr): Don't set FL_VARIABLE twice.
2013-06-17 Tobias Burnus <>
* gfortran.h (gfc_option_t): Add fpe_summary.
* gfortran.texi (_gfortran_set_options): Update.
* invoke.texi (-ffpe-summary): Add doc.
* lang.opt (ffpe-summary): Add flag.
* options.c (gfc_init_options, gfc_handle_option): Handle it.
(gfc_handle_fpe_option): Renamed from gfc_handle_fpe_trap_option,
also handle fpe_summary.
* trans-decl.c (create_main_function): Update
_gfortran_set_options call.
2013-06-15 Mikael Morin <>
PR fortran/49074
PR fortran/56136
* dependency.c (gfc_check_argument_var_dependency): Return 0 in the
array constructor case.
2013-06-14 Tobias Burnus <>
PR fortran/57508
* resolve.c (get_temp_from_expr): Don't copy function
result attributes to temporary.
2013-06-14 Tobias Burnus <>
PR fortran/57596
* trans-decl.c (gfc_trans_deferred_vars): Honor OPTIONAL
for nullify and deferred-strings' length variable.
2013-06-13 Mikael Morin <>
PR fortran/49074
* trans-expr.c (gfc_conv_variable): Don't walk the reference chain.
Handle NULL array references.
(gfc_conv_procedure_call): Remove code handling NULL array references.
2013-06-11 Tobias Burnus <>
PR fortran/57535
* trans-array.c (build_class_array_ref): Fix ICE for
function result variables.
2013-06-08 Tobias Burnus <>
PR fortran/37336
* trans-decl.c (init_intent_out_dt): Call finalizer
when appropriate.
2013-06-08 Tobias Burnus <>
PR fortran/57553
* simplify.c (gfc_simplify_storage_size): Handle literal
* trans-intrinsic.c (gfc_conv_intrinsic_storage_size):
Add missing fold_convert.
2013-06-07 Tobias Burnus <>
PR fortran/57549
* array.c (gfc_match_array_constructor): Call
gfc_match_type_spec instead of gfc_match_decl_type_spec.
* match.c (gfc_match_type_spec): Renamed from match_type_spec.
(gfc_match_type_is, gfc_match_allocate): Update call.
* match.h (gfc_match_type_spec): Add prototype.
2013-06-07 Tobias Burnus <>
PR fortran/57556
* trans.c (gfc_build_final_call): Init block before use.
2013-06-06 Tobias Burnus <>
PR fortran/57542
* trans.c (gfc_build_final_call): Add se.pre to the block
and modify the assert.
2013-06-04 Tobias Burnus <>
PR fortran/37336
* trans.h (gfc_build_final_call): Remove prototype.
(gfc_add_finalizer_call): Add prototype.
* trans-array.c (gfc_trans_dealloc_allocated): Support finalization.
(structure_alloc_comps): Update caller.
(gfc_trans_deferred_array): Call finalizer.
* trans-array.h (gfc_trans_dealloc_allocated): Update prototype.
* trans-decl.c (gfc_trans_deferred_vars): Don't deallocate/finalize
variables of the main program.
* trans-expr.c (gfc_conv_procedure_call): Support finalization.
* trans-openmp.c (gfc_omp_clause_dtor,
gfc_trans_omp_array_reduction): Update calls.
* trans-stmt.c (gfc_trans_deallocate): Avoid double deallocation
of alloc components.
* trans.c (gfc_add_finalizer_call): New function.
gfc_deallocate_scalar_with_status): Call it
(gfc_build_final_call): Fix handling of scalar coarrays,
move up in the file and make static.
2013-06-01 Janus Weil <>
Mikael Morin <>
* error.c (get_terminal_width): Only limit the width if we're
outputting to a terminal. Try to determine width via ioctl.
2013-06-01 Tobias Burnus <>
* decl.c (add_global_entry): Take locus.
(gfc_match_entry): Update call.
(gfc_match_end): Better error location.
* parse.c (parse_block_data, parse_module, add_global_procedure,
add_global_program): Use better locus data.
2013-05-31 Tobias Burnus <>
PR fortran/57456
* trans-array.c (gfc_array_init_size): Use passed type spec,
when available.
(gfc_array_allocate): Pass typespec on.
* trans-array.h (gfc_array_allocate): Update prototype.
* trans-stmt.c (gfc_trans_allocate): Pass typespec on.
2013-05-31 Janus Weil <>
PR fortran/54190
PR fortran/57217
* gfortran.h (gfc_terminal_width): Remove prototype.
* error.c (get_terminal_width): Moved here from misc.c. Renamed.
Try to determine terminal width from environment variable.
* interface.c (compare_type, compare_rank): New functions. Fix assumed
type/rank handling.
(compare_type_rank, check_dummy_characteristics,
check_result_characteristics, gfc_compare_interfaces): Use them.
(symbol_rank): Slightly modified and moved.
* misc.c (gfc_terminal_width): Moved to error.c.
2013-05-30 Janus Weil <>
PR fortran/54189
* resolve.c (check_assumed_size_reference): Check for e->ref.
2013-05-30 Tobias Burnus <>
PR fortran/57458
* interface.c (compare_parameter): Update C1239/C1240 constraint
check for assumed-rank/TS29113.
2013-05-29 Tobias Burnus <>
PR fortran/37336
* class.c (finalize_component): Fix coarray array refs.
(generate_finalization_wrapper): Only gfc_convert_type_warn
when the kind value is different.
(gfc_find_intrinsic_vtab): _copy's dst is now intent(inout).
(gfc_find_derived_vtab): Ditto. Enable finalization-wrapper
* module.c (MOD_VERSION): Bump.
(gfc_dump_module, gfc_use_module): Remove empty line in .mod.
* trans-array.c (gfc_conv_descriptor_token): Accept nonrestricted
void pointer.
(gfc_array_allocate, structure_alloc_comps): Don't nullify for
BT_CLASS allocations.
* trans-stmt.c (gfc_trans_allocate): Ditto.
2013-05-29 Tobias Burnus <>
PR fortran/37336
* resolve.c (gfc_resolve_finalizers): Remove not implemented error.
2013-05-28 Tobias Burnus <>
* trans-expr.c (gfc_conv_procedure_call): Deallocate
polymorphic arrays for allocatable intent(out) dummies.
(gfc_reset_vptr): New function, moved from trans-stmt.c
and extended.
* trans-stmt.c (reset_vptr): Remove.
(gfc_trans_deallocate): Update calls.
* trans.h (gfc_reset_vptr): New prototype.
2013-05-28 Dominique d'Humieres <>
PR fortran/57435
* module.c (check_for_ambiguous): Avoid null pointer deref.
2013-05-28 Janus Weil <>
Tobias Burnus <>
PR fortran/57217
* interface.c (check_dummy_characteristics): Symmetrize type check.
2013-05-27 Bud Davis <>
PR fortran/50405
* resolve.c (resolve_formal_arglist): Detect error when an argument
has the same name as the function.
2013-05-27 Tobias Burnus <>
* expr.c (gfc_build_intrinsic_call): Make symbol as attr.artificial.
* intrinsic.c (gfc_is_intrinsic): Disable std check for those.
2013-05-22 Tobias Burnus <>
* resolve.c (get_temp_from_expr): Change mangling to
start always with a _.
2013-05-22 Tobias Burnus <>
* resolve.c (get_temp_from_expr): Fix temp var mangling.
2013-05-22 Tobias Burnus <>
PR fortran/57364
* resolve.c (get_temp_from_expr): Commit created sym.
2013-05-22 Tobias Burnus <>
PR fortran/57338
* intrinsic.c (do_check): Move some checks to ...
(do_ts29113_check): ... this new function.
(check_specific, gfc_intrinsic_sub_interface): Call it.
2013-05-22 Janne Blomqvist <>
* intrinsic.texi (RANDOM_SEED): Improve example.
2013-05-21 Tobias Burnus <>
PR fortran/57035
* intrinsic.c (do_check): Add constraint check for
NO_ARG_CHECK, assumed rank and assumed type.
* gfortran.texi (NO_ARG_CHECK): Minor wording change,
allow PRESENT intrinsic.
2013-05-20 Tobias Burnus <>
PR fortran/48858
PR fortran/55465
* decl.c (add_global_entry): Add sym_name.
* parse.c (add_global_procedure): Ditto.
* resolve.c (resolve_bind_c_derived_types): Handle multiple decl for
a procedure.
(resolve_global_procedure): Handle gsym->ns pointing to a module.
* trans-decl.c (gfc_get_extern_function_decl): Ditto.
2013-05-20 Tobias Burnus <>
PR fortran/48858
* decl.c (add_global_entry): Use nonbinding name
only for F2003 or if no binding label exists.
(gfc_match_entry): Update calls.
* parse.c (gfc_global_used): Improve error message.
(add_global_procedure): Use nonbinding name
only for F2003 or if no binding label exists.
(gfc_parse_file): Update call.
* resolve.c (resolve_global_procedure): Use binding
name when available.
* trans-decl.c (gfc_get_extern_function_decl): Ditto.
2013-05-20 Tobias Burnus <>
PR fortran/48858
* decl.c (gfc_match_bind_c_stmt): Add gfc_notify_std.
* match.c (gfc_match_common): Don't add commons to gsym.
* resolve.c (resolve_common_blocks): Add to gsym and
add checks.
(resolve_bind_c_comms): Remove.
(resolve_types): Remove call to the latter.
* trans-common.c (gfc_common_ns): Remove static var.
(gfc_map_of_all_commons): Add static var.
(build_common_decl): Correctly handle binding label.
2013-05-16 Jason Merrill <>
* (f951$(exeext)): Use link mutex.
2013-05-05 Tobias Burnus <>
* resolve.c (conformable_arrays): Avoid segfault
when ar.start[i] == NULL.
2013-05-05 Tobias Burnus <>
PR fortran/57141
* decl.c (gfc_match_null): Permit use-associated
NULL intrinsic.
2013-05-04 Tobias Burnus <>
* decl.c (gfc_verify_c_interop_param): Permit allocatable
and pointer with -std=f2008ts.
2013-05-02 Tobias Burnus <>
PR fortran/57142
* simplify.c (gfc_simplify_size): Renamed from
simplify_size; fix kind=8 handling.
(gfc_simplify_size): New function.
(gfc_simplify_shape): Add range check.
* resolve.c (resolve_function): Fix handling
2013-05-01 Thomas Koenig <>
* frontend-passes.c (optimize_power): Fix typo
in comment.
2013-04-30 Thomas Koenig <>
PR fortran/57071
* frontend-passes.c (optimize_power): Simplify
1**k to 1.
2013-04-28 Tobias Burnus <>
PR fortran/57114
* intrinsic.texi (RANK): Correct syntax description and
expected result.
2013-04-28 Tobias Burnus <>
PR fortran/57093
* trans-types.c (gfc_get_element_type): Fix handling
of scalar coarrays of type character.
* intrinsic.texi (PACK): Add missing ")".
2013-04-28 Thomas Koenig <>
PR fortran/57071
* frontend-passes (optimize_power): New function.
(optimize_op): Use it.
2013-04-25 Janne Blomqvist <>
PR bootstrap/57028
* (f951): Link in ZLIB.
(CFLAGS-fortran/module.o): Add zlib include directory.
2013-04-22 Janus Weil <>
PR fortran/53685
PR fortran/57022
* check.c (gfc_calculate_transfer_sizes): Fix for array-valued SOURCE
* simplify.c (gfc_simplify_sizeof,gfc_simplify_storage_size): Get rid
of special treatment for EXPR_ARRAY.
* target-memory.h (gfc_element_size): New prototype.
* target-memory.c (size_array): Remove.
(gfc_element_size): New function.
(gfc_target_expr_size): Modified to always return the full size of the
2013-04-20 Tobias Burnus <>
PR fortran/56907
* trans-intrinsic.c (conv_isocbinding_function): Don't pack array
passed to C_LOC
2013-04-19 Thomas Koenig <>
Mikael Morin <>
PR fortran/56872
* frontend-passes.c (copy_walk_reduction_arg): Change argument type
to gfc_constructor. If it has an iterator, wrap the copy of its
expression in an array constructor with that iterator. Don't special
case function expressions.
(callback_reduction): Update caller. Don't return early if there is
an iterator.
2013-04-18 Tobias Burnus <>
* expr.c (find_array_element): Don't copy expr.
* data.c (create_character_initializer): Free expr.
* frontend-passes.c (combine_array_constructor): Ditto.
* match.c (match_typebound_call, gfc_match_select_type): Ditto.
* resolve.c (resolve_typebound_function): Free gfc_ref.
2013-04-18 Tobias Burnus <>
PR fortran/56994
* invoke.texi (NEAREST): S argument is not optional.
2013-04-17 Janus Weil <>
PR fortran/56814
* interface.c (check_result_characteristics): Get result from interface
if present.
2013-04-17 Janne Blomqvist <>
PR fortran/40958
* scanner.h: New file.
* Dependencies on scanner.h.
* scanner.c (gfc_directorylist): Move to scanner.h.
* module.c: Don't include md5.h, include scanner.h and zlib.h.
(MOD_VERSION): Add comment about backwards compatibility.
(module_fp): Change type to gzFile.
(ctx): Remove.
(gzopen_included_file_1): New function.
(gzopen_included_file): New function.
(gzopen_intrinsic_module): New function.
(write_char): Use gzputc.
(read_crc32_from_module_file): New function.
(read_md5_from_module_file): Remove.
(gfc_dump_module): Use gz* functions instead of stdio, check gzip
crc32 instead of md5.
(read_module_to_tmpbuf): Use gz* functions instead of stdio.
(gfc_use_module): Use gz* functions.
2013-04-16 Tobias Burnus <>
PR fortran/39505
* decl.c (ext_attr_list): Add EXT_ATTR_NO_ARG_CHECK.
* gfortran.h (ext_attr_id_t): Ditto.
* gfortran.texi (GNU Fortran Compiler Directives):
Document it.
* interface.c (compare_type_rank): Ignore rank for NO_ARG_CHECK.
(compare_parameter): Ditto - and regard as unlimited polymorphic.
* resolve.c (resolve_symbol, resolve_variable): Add same constraint
checks as for TYPE(*); turn dummy to TYPE(*),dimension(*).
(gfc_explicit_interface_required): Require explicit interface
2013-04-16 Janus Weil <>
PR fortran/56968
* expr.c (gfc_check_pointer_assign): Handle generic functions returning
procedure pointers.
2013-04-16 Tobias Burnus <>
PR fortran/56969
* intrinsic.c (gfc_intrinsic_func_interface): Don't set
module name to "(intrinsic)" for intrinsics from intrinsic
2013-04-15 Tobias Burnus <>
* intrinsic.texi (SYSTEM_CLOCK): Recommend kind=8.
2013-04-15 Janne Blomqvist <>
PR fortran/56919
* intrinsics.texi (SYSTEM_CLOCK): Update documentation.
2013-04-15 Tobias Burnus <>
* class.c (gfc_find_intrinsic_vtab): Removed unused var.
* dependency.c (check_data_pointer_types): Fix check.
* frontend-passes.c (check_data_pointer_types): Remove
superfluous statement.
* parse.c (decode_omp_directive): Add missing break.
* resolve.c (resolve_typebound_subroutine: Free variable.
* trans-decl.c (create_function_arglist): Correct condition.
2013-04-14 Mikael Morin <>
PR fortran/56816
* match.c (gfc_match_select_type): Add syntax error. Move namespace
allocation and cleanup...
* parse.c (decode_statement): ... here.
2013-04-13 Janus Weil <>
PR fortran/55959
* expr.c (gfc_simplify_expr): Branch is not unreachable.
2013-04-12 Janus Weil <>
PR fortran/56266
* primary.c (gfc_match_varspec): Turn gcc_assert into MATCH_ERROR.
2013-04-12 Tobias Burnus <>
PR fortran/56929
* trans-array.c (duplicate_allocatable): Fix handling
of scalar coarrays.
2013-04-12 Janus Weil <>
PR fortran/56261
* gfortran.h (gfc_explicit_interface_required): New prototype.
* expr.c (gfc_check_pointer_assign): Check if an explicit interface is
required in a proc-ptr assignment.
* interface.c (check_result_characteristics): Extra check.
* resolve.c (gfc_explicit_interface_required): New function.
(resolve_global_procedure): Use new function
'gfc_explicit_interface_required'. Do a full interface check.
2013-04-12 Tobias Burnus <>
PR fortran/56845
* trans-decl.c (gfc_trans_deferred_vars): Restrict
static CLASS init to SAVE and -fno-automatic.
2013-04-12 Tobias Burnus <>
PR fortran/56845
* trans-decl.c (gfc_trans_deferred_vars): Set _vptr for
allocatable static BT_CLASS.
* trans-expr.c (gfc_class_set_static_fields): New function.
* trans.h (gfc_class_set_static_fields): New prototype.
2013-04-11 Janne Blomqvist <>
* gfortran.h: Remove enum gfc_try, replace gfc_try with bool type.
* arith.c: Replace gfc_try with bool type.
* array.c: Likewise.
* check.c: Likewise.
* class.c: Likewise.
* cpp.c: Likewise.
* cpp.h: Likewise.
* data.c: Likewise.
* data.h: Likewise.
* decl.c: Likewise.
* error.c: Likewise.
* expr.c: Likewise.
* f95-lang.c: Likewise.
* interface.c: Likewise.
* intrinsic.c: Likewise.
* intrinsic.h: Likewise.
* io.c: Likewise.
* match.c: Likewise.
* match.h: Likewise.
* module.c: Likewise.
* openmp.c: Likewise.
* parse.c: Likewise.
* parse.h: Likewise.
* primary.c: Likewise.
* resolve.c: Likewise.
* scanner.c: Likewise.
* simplify.c: Likewise.
* symbol.c: Likewise.
* trans-intrinsic.c: Likewise.
* trans-openmp.c: Likewise.
* trans-stmt.c: Likewise.
* trans-types.c: Likewise.
2013-04-09 Tobias Burnus <>
* gfortran.texi (KIND Type Parameters,
Internal representation of LOGICAL variables): Add crossrefs.
(Intrinsic Types): Mention issues with _Bool interop.
(Naming and argument-passing conventions): New section.
2013-04-08 Thomas Koenig <>
PR fortran/56782
* frontend-passes.c (callback_reduction): Don't do
any simplification if there is only a single element
which has an iterator.
2013-04-07 Tobias Burnus <>
PR fortran/56849
* iresolve.c (gfc_resolve_reshape): Set shape also
with order=.
2013-04-04 Janus Weil <>
PR fortran/40881
* match.c (gfc_match_return): Remove standard notification.
* primary.c (gfc_match_actual_arglist): Add standard notification.
2013-04-04 Tobias Burnus <>
PR fortran/50269
* gcc/fortran/check.c (is_c_interoperable,
gfc_check_c_loc): Correct c_loc array checking
for Fortran 2003 and Fortran 2008.
2013-04-03 Janus Weil <>
PR fortran/56284
PR fortran/40881
* decl.c (gfc_match_formal_arglist): Warn about alternate-return
* interface.c (check_dummy_characteristics): Return if symbols are NULL.
2013-04-01 Janus Weil <>
PR fortran/56500
* symbol.c (gfc_set_default_type): Build class container for
2013-03-31 Tobias Burnus <>
* class.c (finalization_scalarizer, finalizer_insert_packed_call,
generate_finalization_wrapper): Avoid segfault with absent SIZE=
argument to TRANSFER and use correct result kind for SIZE.
* intrinsic.c (gfc_isym_id_by_intmod): Also handle ids of
* trans.c (gfc_build_final_call): Handle coarrays.
2013-03-30 Thomas Koenig <>
* trans-expr.c (build_memcmp_call): New function.
(gfc_build_compare_string): If the strings
compared have constant and equal lengths and
the strings are kind=1, or, for kind=4 strings,
the test is for (in)equality, use memcmp().
2013-03-29 Tobias Burnus <>
PR fortran/35203
* trans-decl.c (create_function_arglist): Pass hidden argument
for passed-by-value optional+value dummies.
* trans-expr.c (gfc_conv_expr_present,
gfc_conv_procedure_call): Handle those.
2013-03-28 Thomas Koenig <>
PR fortran/45159
* gfortran.h (gfc_dep_difference): Add prototype.
* dependency.c (discard_nops): New function.
(gfc_dep_difference): New function.
(check_section_vs_section): Use gfc_dep_difference
to calculate the difference of starting indices.
* trans-expr.c (gfc_conv_substring): Use
gfc_dep_difference to calculate the length of
substrings where possible.
2013-03-28 Thomas Koenig <>
PR fortran/55806
* frontend-passes.c (optimize_code): Keep track of
current code to make code insertion possible.
(combine_array_constructor): New function.
(optimize_op): Call it.
2013-03-27 Tobias Burnus <>
PR fortran/56650
PR fortran/36437
* check.c (gfc_check_sizeof, gfc_check_c_sizeof,
gfc_check_storage_size): Update checks.
* intrinsic.texi (SIZEOF): Correct class.
* intrinsic.h (gfc_simplify_sizeof,
gfc_simplify_storage_size): New prototypes.
* intrinsic.c (add_functions): Use them.
* simplify.c (gfc_simplify_sizeof,
gfc_simplify_storage_size): New functions.
2013-03-27 Janne Blomqvist <>
PR fortran/25708
* module.c (module_locus): Use long for position.
(module_content): New variable.
(module_pos): Likewise.
(prev_character): Remove.
(bad_module): Free data instead of closing mod file.
(set_module_locus): Use module_pos.
(get_module_locus): Likewise.
(module_char): use buffer rather than stdio file.
(module_unget_char): Likewise.
(read_module_to_tmpbuf): New function.
(gfc_use_module): Call read_module_to_tmpbuf.
2013-03-26 Tobias Burnus <>
PR fortran/56649
* simplify.c (gfc_simplify_merge): Simplify more.
2013-03-25 Tobias Burnus <>
PR fortran/38536
PR fortran/38813
PR fortran/38894
PR fortran/39288
PR fortran/40963
PR fortran/45824
PR fortran/47023
PR fortran/47034
PR fortran/49023
PR fortran/50269
PR fortran/50612
PR fortran/52426
PR fortran/54263
PR fortran/55343
PR fortran/55444
PR fortran/55574
PR fortran/56079
PR fortran/56378
* check.c (gfc_var_strlen): Properly handle 0-sized string.
(gfc_check_c_sizeof): Use is_c_interoperable, add checks.
(is_c_interoperable, gfc_check_c_associated, gfc_check_c_f_pointer,
gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc): New
* expr.c (check_inquiry): Add c_sizeof, compiler_version and
(gfc_check_pointer_assign): Refine function result check.
gfortran.h (gfc_isym_id): Add GFC_ISYM_C_ASSOCIATED,
(iso_fortran_env_symbol, iso_c_binding_symbol): Handle
(generate_isocbinding_symbol): Update prototype.
(get_iso_c_sym): Remove.
(gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New prototypes.
* intrinsic.c (gfc_intrinsic_subroutine_by_id): New function.
(gfc_intrinsic_sub_interface): Use it.
(add_functions, add_subroutines): Add missing C-binding intrinsics.
(gfc_intrinsic_func_interface): Add special case for c_loc.
gfc_isym_id_by_intmod, gfc_isym_id_by_intmod_sym): New functions.
(gfc_intrinsic_func_interface, gfc_intrinsic_sub_interface): Use them.
* intrinsic.h (gfc_check_c_associated, gfc_check_c_f_pointer,
gfc_check_c_f_procpointer, gfc_check_c_funloc, gfc_check_c_loc,
gfc_resolve_c_loc, gfc_resolve_c_funloc): New prototypes.
* iresolve.c (gfc_resolve_c_loc, gfc_resolve_c_funloc): New
* iso-c-binding.def: Split PROCEDURE into NAMED_SUBROUTINE and
* iso-fortran-env.def: Add NAMED_SUBROUTINE for completeness.
* module.c (create_intrinsic_function): Support subroutines and
derived-type results.
(use_iso_fortran_env_module): Update calls.
(import_iso_c_binding_module): Ditto; update calls to
* resolve.c (find_arglists): Skip for intrinsic symbols.
(gfc_resolve_intrinsic): Find intrinsic subs via id.
(is_scalar_expr_ptr, gfc_iso_c_func_interface,
set_name_and_label, gfc_iso_c_sub_interface): Remove.
(resolve_function, resolve_specific_s0): Remove calls to those.
(resolve_structure_cons): Fix handling.
* symbol.c (gen_special_c_interop_ptr): Update c_ptr/c_funptr
(gen_cptr_param, gen_fptr_param, gen_shape_param,
build_formal_args, get_iso_c_sym): Remove.
(std_for_isocbinding_symbol): Handle NAMED_SUBROUTINE.
(generate_isocbinding_symbol): Support hidden symbols and
using c_ptr/c_funptr symtrees for nullptr defs.
* target-memory.c (gfc_target_encode_expr): Fix handling
of c_ptr/c_funptr.
* trans-expr.c (conv_isocbinding_procedure): Remove.
(gfc_conv_procedure_call): Remove call to it.
(gfc_trans_subcomponent_assign, gfc_conv_expr): Update handling
of c_ptr/c_funptr.
* trans-intrinsic.c (conv_isocbinding_function,
conv_isocbinding_subroutine): New.
(gfc_conv_intrinsic_function, gfc_conv_intrinsic_subroutine):
Call them.
* trans-io.c (transfer_expr): Fix handling of c_ptr/c_funptr.
* trans-types.c (gfc_typenode_for_spec,
gfc_get_derived_type): Ditto.
(gfc_init_c_interop_kinds): Handle NAMED_SUBROUTINE.
2013-03-18 Tobias Burnus <>
* gfortran.h (gfc_option_t): Remove flag_whole_file.
* invoke.texi (-fno-whole-file): Remove.
* lang.opt (fwhole-file): Change to Ignore.
* options.c (gfc_init_options, gfc_post_options,
gfc_handle_option): Remove !flag_whole_file handling
* parse.c (resolve_all_program_units, translate_all_program_units,
gfc_parse_file): Ditto.
* resolve.c (resolve_global_procedure): Ditto.
* trans-decl.c (gfc_get_symbol_decl, gfc_get_extern_function_decl,
gfc_create_module_variable): Ditto.
* trans-types.c (gfc_get_derived_type): Ditto.
2013-03-15 Tobias Burnus <>
PR fortran/56615
* trans-intrinsic.c (gfc_conv_intrinsic_transfer): Pack arrays
if they are not simply contiguous.
2013-03-11 Tobias Burnus <>
* gfortran.texi (STRUCTURE and RECORD): State more clearly how
to convert them into derived types.
2013-03-10 Paul Thomas <>
PR fortran/56575
* expr.c (gfc_default_initializer): Check that a class declared
type has any components.
* resolve.c (resolve_fl_derived0): On failing the test for C437
set the type to BT_UNKNOWN to prevent repeat error messages.
2013-03-03 Mikael Morin <>
PR fortran/56477
* expr.c (gfc_check_pointer_assign): Avoid NULL pointer dereference.
2013-03-03 Mikael Morin <>
PR fortran/54730
* array.c (gfc_match_array_constructor): Set a checkpoint before
matching a typespec. Drop it on success, restore it otherwise.
2013-03-03 Mikael Morin <>
PR fortran/54730
* gfortran.h (struct gfc_undo_change_set): New field 'previous'.
(gfc_new_undo_checkpoint, gfc_drop_last_undo_checkpoint,
gfc_restore_last_undo_checkpoint): New prototypes.
* symbol.c (default_undo_chgset_var): Update initialization.
(single_undo_checkpoint_p, gfc_new_undo_checkpoint,
free_undo_change_set_data, pop_undo_change_set,
gfc_drop_last_undo_checkpoint, enforce_single_undo_checkpoint):
New functions.
(save_symbol_data): Handle multiple change sets. Make sure old_symbol
field's previous value is not overwritten. Clear gfc_new field.
(restore_old_symbol): Restore previous old_symbol field.
(gfc_restore_last_undo_checkpoint): New function, using body renamed
from gfc_undo_symbols. Restore the previous change set as current one.
(gfc_undo_symbols): New body.
(gfc_commit_symbols, gfc_commit_symbol, gfc_enforce_clean_symbol_state):
Call enforce_single_undo_checkpoint.
(gfc_symbol_done_2): Ditto. Free change set data.
2013-03-03 Mikael Morin <>
* symbol.c (restore_old_symbol): Fix thinko.
2013-03-03 Mikael Morin <>
* symbol.c (gfc_undo_symbols): Move code...
(restore_old_symbol): ... here as a new function.
2013-03-03 Mikael Morin <>
* (F95_PARSER_OBJS): Add dependency to vec.h.
* gfortran.h: Include vec.h.
(gfc_undo_change_set): New struct.
* symbol.c (tentative_tbp): Remove struct.
(changed_syms, tentative_tbp_list): Remove variables.
(default_undo_chgset_var, latest_undo_chgset): New variables.
(save_symbol_data, gfc_get_sym_tree, gfc_undo_symbols,
gfc_commit_symbols, gfc_commit_symbol,
gfc_enforce_clean_symbol_state, gfc_get_typebound_proc):
Use latest_undo_chgset instead of changed_syms and tentative_tbp_list.
2013-03-01 Tobias Burnus <>
PR fortran/56491
* iresolve.c (resolve_bound): Use gfc_get_string instead of xstrdup.
* symbol.c (free_components): Free proc-pointer components.
2013-03-01 Tobias Burnus <>
* trans-decl.c (gfc_trans_deferred_vars): Free expr after use.
* trans-io.c (build_dt): Ditto.
2013-02-24 Joseph Myers <>
* resolve.c (generate_component_assignments): Don't use UTF-8
ligature in diagnostic.
2013-02-21 Janus Weil <>
PR fortran/56385
* trans-array.c (structure_alloc_comps): Handle procedure-pointer
components with allocatable result.
2013-02-21 Tobias Burnus <>
PR fortran/56416
* gfortran.texi (Part II: Language Reference, Extensions,
Non-Fortran Main Program): Sort @menu to match actual section order.
* intrinsic.texi (Intrinsic Procedures): Ditto.
(C_F_POINTER, PRECISION): Move to the alphabetically correct place.
2013-02-15 Tobias Burnus <>
Mikael Morin <>
PR fortran/56318
* simplify.c (gfc_simplify_matmul): Fix result shape
and matmul result.
2013-02-15 Tobias Burnus <>
PR fortran/53818
* resolve.c (apply_default_init_local): Don't create an
initializer for a result variable.
2013-02-14 Thomas Koenig <>
PR fortran/56224
* gfortran.h (gfc_add_include_path): Add boolean argument
for warn.
* scanner.c (gfc_add_include_path): Pass along warn argument
to add_path_to_list.
* options.c (gfc_post_options): Add true warn argument to
(gfc_handle_module_path_options): Likewise.
(gfc_handle_option): Also gfc_add_include_path for intrinsic
modules, without warning.
2013-02-14 Paul Thomas <>
Tobias Burnus <>
PR testsuite/56138
* trans-decl.c (gfc_get_symbol_decl): Fix deferred-length
results for functions without extra result variable.
2013-01-30 Tobias Burnus <>
PR fortran/56138
* trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
results for functions without extra result variable.
2013-02-12 Janus Weil <>
PR fortran/46952
* resolve.c (resolve_call): Do not check deferred procedures for
2013-02-09 Paul Thomas <>
PR fortran/55362
* check.c (array_check): It is an error if a procedure is
2013-02-08 Mikael Morin <>
PR fortran/54107
* trans-types.c (gfc_get_function_type): Change a NULL backend_decl
to error_mark_node on entry. Detect recursive types. Build a variadic
procedure type if the type is recursive. Restore the initial
2013-02-07 Tobias Burnus <>
PR fortran/54339
* gfortran.texi (Standards): Mention TS29113.
(Varying Length Character): Mention deferred-length
(Fortran 2003 Status): Add unlimited polymorphic.
(TS 29113 Status): Add TYPE(*) and DIMENSION(..).
(C Interop): Update the section about TS29113.
2013-02-06 Paul Thomas <>
PR fortran/55789
* trans-array.c (trans_array_constructor): Remove condition
'dynamic' = true if the loop ubound is a VAR_DECL.
2013-02-04 Paul Thomas <>
PR fortran/56008
PR fortran/47517
* trans-array.c (gfc_alloc_allocatable_for_assignment): Save
the lhs descriptor before it is modified for reallocation. Use
it to deallocate allocatable components in the reallocation
block. Nullify allocatable components for newly (re)allocated
2013-02-04 Mikael Morin <>
PR fortran/54195
* resolve.c (resolve_typebound_procedures): Recurse through
2013-02-04 Mikael Morin <>
PR fortran/54107
PR fortran/54195
* gfortran.h (struct gfc_symbol): New field 'resolved'.
* resolve.c (resolve_fl_var_and_proc): Don't skip result symbols.
(resolve_symbol): Skip duplicate calls. Don't check the current
2013-02-02 Thomas Koenig <>
PR fortran/50627
PR fortran/56054
* decl.c (gfc_match_end): Remove half-ready namespace
from parent if the end of a block is missing.
* parse.c (parse_module): Do not put namespace into
gsymbol on error.
2013-01-30 Tobias Burnus <>
PR fortran/56138
* trans-decl.c (gfc_trans_deferred_vars): Fix deferred-length
results for functions without extra result variable.
2013-01-29 Janus Weil <>
Mikael Morin <>
PR fortran/54107
* gfortran.h (gfc_component): Delete members 'formal' and 'formal_ns'.
gfc_expr_replace_comp): Delete.
(gfc_sym_get_dummy_args): New prototype.
* dependency.c (gfc_check_fncall_dependency): Use
* expr.c (gfc_is_constant_expr): Ditto.
gfc_expr_replace_comp): Deleted.
* frontend-passes.c (doloop_code,do_function): Use
* interface.c (gfc_check_operator_interface,gfc_compare_interfaces,
gfc_check_typebound_override): Ditto.
* module.c (MOD_VERSION): Bump module version.
(mio_component): Do not read/write 'formal' and 'formal_ns'.
* resolve.c (resolve_procedure_interface,resolve_fl_derived0): Do not
copy formal args, but just keep a pointer to the interface.
resolve_typebound_procedure,check_uop_procedure): Use
* symbol.c (free_components): Do not free 'formal' and 'formal_ns'.
(gfc_copy_formal_args,gfc_copy_formal_args_ppc): Deleted.
(gfc_sym_get_dummy_args): New function.
* trans-array.c (get_array_charlen,gfc_walk_elemental_function_args):
Use 'gfc_sym_get_dummy_args'.
* trans-decl.c (build_function_decl,create_function_arglist,
add_argument_checking): Ditto.
* trans-expr.c (gfc_map_fcn_formal_to_actual,gfc_conv_procedure_call,
gfc_conv_statement_function): Ditto.
* trans-stmt.c (gfc_conv_elemental_dependencies): Ditto.
* trans-types.c (create_fn_spec,gfc_get_function_type): Ditto.
2013-01-28 Tobias Burnus <>
Mikael Morin <>
PR fortran/53537
* symbol.c (gfc_find_sym_tree): Don't look for the symbol outside an
interface block.
(gfc_get_ha_symtree): Let gfc_find_sym_tree lookup the parent namespace.
* decl.c (gfc_match_data_decl): Ditto.
(variable_decl): Remove undeclared type error.
(gfc_match_import): Use renamed instead of original name.
2013-01-27 Paul Thomas <>
PR fortran/55984
PR fortran/56047
* gfortran.h : Add associate_var to symbol_attr.
* resolve.c (resolve_assoc_var): Set associate_var attribute.
If the target class_ok is set, set it for the associate
* check.c (allocatable_check): Associate variables should not
have the allocatable attribute even if their symbols do.
* class.c (gfc_build_class_symbol): Symbols with associate_var
set will always have a good class container.
2013-01-23 Janus Weil <>
PR fortran/56081
* resolve.c (resolve_select): Add argument 'select_type', reject
non-scalar expressions.
(resolve_select_type,resolve_code): Pass new argument to
2013-01-23 Jakub Jelinek <>
PR fortran/56052
* trans-decl.c (gfc_get_symbol_decl): Set DECL_ARTIFICIAL
and DECL_IGNORED_P on select_type_temporary and don't set
2013-01-21 Thomas Koenig <>
PR fortran/55919
* scanner.c (add_path_to_list): Copy path to temporary and strip
trailing directory separators before calling stat().
2013-01-17 Richard Biener <>
* trans-stmt.c (gfc_trans_do): Conditionally compute countm1
dependent on sign of step, avoids repeated evaluation of
step sign test. Avoid undefined overflow issues by using unsigned
2013-01-16 Janus Weil <>
PR fortran/55983
* class.c (find_typebound_proc_uop): Check for f2k_derived instead of
asserting it.
2013-01-16 Jakub Jelinek <>
Tobias Burnus <>
PR driver/55884
* lang.opt (fintrinsic-modules-path): Don't accept Joined.
(fintrinsic-modules-path=): New.
* options.c (gfc_handle_option, gfc_get_option_string,
gfc_get_option_string): Handle the latter.
2013-01-16 Jakub Jelinek <>
PR fortran/52865
* trans-stmt.c (gfc_trans_do): Put countm1-- before conditional
and use value of countm1 before the decrement in the condition.
2013-01-15 Paul Thomas <>
PR fortran/54286
* expr.c (gfc_check_pointer_assign): Check for presence of
's2' before using it.
2013-01-14 Thomas Koenig <>
PR fortran/55806
* frontend-passes.c (optimize_reduction): New function,
including prototype.
(callback_reduction): Likewise.
(gfc_run_passes): Also run optimize_reduction.
(copy_walk_reduction_arg): New function.
(dummy_code_callback): New function.
2013-01-13 Jakub Jelinek <>
PR fortran/55935
* trans-expr.c (gfc_conv_structure): Call
unshare_expr_without_location on the ctor elements.
2013-01-13 Paul Thomas <>
PR fortran/54286
* expr.c (gfc_check_pointer_assign): Ensure that both lvalue
and rvalue interfaces are presented to gfc_compare_interfaces.
Simplify references to interface names by using the symbols
themselves. Call gfc_compare_interfaces with s1 and s2 inter-
changed to overcome the asymmetry of this function. Do not
repeat the check for the presence of s1 and s2.
2013-01-12 Janus Weil <>
PR fortran/55072
* trans-array.c (gfc_conv_array_parameter): No packing was done for
full arrays of derived type.
2013-01-08 Paul Thomas <>
PR fortran/55868
* class.c (get_unique_type_string): Change $tar to STAR and
replace sprintf by strcpy where there is no formatting.
* decl.c (gfc_match_decl_type_spec): Change $tar to STAR.
2013-01-09 Mikael Morin <>
PR fortran/47203
* module.c (check_for_ambiguous): Get the current program unit using
2013-01-09 Tobias Burnus <>
PR fortran/55758
* resolve.c (resolve_symbol): Reject non-C_Bool logicals
in BIND(C) procedures with -std=f*.
2013-01-08 Paul Thomas <>
PR fortran/55618
* trans-expr.c (gfc_conv_procedure_call): Dereference scalar
character function arguments to elemental procedures in
scalarization loops.
2013-01-07 Tobias Burnus <>
PR fortran/55763
* gfortran.h (gfc_check_assign_symbol): Update prototype.
* decl.c (add_init_expr_to_sym, do_parm): Update call.
* expr.c (gfc_check_assign_symbol): Handle BT_CLASS and
improve error location; support components.
(gfc_check_pointer_assign): Handle component assignments.
* resolve.c (resolve_fl_derived0): Call gfc_check_assign_symbol.
(resolve_values): Update call.
(resolve_structure_cons): Avoid double diagnostic.
2013-01-07 Tobias Burnus <>
Thomas Koenig <>
PR fortran/55852
* expr.c (gfc_build_intrinsic_call): Avoid clashes
with user's procedures.
* gfortran.h (gfc_build_intrinsic_call): Update prototype.
* simplify.c (gfc_simplify_size): Update call.
* class.c (finalization_scalarizer, finalization_get_offset,
finalizer_insert_packed_call, generate_finalization_wrapper):
Clean up by using gfc_build_intrinsic_call.
2013-01-07 Tobias Burnus <>
PR fortran/55763
* resolve.c (resolve_select_type): Reject intrinsic types for
a non-unlimited-polymorphic selector.
2013-01-06 Paul Thomas <>
PR fortran/53876
PR fortran/54990
PR fortran/54992
* trans-array.c (build_array_ref): Check the TYPE_CANONICAL
to see if it is GFC_CLASS_TYPE_P.
* trans-expr.c (gfc_get_vptr_from_expr): The same.
(gfc_conv_class_to_class): If the types are not the same,
cast parmese->expr to the type of ctree.
* trans-types.c (gfc_get_derived_type): GFC_CLASS_TYPE_P of
CLASS components must be set.
2013-01-06 Mikael Morin <>
PR fortran/42769
PR fortran/45836
PR fortran/45900
* module.c (read_module): Don't reuse local symtree if the associated
symbol isn't exactly the one wanted. Don't reuse local symtree if it is
* resolve.c (resolve_call): Use symtree's name instead of symbol's to
lookup the symtree.
2013-01-05 Steven G. Kargl <>
Mikael Morin <>
PR fortran/55827
* class.c (gfc_fix_class_refs): Adapt ts initialization for the case
e->symtree == NULL.
* trans-expr.c (gfc_conv_function_expr): Init sym earlier. Use it.
2013-01-05 Tobias Burnus <>
* class.c (finalize_component): Used passed offset expr.
(finalization_get_offset): New static function.
(finalizer_insert_packed_call, generate_finalization_wrapper): Use it
to handle noncontiguous arrays.
2013-01-04 Tobias Burnus <>
* trans.c (gfc_build_final_call): New function.
* trans.h (gfc_build_final_call, gfc_conv_scalar_to_descriptor):
New function prototypes.
* trans-expr.c (gfc_conv_scalar_to_descriptor): Renamed from
conv_scalar_to_descriptor, removed static attribute.
(gfc_conv_procedure_call): Honor renaming.
2013-01-04 Tobias Burnus <>
* intrinsic.c (add_functions): New internal intrinsic
function GFC_PREFIX ("stride").
* gfortran.h (gfc_isym_id): Add GFC_ISYM_STRIDE.
* intrinsic.h (gfc_resolve_stride): New prototypes.
* iresolve.c (gfc_resolve_stride): New function.
* trans-intrinsic.c (conv_intrinsic_stride): New static
(gfc_conv_intrinsic_function): Use it.
2013-01-04 Tobias Burnus <>
* class.c (gfc_find_intrinsic_vtab): Add _final
* decl.c (gfc_match_null): Remove superfluous
variadic argument to gfc_match.
2013-01-04 Paul Thomas <>
PR fortran/55172
* match.c (copy_ts_from_selector_to_associate): Remove call to
gfc_resolve_expr and replace it with explicit setting of the
array reference type.
* resolve.c (resolve_select_type): It is an error if the
selector is coindexed.
2013-01-04 Tobias Burnus <>
PR fortran/55763
* decl.c (gfc_match_null): Parse and reject MOLD.
2013-01-04 Tobias Burnus <>
PR fortran/55854
PR fortran/55763
* class.c (gfc_class_null_initializer): Fix finding the vtab.
(gfc_find_intrinsic_vtab): Use BT_VOID for some components.
2013-01-03 Janus Weil <>
PR fortran/55855
* expr.c (gfc_check_assign): Use 'gfc_expr_attr' to evaluate attributes
of rvalue. Correct hyphenation in error message.
2013-01-03 Jakub Jelinek <>
* gfortranspec.c (lang_specific_driver): Update copyright notice
Copyright (C) 2013 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.