The following is non-standard and the compiler should probably generate a warning/error with '-pedantic -std=f95' MODULE TT CONTAINS ELEMENTAL INTEGER FUNCTION two(N) INTEGER, INTENT(IN) :: N two=2**N END FUNCTION END MODULE USE TT INTEGER, EXTERNAL :: SUB write(6,*) SUB(two) ! 12.4 END INTEGER FUNCTION SUB(XX) INTEGER :: XX SUB=XX() END
"A non-intrinsic elemental procedure shall not be used as dummy argument"
Subject: Bug 20871 Author: pault Date: Mon Feb 13 21:22:55 2006 New Revision: 110926 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110926 Log: 2006-02-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/26074 PR fortran/25103 * resolve.c (resolve_symbol): Extend the requirement that module arrays have constant bounds to those in the main program. At the same time simplify the array bounds, to avoiding trapping parameter array references, and exclude automatic character length from main and modules. Rearrange resolve_symbol and resolve_derived to put as each flavor together, as much as is possible and move all specific code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new functions. (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure): New functions to do work of resolve_symbol. (resolve_index_expr): New function that is called from resolved_symbol and is extracted from resolve_charlen. (resolve_charlen): Call this new function. (resolve_fl_derived): Renamed resolve_derived to be consistent with the naming of the new functions for the other flavours. Change the charlen checking so that the style is consistent with other similar checks. Add the generation of the gfc_dt_list, removed from resolve_ symbol. PR fortran/20861 * resolve.c (resolve_actual_arglist): Prevent internal procedures from being dummy arguments. PR fortran/20871 * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic procedures from being dummy arguments. PR fortran/25083 * resolve.c (check_data_variable): Add test that data variable is in COMMON. PR fortran/25088 * resolve.c (resolve_call): Add test that the subroutine does not have a type. 2006-02-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/26074 PR fortran/25103 * gfortran.dg/module_parameter_array_refs_1.f90: New test. * gfortran.dg/bad_automatic_objects_1.f90: New test. * gfortran.dg/automatic_module_variable.f90: Change error message. PR fortran/20861 * gfortran.dg/internal_dummy_1.f90: New test. PR fortran/20871 * gfortran.dg/elemental_non_intrinsic_dummy_1.f90: New test. PR fortran/25083 * gfortran.dg/uncommon_block_data_1.f90: New test. * gfortran.dg/equiv_constraint_7.f90: Correct non-compliance of test with standard. PR fortran/25088 * gfortran.dg/typed_subroutine_1.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/bad_automatic_objects_1.f90 trunk/gcc/testsuite/gfortran.dg/elemental_non_intrinsic_dummy_1.f90 trunk/gcc/testsuite/gfortran.dg/internal_dummy_1.f90 trunk/gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90 trunk/gcc/testsuite/gfortran.dg/typed_subroutine_1.f90 trunk/gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gfortran.dg/automatic_module_variable.f90 trunk/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90
Subject: Bug 20871 Author: pault Date: Mon Feb 13 21:35:09 2006 New Revision: 110930 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110930 Log: 2006-02-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/26074 PR fortran/25103 * resolve.c (resolve_symbol): Extend the requirement that module arrays have constant bounds to those in the main program. At the same time simplify the array bounds, to avoiding trapping parameter array references, and exclude automatic character length from main and modules. Rearrange resolve_symbol and resolve_derived to put as each flavor together, as much as is possible and move all specific code for flavors FL_VARIABLE, FL_PROCEDURE and FL_PARAMETER into new functions. (resolve_fl_var_and_proc, resolve_fl_variable, resolve_fl_procedure): New functions to do work of resolve_symbol. (resolve_index_expr): New function that is called from resolved_symbol and is extracted from resolve_charlen. (resolve_charlen): Call this new function. (resolve_fl_derived): Renamed resolve_derived to be consistent with the naming of the new functions for the other flavours. Change the charlen checking so that the style is consistent with other similar checks. Add the generation of the gfc_dt_list, removed from resolve_ symbol. PR fortran/20861 * resolve.c (resolve_actual_arglist): Prevent internal procedures from being dummy arguments. PR fortran/20871 * resolve.c (resolve_actual_arglist): Prevent pure but non-intrinsic procedures from being dummy arguments. PR fortran/25083 * resolve.c (check_data_variable): Add test that data variable is in COMMON. PR fortran/25088 * resolve.c (resolve_call): Add test that the subroutine does not have a type. 2006-02-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/26074 PR fortran/25103 * gfortran.dg/module_parameter_array_refs_1.f90: New test. * gfortran.dg/bad_automatic_objects_1.f90: New test. * gfortran.dg/automatic_module_variable.f90: Change error message. PR fortran/20861 * gfortran.dg/internal_dummy_1.f90: New test. PR fortran/20871 * gfortran.dg/elemental_non_intrinsic_dummy_1.f90: New test. PR fortran/25083 * gfortran.dg/uncommon_block_data_1.f90: New test. * gfortran.dg/equiv_constraint_7.f90: Correct non-compliance of test with standard. PR fortran/25088 * gfortran.dg/typed_subroutine_1.f90: New test. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/bad_automatic_objects_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/internal_dummy_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/pure_non_intrinsic_dummy_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/typed_subroutine_1.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
Fixed on trunk and 4.1. Paul
Subject: Bug 20871 Author: pault Date: Tue Feb 14 07:18:44 2006 New Revision: 110960 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=110960 Log: 2006-02-13 Paul Thomas <pault@gcc.gnu.org> PR fortran/26074 PR fortran/25103 PR fortran/20861 PR fortran/20871 PR fortran/25083 PR fortran/25088 * resolve.c (resolve): Actually apply the patch below! Modified: branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/automatic_module_variable.f90 branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90