1! Check for <var>%re, ...%im, ...%kind, ...%len 2! Cf. also OpenMP's ../gomp/ref_inquiry.f90 3! Cf. OpenACC spec issue 346 4! 5implicit none 6type t 7 integer :: i 8 character :: c 9 complex :: z 10 complex :: zz(5) 11end type t 12 13integer :: i 14character(kind=4, len=5) :: c 15complex :: z, zz(5) 16type(t) :: x 17 18print *, is_contiguous(zz(:)%re) 19 20! inquiry function; expr_type != EXPR_VARIABLE: 21!$acc enter data copyin(i%kind, c%len) ! { dg-error "not a proper array section" } 22!$acc enter data copyin(x%i%kind) ! { dg-error "not a proper array section" } 23!$acc enter data copyin(x%c%len) ! { dg-error "not a proper array section" } 24!$acc update self(i%kind, c%len) ! { dg-error "not a proper array section" } 25!$acc update self(x%i%kind) ! { dg-error "not a proper array section" } 26!$acc update self(x%c%len) ! { dg-error "not a proper array section" } 27 28! EXPR_VARIABLE 29!$acc enter data copyin(z%re) ! { dg-error "Unexpected complex-parts designator" } 30!$acc enter data copyin(z%im) ! { dg-error "Unexpected complex-parts designator" } 31!$acc enter data copyin(zz%re) ! { dg-error "not a proper array section" } 32!$acc enter data copyin(zz%im) ! { dg-error "not a proper array section" } 33 34!$acc enter data copyin(x%z%re) ! { dg-error "Unexpected complex-parts designator" } 35!$acc enter data copyin(x%z%im) ! { dg-error "Unexpected complex-parts designator" } 36!$acc enter data copyin(x%zz%re) ! { dg-error "not a proper array section" } 37!$acc enter data copyin(x%zz%im) ! { dg-error "not a proper array section" } 38 39!$acc update self(z%re) ! { dg-error "Unexpected complex-parts designator" } 40!$acc update self(z%im) ! { dg-error "Unexpected complex-parts designator" } 41!$acc update self(zz%re) ! { dg-error "not a proper array section" } 42!$acc update self(zz%im) ! { dg-error "not a proper array section" } 43 44!$acc update self(x%z%re) ! { dg-error "Unexpected complex-parts designator" } 45!$acc update self(x%z%im) ! { dg-error "Unexpected complex-parts designator" } 46!$acc update self(x%zz%re) ! { dg-error "is not a proper array section" } 47!$acc update self(x%zz%im) ! { dg-error "is not a proper array section" } 48end 49