aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f90
diff options
context:
space:
mode:
authorBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
committerBen Cheng <bccheng@google.com>2014-03-25 22:37:19 -0700
commit1bc5aee63eb72b341f506ad058502cd0361f0d10 (patch)
treec607e8252f3405424ff15bc2d00aa38dadbb2518 /gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f90
parent283a0bf58fcf333c58a2a92c3ebbc41fb9eb1fdb (diff)
downloadtoolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.gz
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.tar.bz2
toolchain_gcc-1bc5aee63eb72b341f506ad058502cd0361f0d10.zip
Initial checkin of GCC 4.9.0 from trunk (r208799).
Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f90')
-rw-r--r--gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f9068
1 files changed, 68 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f90
new file mode 100644
index 000000000..87ace6848
--- /dev/null
+++ b/gcc-4.9/gcc/testsuite/gfortran.dg/cray_pointers_1.f90
@@ -0,0 +1,68 @@
+! { dg-do compile }
+! { dg-options "-fcray-pointer" }
+
+! Bad type for pointer
+subroutine err1
+ real ipt
+ real array(10)
+ pointer (ipt, array) ! { dg-error "integer" }
+end subroutine err1
+
+! Multiple declarations for the same pointee
+subroutine err2
+ real array(10)
+ pointer (ipt1, array)
+ pointer (ipt2, array) ! { dg-error "multiple" }
+end subroutine err2
+
+! Vector assignment to an assumed size array
+subroutine err3
+ real target(10)
+ real array(*)
+ pointer (ipt, array)
+ ipt = loc (target)
+ array = 0 ! { dg-error "upper bound in the last dimension" }
+end subroutine err3
+
+subroutine err4
+ pointer (ipt, ipt) ! { dg-error "POINTER attribute" }
+end subroutine err4
+
+! duplicate array specs
+subroutine err5
+ pointer (ipt, array(7))
+ real array(10) ! { dg-error "Duplicate array" }
+end subroutine err5
+
+subroutine err6
+ real array(10)
+ pointer (ipt, array(7)) ! { dg-error "Duplicate array" }
+end subroutine err6
+
+! parsing stuff
+subroutine err7
+ pointer ( ! { dg-error "variable name" }
+ pointer (ipt ! { dg-error "Expected" }
+ pointer (ipt, ! { dg-error "variable name" }
+ pointer (ipt,a1 ! { dg-error "Expected" }
+ pointer (ipt,a2), ! { dg-error "Expected" }
+ pointer (ipt,a3),( ! { dg-error "variable name" }
+ pointer (ipt,a4),(ipt2 ! { dg-error "Expected" }
+ pointer (ipt,a5),(ipt2, ! { dg-error "variable name" }
+ pointer (ipt,a6),(ipt2,a7 ! { dg-error "Expected" }
+end subroutine err7
+
+! more attributes
+subroutine err8(array)
+ real array(10)
+ integer dim(2)
+ integer, pointer :: f90ptr
+ integer, target :: f90targ
+ pointer (ipt, array) ! { dg-error "DUMMY" }
+ pointer (dim, elt1) ! { dg-error "DIMENSION" }
+ pointer (f90ptr, elt2) ! { dg-error "POINTER" }
+ pointer (ipt, f90ptr) ! { dg-error "POINTER" }
+ pointer (f90targ, elt3) ! { dg-error "TARGET" }
+ pointer (ipt, f90targ) ! { dg-error "TARGET" }
+end subroutine err8
+