1implicit none
2character(len=10) :: str1, str2(5,5)
3
4type t
5  character(len=10) :: str1, str2(5,5)
6end type t
7type(t) :: v
8
9!$acc enter data copyin(v%str1)       ! OK
10!$acc enter data copyin(v%str2)       ! OK
11!$acc enter data copyin(v%str2(1,2))  ! OK
12!$acc enter data copyin(str1)         ! OK
13!$acc enter data copyin(str2)         ! OK
14!$acc enter data copyin(str2(1,2))    ! OK
15
16!$acc enter data copyin(v%str1(2:5))       ! { dg-error "Unexpected substring reference in MAP clause" }
17!$acc enter data copyin(v%str2(1,2)(2:4))  ! { dg-error "Unexpected substring reference in MAP clause" }
18!$acc enter data copyin(str1(2:5))         ! { dg-error "Unexpected substring reference in MAP clause" }
19!$acc enter data copyin(str2(1,2)(2:4))    ! { dg-error "Unexpected substring reference in MAP clause" }
20
21!$acc parallel
22!$acc update host(v%str1(2:5))             ! { dg-error "Unexpected substring reference in MAP clause" }
23!$acc update host(v%str2(1,2)(2:4))        ! { dg-error "Unexpected substring reference in MAP clause" }
24!$acc update host(str1(2:5))               ! { dg-error "Unexpected substring reference in MAP clause" }
25!$acc update host(str2(1,2)(2:4))          ! { dg-error "Unexpected substring reference in MAP clause" }
26!$acc end parallel
27end
28