Add OpenACC test for sub-references being pointer or allocatable variables
authorJulian Brown <julian@codesourcery.com>
Sat, 4 Jan 2020 01:45:24 +0000 (17:45 -0800)
committerJulian Brown <julian@codesourcery.com>
Tue, 28 Jan 2020 14:00:29 +0000 (06:00 -0800)
gcc/testsuite/
* gfortran.dg/goacc/strided-alloc-ptr.f90: New test.

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/goacc/strided-alloc-ptr.f90 [new file with mode: 0644]

index dfb7a0f..1b9436f 100644 (file)
@@ -1,3 +1,8 @@
+2020-01-28  Tobias Burnus  <tobias@codesourcery.com>
+           Julian Brown  <julian@codesourcery.com>
+
+       * gfortran.dg/goacc/strided-alloc-ptr.f90: New test.
+
 2020-01-28  Richard Biener  <rguenther@suse.de>
 
        PR tree-optimization/93439
diff --git a/gcc/testsuite/gfortran.dg/goacc/strided-alloc-ptr.f90 b/gcc/testsuite/gfortran.dg/goacc/strided-alloc-ptr.f90
new file mode 100644 (file)
index 0000000..755fd1c
--- /dev/null
@@ -0,0 +1,34 @@
+implicit none
+type t
+  integer, allocatable :: i, j(:)
+  integer, pointer :: k, ll(:)
+end type t
+type(t) :: x(2)
+
+!$acc enter data copyin(x)
+
+!$acc enter data copyin(x(:)%i)
+! { dg-error "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute" "" { target "*-*-*" } 10 }
+! { dg-error ".x. in MAP clause at .1. is not a proper array section"  "" { target "*-*-*" } 10 }
+
+!$acc enter data copyin(x(:)%j(3))
+! { dg-error "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute" "" { target "*-*-*" } 14 }
+! { dg-error ".x. in MAP clause at .1. is not a proper array section"  "" { target "*-*-*" } 14 }
+
+!$acc enter data copyin(x(:)%j)
+! { dg-error "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute" "" { target "*-*-*" } 18 }
+! { dg-error ".x. in MAP clause at .1. is not a proper array section"  "" { target "*-*-*" } 18 }
+
+
+!$acc enter data copyin(x(:)%k)
+! { dg-error "Component to the right of a part reference with nonzero rank must not have the POINTER attribute" "" { target "*-*-*" } 23 }
+! { dg-error ".x. in MAP clause at .1. is not a proper array section"  "" { target "*-*-*" } 23 }
+
+!$acc enter data copyin(x(:)%ll(3))
+! { dg-error "Component to the right of a part reference with nonzero rank must not have the POINTER attribute" "" { target "*-*-*" } 27 }
+! { dg-error ".x. in MAP clause at .1. is not a proper array section"  "" { target "*-*-*" } 27 }
+
+!$acc enter data copyin(x(:)%ll)
+! { dg-error "Component to the right of a part reference with nonzero rank must not have the POINTER attribute" "" { target "*-*-*" } 31 }
+! { dg-error ".x. in MAP clause at .1. is not a proper array section"  "" { target "*-*-*" } 31 }
+end