http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38813
Salvatore Filippone <sfilippone at uniroma2 dot it> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |sfilippone at uniroma2 dot | |it --- Comment #6 from Salvatore Filippone <sfilippone at uniroma2 dot it> 2012-01-13 12:44:46 UTC --- Hello, Has this ever been resolved? I still get an ICE with a code that is essentially that of comment 1, i.e. getting the C_LOC of an allocatable component; this is true of 4.6.1 and of current trunk as of today. Interestingly, the following compiles (but I have not tried yet if it works at runtime): module foo_mod type foo_type integer, allocatable :: idx(:) end type foo_type end module foo_mod subroutine bar2(data) use foo_mod use iso_c_binding implicit none type(foo_type), intent(inout), target :: data type(c_ptr) :: cptr call getcptr(cptr,data%idx) contains subroutine getcptr(cp,v) type(c_ptr) :: cp integer, allocatable, target :: v(:) cp = c_loc(v) end subroutine getcptr end subroutine bar2 Thanks a lot Salvatore