fortran/ChangeLog
2006-11-20 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/24783
* resolve.c (resolve_variable): Get the implicit type from the
symbols namespace rather than the default namespace. Fix whitespace.
(resolve_formal_arglist, resolve_equivalence): Fix typo.
testsuite/ChangeLog
2006-11-20 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/24783
* gfortran.dg/implicit_10.f90: New test.
From-SVN: r119016
fortran/
2006-11-19 Erik Edelmann <eedelman@gcc.gnu.org>
* resolve.c (resolve_ref): Check for ALLOCATABLEs to the right of
nonzero rank part references too.
testsuite/
2006-11-19 Erik Edelmann <eedelman@gcc.gnu.org>
* gfortran.dg/alloc_comp_constraint_5.f90: New.
* gfortran.dg/alloc_comp_assign_2.f90: Removed invalid code.
From-SVN: r118999
* module.c (gfc_use_module): Uncomment the ISO_FORTRAN_ENV code.
Check that intrinsic and non-intrinsic modules don't conflict.
(use_iso_fortran_env_module): New function.
(create_int_parameter): New function.
* trans-types.c (gfc_init_kinds): Choose values for
gfc_numeric_storage_size and gfc_character_storage_size.
(gfc_numeric_storage_size, gfc_character_storage_size): New variables.
* resolve.c (resolve_symbol): Do no check intrinsic modules
against the list of intrinsic symbols.
* iso-fortran-env.def: New file.
* gfortran.h (gfc_numeric_storage_size,
gfc_character_storage_size): Add prototypes.
* gfortran.dg/use_3.f90: Remove error message.
* gfortran.dg/iso_fortran_env_1.f90: New test.
* gfortran.dg/iso_fortran_env_2.f90: New test.
* gfortran.dg/iso_fortran_env_3.f90: New test.
* gfortran.dg/iso_fortran_env_4.f90: New test.
From-SVN: r118998
PR fortran/24285
* io.c (check_format): Allow dollars everywhere in format, and
issue a warning.
* gfortran.dg/dollar_edit_descriptor-3.f: New test.
From-SVN: r118971
* gfortran.h (gfc_add_intrinsic_modules_path,
gfc_open_intrinsic_module): New prototypes.
(gfc_add_include_path, gfc_open_included_file): Update prototypes.
* lang.opt: Add -fintrinsic-modules-path option.
* module.c (gfc_match_use): Match the Fortran 2003 form of
USE statement.
(gfc_use_module): Also handle intrinsic modules.
* scanner.c (gfc_directorylist): Add use_for_modules for field.
(intrinsic_modules_dirs): New static variable.
(add_path_to_list, gfc_add_intrinsic_modules_path): New functions.
(gfc_add_include_path): Use the new add_path_to_list helper
function.
(gfc_release_include_path): Free memory for intrinsic_modules_dirs.
(open_included_file, gfc_open_intrinsic_module): New functions.
(gfc_open_included_file): Use the new open_included_file
helper function.
* lang-specs.h: Use the new -fintrinsic-modules-path option.
* parse.c (decode_statement): Do not match the required space
after USE here.
* options.c (gfc_handle_option): Handle the new option. Use new
prototype for gfc_add_include_path.
(gfc_post_options): Use new prototype for gfc_add_include_path.
* gfortran.dg/use_1.f90: New test.
* gfortran.dg/use_1.f90: New test.
* gfortran.dg/use_1.f90: New test.
From-SVN: r118930
PR fortran/29391
PR fortran/29489
* simplify.c (simplify_bound): Fix the simplification of
LBOUND/UBOUND intrinsics.
* trans-intrinsic.c (simplify_bound): Fix the logic, and
remove an erroneous assert.
* gcc/testsuite/gfortran.dg/bound_2.f90: Add more checks.
* gcc/testsuite/gfortran.dg/bound_3.f90: New test.
From-SVN: r118888
* trans-decl.c (gfc_get_symbol_decl): Fix formatting.
* io/open.c (new_unit): Format %d expects an int variable.
* runtime/error.c (show_locus): Format %d expects an int variable.
From-SVN: r118887
2006-11-15 Bud Davis <bdavis9659@sbcglobal.net>
PR fortran/28974
* gfortran.h (gfc_expr): Add element which holds a splay-tree
for the exclusive purpose of quick access to a constructor by
offset.
* data.c (find_con_by_offset): Use the splay tree for the search.
(gfc_assign_data_value): Use the splay tree.
(gfc_assign_data_value_range): ditto.
* expr.c (gfc_get_expr): Initialize new element to null.
(gfc_free_expr): Delete splay tree when deleting gfc_expr.
From-SVN: r118844
* gfortran.h (GFC_MAX_LINE): Remove constant definition.
(gfc_option_t): Clarify comments.
* options.c: Set default line length limits to actual default
values, rather than flag values.
* scanner.c: Eliminate checking and handling of the
fixed/free_line_length flag values.
From-SVN: r118842
2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR fortran/26994
* gfortran.fortran-torture/compile/transfer-1.f90:
New testcase.
2006-11-12 Andrew Pinski <andrew_pinski@playstation.sony.com>
PR fortran/26994
* trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the
new CONST_DECL.
From-SVN: r118761
2006-11-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29758
* check.c (gfc_check_reshape): Check that there are enough
elements in the source array as to be able to fill an array
defined by shape, when pad is absent.
2006-11-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29758
* gfortran.dg/reshape_source_size_1.f90: New test.
From-SVN: r118664
2006-11-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29315
* trans-expr.c (is_aliased_array): Treat correctly the case where the
component is itself and array or array reference.
2006-11-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29315
* gfortran.dg/aliasing_dummy_4.f90: New test.
From-SVN: r118659
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29431
* trans-array.c (get_array_ctor_strlen): If we fall through to
default, use a constant character length if it is available.
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29431
* gfortran.dg/array_constructor_13.f90: New test.
From-SVN: r118631
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29744
* trans-types.c (gfc_get_derived_type): Ensure that the
proc_name namespace is not the same as the owner namespace and
that identical derived types in the same namespace share the
same backend_decl.
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29744
* gfortran.dg/used_types_12.f90: New test.
From-SVN: r118627
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29699
* trans-array.c (structure_alloc_comps): Detect pointers to
arrays and use indirect reference to declaration.
* resolve.c (resolve_fl_variable): Tidy up condition.
(resolve_symbol): The same and only add initialization code if
the symbol is referenced.
* trans-decl.c (gfc_trans_deferred_vars): Call gfc_trans_
deferred_array before gfc_trans_auto_array_allocation.
PR fortran/21730
* symbol.c (check_done): Remove.
(gfc_add_attribute): Remove reference to check_done and remove
the argument attr_intent.
(gfc_add_allocatable, gfc_add_dimension, gfc_add_external,
gfc_add_intrinsic, gfc_add_optional, gfc_add_pointer,
gfc_add_cray_pointer, gfc_add_cray_pointee, gfc_add_result,
gfc_add_target, gfc_add_in_common, gfc_add_elemental,
gfc_add_pure, gfc_add_recursive, gfc_add_procedure,
gfc_add_type): Remove references to check_done.
* decl.c (attr_decl1): Eliminate third argument in call to
gfc_add_attribute.
* gfortran.h : Change prototype for gfc_add_attribute.
2006-11-09 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29699
* gfortran.dg/alloc_comp_auto_array_1.f90: New test.
PR fortran/21730
* gfortran.dg/change_symbol_attributes_1.f90: New test.
From-SVN: r118624
* lang.opt: Add -fmax-errors= option.
* gfortran.h (gfc_option_t): Add max_errors element.
* options.c (gfc_init_options): Set max_errors default value
to 25.
(gfc_handle_options): Assign -fmax_errors value to
gfc_option.max_errors.
* error.c (gfc_increment_error_count): New function, which
also checks whether the error count exceeds max_errors.
(gfc_warning): Use it.
(gfc_warning_now): Use it.
(gfc_notify_std): Use it.
(gfc_error): Use it.
(gfc_error_now): Use it.
(gfc_error_check): Use it.
From-SVN: r118615
2006-11-07 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29539
PR fortran/29634
* decl.c (variable_decl): Add test for presence of proc_name.
* error.c (gfc_error_flag_test): New function.
* gfortran.h : Prototype for gfc_error_flag_test.
2006-11-07 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29539
* gfortran.dg/gfortran.dg/blockdata_3.f90: New test.
PR fortran/29634
* gfortran.dg/gfortran.dg/derived_function_interface_1.f90: New
test.
From-SVN: r118553
2006-11-05 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/21061
* error.c (gfc_warning): If warnings_are_errors then treat
warnings as errors with respect to the exit code.
(gfc_notify_std): Ditto.
(gfc_warning_now): Ditto.
From-SVN: r118501
Paul Thomas <pault@gcc.gnu.org>
PR fortran/24518
* trans-intrinsic.c (gfc_conv_intrinsic_mod): Use built_in fmod
for both MOD and MODULO, if it is available.
PR fortran/29565
* trans-expr.c (gfc_conv_aliased_arg): For an INTENT(OUT), save
the declarations from the unused loops by merging the block
scope for each; this ensures that the temporary is declared.
2006-11-05 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29565
* gfortran.dg/gfortran.dg/aliasing_dummy_3.f90: New test.
From-SVN: r118492
* coverage.c (coverage_checksum_string): Update comment.
* dwarf2out.c (switch_to_eh_frame_section): Update for removal
of get_file_function_name.
* cgraphunit.c (cgraph_build_static_cdtor): Update for rename
of get_file_function_name_long.
* tree.c (get_file_function_name): Rename from
get_file_function_name_long; improve comment; handle 'I' and 'D'
specially when the target has ctor/dtor support; remove special
handling for 'F'.
(get_file_function_name): Remove.
* tree.h (get_file_function_name): Rename from
get_file_function_name_long.
(get_file_function_name): Remove prototype.
In gcc/cp/:
* name-lookup.c (get_anonymous_namespace_name): New.
(push_namespace_with_attribs): Use get_anonymous_namespace_name.
* decl2.c (start_objects): Update for rename of
get_file_function_name_long.
In gcc/fortran/:
* trans-decl.c (gfc_generate_constructors): Update for removal
of get_file_function_name.
From-SVN: r118360
fortran/ChangeLog:
2006-11-01 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/29537
* trans-common.c (gfc_trans_common): If the blank common is
in a procedure or program without a name then proc_name is null, so use
the locus of the common.
(gfc_sym_mangled_common_id): Fix whitespace.
* match.c (gfc_match_common): Emit warning about blank common in
block data.
testsuite/ChangeLog:
2006-11-01 Bernhard Fischer <aldot@gcc.gnu.org>
PR fortran/29537
* gfortran.dg/blockdata_1.f90: Add warning about blank common in block
data.
* gfortran.dg/blockdata_2.f90: New testcase.
From-SVN: r118347
2006-10-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29387
* trans-intrinsic.c (gfc_conv_intrinsic_len): Rearrange to have
a specific case for EXPR_VARIABLE and, in default, build an ss
to call gfc_conv_expr_descriptor for array expressions..
PR fortran/29490
* trans-expr.c (gfc_set_interface_mapping_bounds): In the case
that GFC_TYPE_ARRAY_LBOUND is not available, use descriptor
values for it and GFC_TYPE_ARRAY_UBOUND.
PR fortran/29641
* trans-types.c (gfc_get_derived_type): If the derived type
namespace has neither a parent nor a proc_name, set NULL for
the search namespace.
2006-10-31 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29387
* gfortran.dg/intrinsic_actual_2.f90: New test.
PR fortran/29490
* gfortran.dg/actual_array_interface_1.f90: New test.
PR fortran/29641
* gfortran.dg/used_types_11.f90: New test.
From-SVN: r118220
2006-10-30 Andrew Pinski <pinskia@gmail.com>
PR fortran/29410
* trans-intrinsic.c (gfc_conv_intrinsic_array_transfer):
Change over to create VIEW_CONVERT_EXPR instead of using an
ADDR_EXPR, a cast and then an indirect reference
2006-10-30 Andrew Pinski <pinskia@gmail.com>
PR Fortran/29410
* gfortran.fortran-torture/execute/transfer1.f90: New test.
From-SVN: r118186
PR fortran/29629
* trans-openmp.c (gfc_trans_omp_array_reduction): Set attr.flavor
of init_val_sym and outer_sym to FL_VARIABLE.
* testsuite/libgomp.fortran/pr29629.f90: New test.
From-SVN: r118134
2006-10-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/27954
* decl.c (gfc_free_data_all): New function to free all data structures
after errors in DATA statements and declarations.
(top_var_list): Use new function.(top_val_list): Use new function.
(gfc_match_data_decl): Use new function.
* misc.c (gfc_typename): Fixed incorrect function name in error text.
From-SVN: r118084
* gcc/java/decl.c: Include langhooks.h.
(builtin_function): Remove.
(java_init_decl_processing): Replace calls to builtin_function
with add_builtin_function.
* gcc/java/Make-lang.in (jc1$(exeext)): Depend on and link with
attribs.o.
(java/decl.o): Depend on langhooks.h.
* gcc/java/java-tree.h (builtin_function): Remove.
* gcc/tree.c (local_define_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/objc/objc-act.c (synth_module_prologue): Replace calls to
builtin_function with add_builtin_function.
(build_next_objc_exception_stuff): Replace calls to
builtin_function with add_builtin_function.
(build_objc_exception_stuff): Replace calls to
builtin_function with add_builtin_function.
* gcc/objcp/objcp-decl.h (objcp_builtin_function): Remove.
* gcc/cp/decl.c (builtin_function_1): Move common code to
add_builtin_function.
(builtin_function): Rename to cxx_builtin_function.
Change the signature.
* gcc/cp/call.c: Include langhooks.h.
(build_java_interface_fn_ref): Replace calls to
builtin_function with add_builtin_function.
* gcc/cp/Make-lang.in (cp/call.o): Depend on langhooks.h.
* gcc/cp/cp-objcp-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
cxx_builtin_function.
* gcc/cp/cp-tree.h (builtin_function): Rename to cxx_builtin_function.
Change the signature.
* gcc/c-objc-common.h (LANG_HOOKS_BUILTIN_FUNCTION): Define as
c_builtin_function.
* gcc/c-tree.h (builtin_function): Rename to c_builtin_function. Change
the signature.
* gcc/ada/utils.c (builtin_function): Rename to gnat_builtin_function.
Move common code to add_builtin_function.
* gcc/ada/misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
gnat_builtin_function.
* gcc/ada/gigi.h (builtin_function): Rename to gnat_builtin_function.
Change the signature.
* gcc/c-decl.c (builtin_function): Rename to c_builtin_function. Move
common code to add_builtin_function.
* gcc/fortran/Make-lang.in (f951$(exeext)): Depend on and link with
attribs.o.
* gcc/fortran/trans.h (builtin_function): Rename to
gfc_builtin_function. Change the signature.
* gcc/fortran/f95-lang.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as
gfc_builtin_function.
(builtin_function): Rename to gfc_builtin_function. Move common
code to builtin_function.
(gfc_define_builtin): Replace calls to builtin_function with
gfc_define_builtin.
* gcc/langhooks.c (add_builtin_function): New function.
(lhd_builtin_function): New function.
* gcc/langhooks.h (struct lang_hooks): Change the signature of
builtin_function.
(add_builtin_function): New function.
* gcc/treelang/treetree.c (builtin_function): Remove.
* gcc/tree-ssa-loop-prefetch.c (tree_ssa_prefetch_arrays): Replace
calls to lang_hooks.builtin_function with add_builtin_function.
* gcc/c-common.c (decl_builtin_1): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/alpha/alpha.c (alpha_init_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/frv/frv.c (def_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/s390/s390.c (s390_init_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/sparc/sparc.c (def_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/i386/i386.c (def_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
(def_builtin): Replace calls to lang_hooks.builtin_function with
add_builtin_function.
* gcc/config/sh/sh.c (sh_media_init_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/c4x/c4x.c (c4x_init_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/stormy16/stormy16.c (xstormy16_init_builtins):
Replace calls to lang_hooks.builtin_function with
add_builtin_function.
* gcc/config/iq2000/iq2000.c (def_builtin):
Replace calls to lang_hooks.builtin_function with
add_builtin_function.
* gcc/config/ia64/ia64.c (def_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/rs6000/rs6000.c (def_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
(altivec_init_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/arm/arm.c (def_mbuiltin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
(arm_init_tls_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/mips/mips.c (mips_init_builtins): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/config/bfin/bfin.c (def_builtin): Replace calls to
lang_hooks.builtin_function with add_builtin_function.
* gcc/langhooks-def.h (lhd_builtin_function): New function.
(LANG_HOOKS_BUILTIN_FUNCTION): Define as lhd_builtin_function.
From-SVN: r117981
PR fortran/26025
* lang.opt: Add -fexternal-blas and -fblas-matmul-limit options.
* options.c (gfc_init_options): Initialize new flags.
(gfc_handle_option): Handle new flags.
* gfortran.h (gfc_option): Add flag_external_blas and
blas_matmul_limit flags.
* trans-expr.c (gfc_conv_function_call): Use new argument
append_args, appending it at the end of the argument list
built for a function call.
* trans-stmt.c (gfc_trans_call): Use NULL_TREE for the new
append_args argument to gfc_trans_call.
* trans.h (gfc_conv_function_call): Update prototype.
* trans-decl.c (gfc_build_intrinsic_function_decls): Add
prototypes for BLAS ?gemm routines.
* trans-intrinsic.c (gfc_conv_intrinsic_funcall): Generate the
extra arguments given to the library matmul function, and give
them to gfc_conv_function_call.
* invoke.texi: Add documentation for -fexternal-blas and
-fblas-matmul-limit.
* m4/matmul.m4: Add possible call to gemm routine.
* generated/matmul_r8.c: Regenerate.
* generated/matmul_r16.c: Regenerate.
* generated/matmul_c8.c: Regenerate.
* generated/matmul_i8.c: Regenerate.
* generated/matmul_c16.c: Regenerate.
* generated/matmul_r10.c: Regenerate.
* generated/matmul_r4.c: Regenerate.
* generated/matmul_c10.c: Regenerate.
* generated/matmul_c4.c: Regenerate.
* generated/matmul_i4.c: Regenerate.
* generated/matmul_i16.c: Regenerate.
From-SVN: r117948
2006-10-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29216
PR fortran/29314
* gfortran.h : Add EXEC_INIT_ASSIGN.
* dump-parse-tree.c (gfc_show_code_node): The same.
* trans-openmp.c (gfc_trans_omp_array_reduction): Set new
argument for gfc_trans_assignment to false.
* trans-stmt.c (gfc_trans_forall_1): The same.
* trans-expr.c (gfc_conv_function_call, gfc_trans_assign,
gfc_trans_arrayfunc_assign, gfc_trans_assignment): The
same. In the latter function, use the new flag to stop
the checking of the lhs for deallocation.
(gfc_trans_init_assign): New function.
* trans-stmt.h : Add prototype for gfc_trans_init_assign.
* trans.c (gfc_trans_code): Implement EXEC_INIT_ASSIGN.
* trans.h : Add new boolean argument to the prototype of
gfc_trans_assignment.
* resolve.c (resolve_allocate_exp): Replace EXEC_ASSIGN by
EXEC_INIT_ASSIGN.
(resolve_code): EXEC_INIT_ASSIGN does not need resolution.
(apply_default_init): New function.
(resolve_symbol): Call it for derived types that become
defined but which do not already have an initialization
expression..
* st.c (gfc_free_statement): Include EXEC_INIT_ASSIGN.
2006-10-19 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29216
* gfortran.dg/result_default_init_1.f90: New test.
PR fortran/29314
* gfortran.dg/automatic_default_init_1.f90: New test.
* gfortran.dg/alloc_comp_basics_1.f90: Reduce deallocate count
from 38 to 33.
From-SVN: r117879
2006-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/20541
* trans-array.c (gfc_trans_array_bounds): Test for and set
negative stride of a non-constant bound array to zero.
PR fortran/29392
* data.c (create_character_intializer): Copy and simplify
the expressions for the start and end of a sub-string
reference.
2006-10-17 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29392
* gfortran.dg/data_char_3.f90: New test.
PR fortran/20541
* gfortran.dg/negative_automatic_size.f90: New test.
From-SVN: r117797
2006-10-14 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/19261
* scanner.c (load_line): Add checks for illegal use of '&' and issue
warnings. Issue errors with -pedantic.
From-SVN: r117733
2006-10-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29371
* trans-expr.c (gfc_trans_pointer_assignment): Add the expression
for the assignment of null to the data field to se->pre, rather
than block.
2006-10-14 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29371
* gfortran.dg/nullify_3.f90: New test.
From-SVN: r117732
2006-10-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29373
* decl.c (get_proc_name, gfc_match_function_decl): Add
attr.implicit_type to conditions that throw error for
existing explicit interface and that allow new type-
spec to be applied.
PR fortran/29407
* resolve.c (resolve_fl_namelist): Do not check for
namelist/procedure conflict, if the symbol corresponds
to a good local variable declaration.
PR fortran/27701
* decl.c (get_proc_name): Replace the detection of a declared
procedure by the presence of a formal argument list by the
attributes of the symbol and the presence of an explicit
interface.
PR fortran/29232
* resolve.c (resolve_fl_variable): See if the host association
of a derived type is blocked by the presence of another type I
object in the current namespace.
PR fortran/29364
* resolve.c (resolve_fl_derived): Check for the presence of
the derived type for a derived type component.
PR fortran/24398
* module.c (gfc_use_module): Check that the first words in a
module file are 'GFORTRAN module'.
PR fortran/29422
* resolve.c (resolve_transfer): Test functions for suitability
for IO, as well as variables.
PR fortran/29428
* trans-expr.c (gfc_trans_scalar_assign): Remove nullify of
rhs expression.
2006-10-13 Paul Thomas <pault@gcc.gnu.org>
PR fortran/29373
* gfortran.dg/implicit_9.f90: New test.
PR fortran/29407
* gfortran.dg/namelist_25.f90: New test.
PR fortran/27701
* gfortran.dg/same_name_2.f90: New test.
PR fortran/29232
* gfortran.dg/host_assoc_types_1.f90: New test.
PR fortran/29364
* gfortran.dg/missing_derived_type_1.f90: New test.
* gfortran.dg/implicit_actual.f90: Comment out USE GLOBAL.
PR fortran/29422
* gfortran.dg/alloc_comp_constraint_4.f90: New test.
PR fortran/29428
* gfortran.dg/alloc_comp_assign_5.f90: New test.
From-SVN: r117692
* intrinsic.c (add_sym_0s, add_sym_1s, add_sym_2s, add_sym_3s,
add_sym_4s, add_sym_5s, add_functions): Use macro ACTUAL_NO,
ACTUAL_YES, NOT_ELEMENTAL and ELEMENTAL instead of constants
0 and 1 as second and third arguments to add_sym* functions.
From-SVN: r117569
2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/20541
* interface.c (gfc_compare_derived_types): Add comparison of
the allocatable field.
* intrinsic.c (add_subroutines): Add MOVE_ALLOC.
* trans-expr.c (gfc_conv_aliased_arg, gfc_trans_subarray_assign,
gfc_trans_subcomponent_assign, gfc_conv_string_parameter,
gfc_trans_scalar_assign): Add extra arguments l_is_temp
and r_is_var to references to latter function.
(gfc_conv_function_call): Add enum for types of argument and
an associated variable parm_kind. Deallocate components of
INTENT(OUT) and non-variable arrays.
(gfc_trans_subcomponent_assign): Add block to assign arrays
to allocatable components.
(gfc_trans_scalar_assign): Add block to handle assignments of
derived types with allocatable components, using the above new
arguments to control allocation/deallocation of memory and the
copying of allocated arrays.
* trans-array.c (gfc_array_allocate): Remove old identification
of pointer and replace with that of an allocatable array. Add
nullify of structures with allocatable components.
(gfc_conv_array_initializer): Treat EXPR_NULL.
(gfc_conv_array_parameter): Deallocate allocatable components
of non-variable structures.
(gfc_trans_dealloc_allocated): Use second argument of library
deallocate to inhibit, without error, freeing NULL pointers.
(get_full_array_size): New function to return the size of a
full array.
(gfc_duplicate_allocatable): New function to allocate and copy
allocated data.
(structure_alloc_comps): New recursive function to deallocate,
nullify or copy allocatable components.
(gfc_nullify_alloc_comp, gfc_deallocate_alloc_comp,
gfc_copy_alloc_comp): New interface functions to call previous.
(gfc_trans_deferred_array): Add the code to nullify allocatable
components, when entering scope, and to deallocate them on
leaving. Do not call gfc_trans_static_array_pointer and return
for structures with allocatable components and default
initializers.
* symbol.c (gfc_set_component_attr): Set allocatable field.
(gfc_get_component_attr): Set the allocatable attribute.
* intrinsic.h : Prototype for gfc_check_move_alloc.
* decl.c (build_struct): Apply TR15581 constraints for
allocatable components.
(variable_decl): Default initializer is always NULL for
allocatable components.
(match_attr_spec): Allow, or not, allocatable components,
according to the standard in force.
* trans-array.h : Prototypes for gfc_nullify_alloc_comp,
gfc_deallocate_alloc_comp, gfc_copy_alloc_comp and
gfc_duplicate_allocatable.
* gfortran.texi : Add mention of TR15581 extensions.
* gfortran.h : Add attribute alloc_comp, add
gfc_components field allocatable and add the prototype
for gfc_expr_to_initialize.
* trans-stmt.c (generate_loop_for_temp_to_lhs,
generate_loop_for_rhs_to_temp, gfc_trans_where_assign,
gfc_trans_where_3): Add extra arguments to calls to
gfc_trans_scalar_assign and set appropriately.
(gfc_trans_allocate): Nullify allocatable components.
(gfc_trans_deallocate): Deallocate to ultimate allocatable
components but stop at ultimate pointer components.
* module.c (mio_symbol_attribute, mio_symbol_attribute,
mio_component): Add module support for allocatable
components.
* trans-types.c (gfc_get_derived_type): Treat allocatable
components.
* trans.h : Add two boolean arguments to
gfc_trans_scalar_assign.
* resolve.c (resolve_structure_cons): Check conformance of
constructor element and the component.
(resolve_allocate_expr): Add expression to nullify the
constructor expression for allocatable components.
(resolve_transfer): Inhibit I/O of derived types with
allocatable components.
(resolve_fl_derived): Skip check of bounds of allocatable
components.
* trans-decl.c (gfc_get_symbol_decl): Add derived types
with allocatable components to deferred variable.
(gfc_trans_deferred_vars): Make calls for derived types
with allocatable components to gfc_trans_deferred_array.
(gfc_generate_function_code): Nullify allocatable
component function result on entry.
* parse.c (parse_derived): Set symbol attr.allocatable if
allocatable components are present.
* check.c (gfc_check_allocated): Enforce attr.allocatable
for intrinsic arguments.
(gfc_check_move_alloc): Check arguments of move_alloc.
* primary.c (gfc_variable_attr): Set allocatable attribute.
* intrinsic.texi : Add index entry and section for
for move_alloc.
PR fortran/29115
* resolve.c (resolve_structure_cons): It is an error if the
pointer component elements of a derived type constructor are
not pointer or target.
PR fortran/29211
* trans-stmt.c (generate_loop_for_temp_to_lhs,
generate_loop_for_rhs_to_temp): Provide a string length for
the temporary by copying that of the other side of the scalar
assignment.
2006-10-05 Paul Thomas <pault@gcc.gnu.org>
Erik Edelmann <edelmann@gcc.gnu.org>
PR libgfortran/20541
* Makefile.in : Add move_alloc.
* intrinsics/move_alloc.c: New function.
* Makefile.am : Add move_alloc.
2006-10-05 Erik Edelmann <edelmann@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/20541
* gfortran.dg/alloc_comp_basics_1.f90: New test.
* gfortran.dg/alloc_comp_basics_2.f90: New test.
* gfortran.dg/alloc_comp_assign_1.f90: New test.
* gfortran.dg/alloc_comp_assign_2.f90: New test.
* gfortran.dg/alloc_comp_assign_3.f90: New test.
* gfortran.dg/alloc_comp_assign_4.f90: New test.
* gfortran.dg/alloc_comp_constraint_1.f90: New test.
* gfortran.dg/alloc_comp_constraint_2.f90: New test.
* gfortran.dg/alloc_comp_constraint_3.f90: New test.
* gfortran.dg/alloc_comp_constructor_1.f90: New test.
* gfortran.dg/alloc_comp_constructor_2.f90: New test.
* gfortran.dg/alloc_comp_initializer_1.f90: New test.
* gfortran.dg/alloc_comp_std.f90: New test.
* gfortran.dg/move_alloc.f90: New test.
PR fortran/29115
* gfortran.dg/derived_constructor_comps_2.f90: New test.
PR fortran/29211
* gfortran.dg/forall_char_dependencies_1.f90: New test.
From-SVN: r117558