! { dg-do compile } ! { dg-options "-fcoarray=single -std=f2008" } ! PR 38536 - array sections as arguments to c_loc are illegal. use iso_c_binding type, bind(c) :: t1 integer(c_int) :: i(5) end type t1 type, bind(c):: t2 type(t1) :: t(5) end type t2 type, bind(c) :: t3 type(t1) :: t(5,5) end type t3 type(t2), target :: tt type(t3), target :: ttt integer(c_int), target :: n(3) integer(c_int), target :: x[*] type(C_PTR) :: p p = c_loc(tt%t%i(1)) p = c_loc(n(1:2)) ! OK: interop type + contiguous p = c_loc(ttt%t(5,1:2)%i(1)) ! FIXME: Noncontiguous (invalid) - compile-time testable p = c_loc(x[1]) ! { dg-error "shall not be coindexed" } end