PR fortran/79154
[official-gcc.git] / gcc / testsuite / gfortran.dg / gomp / pr79154-2.f90
blob67344f0c028df2db1a29aaa917a9046175426bd7
1 ! PR fortran/79154
2 ! { dg-do compile }
4 pure real function foo (a, b)
5 real, intent(in) :: a, b
6 !$omp taskwait ! { dg-error "may not appear in PURE or ELEMENTAL" }
7 foo = a + b
8 end function foo
9 pure function bar (a, b)
10 real, intent(in) :: a(8), b(8)
11 real :: bar(8)
12 integer :: i
13 !$omp do simd ! { dg-error "may not appear in PURE or ELEMENTAL" }
14 do i = 1, 8
15 bar(i) = a(i) + b(i)
16 end do
17 end function bar
18 pure function baz (a, b)
19 real, intent(in) :: a(8), b(8)
20 real :: baz(8)
21 integer :: i
22 !$omp do ! { dg-error "may not appear in PURE or ELEMENTAL" }
23 do i = 1, 8
24 baz(i) = a(i) + b(i)
25 end do
26 !$omp end do ! { dg-error "may not appear in PURE or ELEMENTAL" }
27 end function baz
28 pure real function baz2 (a, b)
29 real, intent(in) :: a, b
30 !$omp target map(from:baz2) ! { dg-error "may not appear in PURE or ELEMENTAL" }
31 baz2 = a + b
32 !$omp end target ! { dg-error "may not appear in PURE or ELEMENTAL" }
33 end function baz2
34 elemental real function fooe (a, b)
35 real, intent(in) :: a, b
36 !$omp taskyield ! { dg-error "may not appear in PURE or ELEMENTAL" }
37 fooe = a + b
38 end function fooe
39 elemental real function baze (a, b)
40 real, intent(in) :: a, b
41 !$omp target map(from:baz) ! { dg-error "may not appear in PURE or ELEMENTAL" }
42 baze = a + b
43 !$omp end target ! { dg-error "may not appear in PURE or ELEMENTAL" }
44 end function baze