The following program compiles without errors, but gives a segfault at runtime:
PROGRAM test_prog
PROCEDURE(triple), POINTER :: f
! This works
print *,triple(2.,4.)
! This creates a Segmentation Fault
f => triple
print *,f(2.,4.)
CONTAINS
FUNCTION triple(a,b) RESULT(tre)
REAL, INTENT(in) :: a, b
REAL :: tre(2)
tre(1) = 3.*a
tre(2) = 3.*b
END FUNCTION triple
END PROGRAM test_prog
Reported by Barron Bichon.
--
Summary: Fortran 2003: Procedure pointers with array return value
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40176