I see a strange initialization problem. If I pass some function 'g' as an
argument fo another function 'wrap', I will get a bus error. If I call 'g'
from main before passing it as an argument, the code works correctly. In the
sample code, removing the two commented lines causes the call to 'wrap' to
work; leaving the comments produces the bus error. Sample code:
function wrap(x0, f) result(w)
real(8), intent(in):: x0
real(8):: w
interface
function f(x) result(r)
real(8), intent(in):: x
real(8):: r
end function f
end interface
w = f(x0)
return
end function wrap
function g(y) result(s)
real(8), intent(in):: y
real(8):: s
s = y * y
return
end function g
program m
real(8):: b
!b = g(2.0d00)
!print *, 'g(2.0d00) = ', b
b = wrap(3.0d00, g)
print *, 'wrap(3.0d00, g) = ', b
end program m
--
Summary: dummy procedure problem
Product: gcc
Version: 4.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: danp57 at optonline dot net
GCC build triplet: i?86-mac-darwin
GCC host triplet: i?86-mac-darwin
GCC target triplet: i?86-mac-darwin
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32620