[Bug fortran/79485] New: Bind(c) and module procedure renaming causes wrong procedure to be called
vladimir.fuka at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Feb 13 10:22:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79485
Bug ID: 79485
Summary: Bind(c) and module procedure renaming causes wrong
procedure to be called
Product: gcc
Version: 6.3.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: vladimir.fuka at gmail dot com
Target Milestone: ---
Reported at
http://stackoverflow.com/questions/42189625/renaming-a-subroutine-in-a-fortran-module-when-using-iso-c-binding
Related to bug77746 and bug66695.
The following code finishes as expected in gfortran 4.8 and crashes due to
stack overflow in 6.3 (and likely alredy in 4.9) because procedure `foo` in
`fmod2` calls itself ad infinitum.
module fmod1
contains
subroutine foo(i)
implicit none
integer, intent(inout) :: i
i=i+1
end subroutine foo
end module fmod1
module fmod2
use iso_c_binding
use fmod1, only : foo_first => foo
contains
subroutine foo(i) bind(c)
implicit none
integer, intent(inout) :: i
i=i+2
call foo_first(i)
end subroutine foo
end module fmod2
use fmod2
call foo(i)
end
More information about the Gcc-bugs
mailing list