PR inline-asm/84742
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / map-1.f90
blobe78b56c8f392fef6ffc9be50cb56aa92a241b097
1 subroutine test(aas)
2 implicit none
4 integer :: i, j(10), k(10, 10), aas(*)
5 integer, save :: tp
6 !$omp threadprivate(tp)
7 integer, parameter :: p = 1
9 type t
10 integer :: i, j(10)
11 end type t
13 type(t) :: tt
15 !$omp target map(i)
16 !$omp end target
18 !$omp target map(j)
19 !$omp end target
21 !$omp target map(p) ! { dg-error "Object 'p' is not a variable" }
22 !$omp end target
24 !$omp target map(j(1))
25 !$omp end target
27 !$omp target map(j(i))
28 !$omp end target
30 !$omp target map(j(i:))
31 !$omp end target
33 !$omp target map(j(:i))
34 !$omp end target
36 !$omp target map(j(i:i+1))
37 !$omp end target
39 !$omp target map(j(11)) ! { dg-warning "out of bounds" }
40 !$omp end target
42 !$omp target map(j(:11)) ! { dg-warning "out of bounds" }
43 !$omp end target
45 !$omp target map(j(0:)) ! { dg-warning "out of bounds" }
46 !$omp end target
48 !$omp target map(j(5:4))
49 !$omp end target
51 !$omp target map(j(5:))
52 !$omp end target
54 !$omp target map(j(:5))
55 !$omp end target
57 !$omp target map(j(:))
58 !$omp end target
60 !$omp target map(j(1:9:2)) ! { dg-error "Stride should not be specified for array section in MAP clause" }
61 !$omp end target
63 !$omp target map(aas(5:))
64 !$omp end target
65 ! { dg-error "Rightmost upper bound of assumed size array section not specified" "" { target *-*-* } 63 }
66 ! { dg-error "'aas' in MAP clause at \\\(1\\\) is not a proper array section" "" { target *-*-* } 63 }
68 !$omp target map(aas(:))
69 !$omp end target
70 ! { dg-error "Rightmost upper bound of assumed size array section not specified" "" { target *-*-* } 68 }
71 ! { dg-error "'aas' in MAP clause at \\\(1\\\) is not a proper array section" "" { target *-*-* } 68 }
73 !$omp target map(aas) ! { dg-error "Assumed size array" }
74 !$omp end target
76 !$omp target map(aas(5:7))
77 !$omp end target
79 !$omp target map(aas(:7))
80 !$omp end target
82 !$omp target map(k(5:))
83 !$omp end target
84 ! { dg-error "Rank mismatch in array reference" "" { target *-*-* } 82 }
85 ! { dg-error "'k' in MAP clause at \\\(1\\\) is not a proper array section" "" { target *-*-* } 82 }
87 !$omp target map(k(5:,:,3))
88 !$omp end target
89 ! { dg-error "Rank mismatch in array reference" "" { target *-*-* } 87 }
90 ! { dg-error "'k' in MAP clause at \\\(1\\\) is not a proper array section" "" { target *-*-* } 87 }
92 !$omp target map(tt)
93 !$omp end target
95 !$omp target map(tt%i) ! { dg-error "Syntax error in OpenMP variable list" }
96 !$omp end target ! { dg-error "Unexpected !\\\$OMP END TARGET statement" }
98 !$omp target map(tt%j) ! { dg-error "Syntax error in OpenMP variable list" }
99 !$omp end target ! { dg-error "Unexpected !\\\$OMP END TARGET statement" }
101 ! broken test
102 !$omp target map(tt%j(1)) ! { dg-error "Syntax error in OpenMP variable list" }
103 !$omp end target ! { dg-error "Unexpected !\\\$OMP END TARGET statement" }
105 !$omp target map(tt%j(1:)) ! { dg-error "Syntax error in OpenMP variable list" }
106 !$omp end target ! { dg-error "Unexpected !\\\$OMP END TARGET statement" }
108 !$omp target map(tp) ! { dg-error "THREADPRIVATE object 'tp' in MAP clause" }
109 !$omp end target
110 end subroutine test