[Bug fortran/40450] New: [F03] procedure pointer as actual argument
janus at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon Jun 15 18:41:00 GMT 2009
The following program gives a segfault at runtime:
MODULE m
ABSTRACT INTERFACE
SUBROUTINE sub()
END SUBROUTINE sub
END INTERFACE
CONTAINS
SUBROUTINE passf(f)
PROCEDURE(sub), POINTER:: f
CALL callf(f)
END SUBROUTINE passf
SUBROUTINE callf(f)
PROCEDURE(sub), POINTER :: f
PRINT*, 'calling f'
CALL f()
END SUBROUTINE callf
END MODULE m
PROGRAM prog
USE m
PROCEDURE(sub), POINTER :: f
f => s
CALL passf(f)
CONTAINS
SUBROUTINE s
PRINT*, 'sub'
END SUBROUTINE s
END PROGRAM prog
-fdump-tree-original shows that the problem lies in 'passf':
passf (void (*<T63>) (void) * f)
{
callf (&f);
}
--
Summary: [F03] procedure pointer as actual argument
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=40450
More information about the Gcc-bugs
mailing list