The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95' MODULE TEST INTERFACE CALCULATION MODULE PROCEDURE C1,C2 END INTERFACE CONTAINS SUBROUTINE C1(r) INTEGER :: r END SUBROUTINE SUBROUTINE C2(r) REAL :: r END SUBROUTINE END MODULE TEST USE TEST CALL F(CALCULATION) END SUBROUTINE F() END SUBROUTINE
*** Bug 20887 has been marked as a duplicate of this bug. ***
Subject: Bug number PR20886 A patch for this bug has been added to the patch tracker. The mailing list url for the patch is http://gcc.gnu.org/ml/gcc-patches/2006-08/msg00304.html
Subject: Bug 20886 Author: pault Date: Sun Aug 20 05:45:43 2006 New Revision: 116268 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116268 Log: 2006-08-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/28601 PR fortran/28630 * gfortran.h : Eliminate gfc_dt_list structure and reference to it in gfc_namespace. * resolve.c (resolve_fl_derived): Remove the building of the list of derived types for the current namespace. * symbol.c (find_renamed_type): New function to find renamed derived types by symbol name rather than symtree name. (gfc_use_derived): Search parent namespace for identical derived type and use it, even if local version is complete, except in interface bodies. Ensure that renamed derived types are found by call to find_renamed_type. Recurse for derived type components. (gfc_free_dt_list): Remove. (gfc_free_namespace): Remove call to previous. * trans-types.c (copy_dt_decls_ifequal): Remove. (gfc_get_derived_type): Remove all the paraphenalia for association of derived types, including calls to previous. * match.c (gfc_match_allocate): Call gfc_use_derived to associate any derived types that are being allocated. PR fortran/20886 * resolve.c (resolve_actual_arglist): The passing of a generic procedure name as an actual argument is an error. PR fortran/28735 * resolve.c (resolve_variable): Check for a symtree before resolving references. PR fortran/28762 * primary.c (match_variable): Return MATCH_NO if the symbol is that of the program. PR fortran/28425 * trans-expr.c (gfc_trans_subcomponent_assign): Translate derived type component expressions other than another derived type constructor. PR fortran/28496 * expr.c (find_array_section): Correct errors in the handling of a missing start value for the index triplet in an array reference. PR fortran/18111 * trans-decl.c (gfc_build_dummy_array_decl): Before resetting reference to backend_decl, set it DECL_ARTIFICIAL. (gfc_get_symbol_decl): Likewise for original dummy decl, when a copy is made of an array. (create_function_arglist): Likewise for the _entry paramter in entry_masters. (build_entry_thunks): Likewise for dummies in entry thunks. PR fortran/28600 * trans-decl.c (gfc_get_symbol_decl): Ensure that the DECL_CONTEXT of the length of a character dummy is the same as that of the symbol declaration. PR fortran/28771 * decl.c (add_init_expr_to_sym): Remove setting of charlen for an initializer of an assumed charlen variable. PR fortran/28660 * trans-decl.c (generate_expr_decls): New function. (generate_dependency_declarations): New function. (generate_local_decl): Call previous if not either a dummy or a declaration in an entry master. 2006-08-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/28630 * gfortran.dg/used_types_2.f90: New test. PR fortran/28601 * gfortran.dg/used_types_3.f90: New test. PR fortran/20886 * gfortran.dg/generic_actual_arg.f90: New test. PR fortran/28735 * gfortran.dg/module_private_array_refs_1.f90: New test. PR fortran/28762 * gfortran.dg/program_name_1.f90: New test. PR fortran/28425 * gfortran.dg/derived_constructor_comps_1.f90: New test. PR fortran/28496 * gfortran.dg/array_initializer_2.f90: New test. PR fortran/18111 * gfortran.dg/unused_artificial_dummies_1.f90: New test. PR fortran/28600 * gfortran.dg/assumed_charlen_function_4.f90: New test. PR fortran/28771 * gfortran.dg/assumed_charlen_in_main.f90: New test. PR fortran/28660 * gfortran.dg/dependent_decls_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/array_initializer_2.f90 trunk/gcc/testsuite/gfortran.dg/assumed_charlen_function_4.f90 trunk/gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90 trunk/gcc/testsuite/gfortran.dg/dependent_decls_1.f90 trunk/gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90 trunk/gcc/testsuite/gfortran.dg/generic_actual_arg.f90 trunk/gcc/testsuite/gfortran.dg/module_private_array_refs_1.f90 trunk/gcc/testsuite/gfortran.dg/program_name_1.f90 trunk/gcc/testsuite/gfortran.dg/unused_artificial_dummies_1.f90 trunk/gcc/testsuite/gfortran.dg/used_types_2.f90 trunk/gcc/testsuite/gfortran.dg/used_types_3.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/decl.c trunk/gcc/fortran/expr.c trunk/gcc/fortran/gfortran.h trunk/gcc/fortran/match.c trunk/gcc/fortran/primary.c trunk/gcc/fortran/resolve.c trunk/gcc/fortran/symbol.c trunk/gcc/fortran/trans-decl.c trunk/gcc/fortran/trans-expr.c trunk/gcc/fortran/trans-types.c trunk/gcc/testsuite/ChangeLog
Subject: Bug 20886 Author: pault Date: Sun Aug 20 08:20:26 2006 New Revision: 116269 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=116269 Log: 2006-08-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/28601 PR fortran/28630 * gfortran.h : Eliminate gfc_dt_list structure and reference to it in gfc_namespace. * resolve.c (resolve_fl_derived): Remove the building of the list of derived types for the current namespace. * symbol.c (find_renamed_type): New function to find renamed derived types by symbol name rather than symtree name. (gfc_use_derived): Search parent namespace for identical derived type and use it, even if local version is complete, except in interface bodies. Ensure that renamed derived types are found by call to find_renamed_type. Recurse for derived type components. (gfc_free_dt_list): Remove. (gfc_free_namespace): Remove call to previous. * trans-types.c (copy_dt_decls_ifequal): Remove. (gfc_get_derived_type): Remove all the paraphenalia for association of derived types, including calls to previous. * match.c (gfc_match_allocate): Call gfc_use_derived to associate any derived types that are being allocated. PR fortran/20886 * resolve.c (resolve_actual_arglist): The passing of a generic procedure name as an actual argument is an error. PR fortran/28735 * resolve.c (resolve_variable): Check for a symtree before resolving references. PR fortran/28762 * primary.c (match_variable): Return MATCH_NO if the symbol is that of the program. PR fortran/28425 * trans-expr.c (gfc_trans_subcomponent_assign): Translate derived type component expressions other than another derived type constructor. PR fortran/28496 * expr.c (find_array_section): Correct errors in the handling of a missing start value for the index triplet in an array reference. PR fortran/18111 * trans-decl.c (gfc_build_dummy_array_decl): Before resetting reference to backend_decl, set it DECL_ARTIFICIAL. (gfc_get_symbol_decl): Likewise for original dummy decl, when a copy is made of an array. (create_function_arglist): Likewise for the _entry paramter in entry_masters. (build_entry_thunks): Likewise for dummies in entry thunks. PR fortran/28771 * decl.c (add_init_expr_to_sym): Remove setting of charlen for an initializer of an assumed charlen variable. PR fortran/28660 * trans-decl.c (generate_expr_decls): New function. (generate_dependency_declarations): New function. (generate_local_decl): Call previous if not either a dummy or a declaration in an entry master. 2006-08-20 Paul Thomas <pault@gcc.gnu.org> PR fortran/28630 * gfortran.dg/used_types_2.f90: New test. PR fortran/28601 * gfortran.dg/used_types_3.f90: New test. PR fortran/20886 * gfortran.dg/generic_actual_arg.f90: New test. PR fortran/28735 * gfortran.dg/module_private_array_refs_1.f90: New test. PR fortran/28762 * gfortran.dg/program_name_1.f90: New test. PR fortran/28425 * gfortran.dg/derived_constructor_comps_1.f90: New test. PR fortran/28496 * gfortran.dg/array_initializer_2.f90: New test. PR fortran/18111 * gfortran.dg/unused_artificial_dummies_1.f90: New test. PR fortran/28771 * gfortran.dg/assumed_charlen_in_main.f90: New test. PR fortran/28660 * gfortran.dg/dependent_decls_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/array_initializer_2.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/assumed_charlen_in_main.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/dependent_decls_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/derived_constructor_comps_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/generic_actual_arg.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/module_private_array_refs_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/program_name_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/unused_artificial_dummies_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_2.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/used_types_3.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/decl.c branches/gcc-4_1-branch/gcc/fortran/expr.c branches/gcc-4_1-branch/gcc/fortran/gfortran.h branches/gcc-4_1-branch/gcc/fortran/match.c branches/gcc-4_1-branch/gcc/fortran/primary.c branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/fortran/symbol.c branches/gcc-4_1-branch/gcc/fortran/trans-decl.c branches/gcc-4_1-branch/gcc/fortran/trans-expr.c branches/gcc-4_1-branch/gcc/fortran/trans-types.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
Ooops, I forgot to clear this. Paul