This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug fortran/39295] New: [4.2/4.3/4.4 Regression] Too strict interface conformance check
- From: "burnus at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 24 Feb 2009 19:58:04 -0000
- Subject: [Bug fortran/39295] New: [4.2/4.3/4.4 Regression] Too strict interface conformance check
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
Reported by Jon Hurst at http://gcc.gnu.org/ml/fortran/2009-02/msg00152.html
Said to compile with 4.0.3, rejected with 4.1/4.2/4.3/4.4.
Compiles with NAG f95, ifort, g95, sunf95, openf95 and pgf90.
At a glance, it looks valid but I have not checked thoroughly.
Test case by Jon Hurst:
MODULE funcs
CONTAINS
INTEGER FUNCTION test1(a,b,opfunc)
INTEGER :: a,b
INTEGER, EXTERNAL :: opfunc
test1 = opfunc( a, b )
END FUNCTION test1
INTEGER FUNCTION sumInts(a,b)
INTEGER :: a,b
sumInts = a + b
END FUNCTION sumInts
END MODULE funcs
PROGRAM test
USE funcs
INTEGER :: rs
INTEGER, PARAMETER :: a = 2, b = 1
rs = recSum( a, b, test1, sumInts )
write(*,*) "Results", rs
CONTAINS
RECURSIVE INTEGER FUNCTION recSum( a,b,UserFunction,UserOp ) RESULT( res )
IMPLICIT NONE
INTEGER :: a,b
INTERFACE
INTEGER FUNCTION UserFunction(a,b,opfunc)
INTEGER :: a,b
INTEGER, EXTERNAL :: opfunc
END FUNCTION UserFunction
END INTERFACE
INTEGER, EXTERNAL :: UserOp
res = UserFunction( a,b, UserOp )
if( res .lt. 10 ) then
res = recSum( a, res, UserFunction, UserOp )
end if
END FUNCTION recSum
END PROGRAM test
--
Summary: [4.2/4.3/4.4 Regression] Too strict interface
conformance check
Product: gcc
Version: 4.4.0
Status: UNCONFIRMED
Keywords: rejects-valid
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: burnus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39295