47 lines · plain
1! RUN: %python %S/../test_errors.py %s %flang -fopenacc2 3! Check OpenACC clause validity for the following construct and directive:4! 2.10 Cache5 6program openacc_cache_validity7 8 implicit none9 10 type atype11 real(8), dimension(10) :: arr12 real(8) :: s13 end type atype14 15 integer :: i16 integer, parameter :: N = 25617 real(8), dimension(N, N) :: aa18 type(atype) :: t19 type(atype), dimension(10) :: ta20 real(8), dimension(N) :: a21 22 do i = 1, N23 24 !$acc cache(a(i))25 !$acc cache(a(1:2,3:4))26 !$acc cache(a)27 !$acc cache(readonly: a, aa)28 !$acc cache(readonly: a(i), aa(i, i))29 !$acc cache(t%arr)30 !$acc cache(ta(1:2)%arr)31 !$acc cache(ta(1:2)%arr(1:4))32 !$acc cache(i)33 !$acc cache(t%s)34 35 !ERROR: Only array element or subarray are allowed in CACHE directive36 !$acc cache(t)37 38 !ERROR: Only array element or subarray are allowed in CACHE directive39 !$acc cache(/i/)40 41 end do42 43 !ERROR: The CACHE directive must be inside a loop44 !$acc cache(a)45 46end program openacc_cache_validity47