Remove check for Android in Mips.cpp (#123793)
[llvm-project.git] / flang / test / Semantics / cuf10.cuf
blobf85471855ec57e289cc4d4e26004c7cf55e6adbd
1 ! RUN: %python %S/test_errors.py %s %flang_fc1 -fopenacc
2 module m
3   real, device :: a(4,8)
4   real, managed, allocatable :: b(:,:)
5   integer, constant :: x = 1
6   type :: int
7      real :: i, s 
8   end type int
9   interface operator (+)
10      module procedure addHost
11      module procedure addDevice
12   end interface operator (+)
13  contains
14   attributes(global) subroutine kernel(a,b,c,n,m)
15     integer, value :: n
16     integer, intent(in) :: m
17     real a(n,m), c(n,m)
18     real, managed :: b(n,m)
19   end
20   attributes(device) subroutine devsub(a,n)
21     integer, value :: n
22     real, device :: a(n)
23   end
24   subroutine test
25     real c(4)
26     allocate(b(4,8))
27     !ERROR: dummy argument 'm=' has ATTRIBUTES(DEVICE) but its associated actual argument has no CUDA data attribute
28     call kernel<<<1,32>>>(a,b,b,4,8)
29     !$acc parallel loop copy(c)
30     do j = 1, 1
31       call devsub(c,4) ! not checked in OpenACC construct
32     end do
33   end
34   attributes(global) subroutine sub1(x)
35     integer :: x
36   end
37   subroutine sub2()
38     call sub1<<<1,1>>>(x) ! actual constant to device dummy
39   end
40   function addHost(a, b) result(c)
41     type(int), intent(in) :: a, b
42     type(int) :: c
43   end function addHost
44   attributes(device) function addDevice(a, b) result(c)
45     type(int), device :: c
46     type(int), intent(in) :: a ,b
47   end function addDevice
48   attributes(global) subroutine overload(c, a, b)
49     type (int) :: c, a, b
50     c = a+b ! ok resolve to addDevice
51   end subroutine overload
52 end