using GNU Fortran 95 (GCC) 4.1.0 20051126 (prerelease) with '-g -pedantic -std=f95', I get a bad / no diagnostic for the following invalid code: MODULE M1 TYPE T1 INTEGER :: I END TYPE T1 PRIVATE :: T1 PUBLIC :: F1 CONTAINS TYPE(T1) FUNCTION F1() END FUNCTION END MODULE USE M1 END
Confirmed.
Working on a patch.
Subject: Bug 25093 Author: eedelman Date: Sun Jan 8 17:52:57 2006 New Revision: 109474 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109474 Log: fortran/ 2005-01-08 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25093 * resolve.c (resolve_fntype): Check that PUBLIC functions aren't of PRIVATE type. testsuite/ 2005-01-08 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25093 * gfortran.dg/private_type_4.f90: New. Added: trunk/gcc/testsuite/gfortran.dg/private_type_4.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/resolve.c trunk/gcc/testsuite/ChangeLog
Subject: Bug 25093 Author: eedelman Date: Mon Jan 9 16:19:22 2006 New Revision: 109500 URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=109500 Log: fortran/ 2005-01-09 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25093 * resolve.c (resolve_fntype): Check that PUBLIC functions aren't of PRIVATE type. testsuite/ 2005-01-09 Erik Edelmann <eedelman@gcc.gnu.org> PR fortran/25093 * gfortran.dg/private_type_4.f90: New. Added: branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/private_type_4.f90 Modified: branches/gcc-4_1-branch/gcc/fortran/ChangeLog branches/gcc-4_1-branch/gcc/fortran/resolve.c branches/gcc-4_1-branch/gcc/testsuite/ChangeLog
Fixed on 4.1 and mainline.