[Bug fortran/38536] ICE with C_LOC in resolve.c due to not properly going through expr->ref

tkoenig at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Jan 13 20:02:00 GMT 2011


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38536

--- Comment #18 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2011-01-13 19:52:31 UTC ---
(In reply to comment #6)
> An other failure:
> 
>   use iso_c_binding
>   type t1
>           integer :: i(5)
>   end type t1
>   type t2
>           type(t1) :: t(5)
>   end type t2
> 
>   character(len=2),target :: str(2)
>   type(t2), target :: tt
>   type(C_PTR) :: p
>   p = c_loc(tt%t%i(1))
>   end

This is ice-on-invalid (I asked on comp.lang.fortran) because tt%t is an array
section, which is not interoperable.

We just have to check for array sections along the references, and error out if
there are any.



More information about the Gcc-bugs mailing list