OSDN Git Service

2007-12-21 Jerry DeLisle <jvdelisle@gcc.gnu.org>
authorjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Dec 2007 01:59:56 +0000 (01:59 +0000)
committerjvdelisle <jvdelisle@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 22 Dec 2007 01:59:56 +0000 (01:59 +0000)
PR fortran/34540
* gfortran.dg/shift-kind_2.f90: New test.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@131134 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gfortran.dg/shift-kind_2.f90 [new file with mode: 0644]

index 6d6855f..5bc4828 100644 (file)
@@ -1,3 +1,8 @@
+2007-12-21  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+
+       PR fortran/34540
+       * gfortran.dg/shift-kind_2.f90: New test.
+
 2007-12-21  Kazu Hirata  <kazu@codesourcery.com>
 
        PR target/8835
diff --git a/gcc/testsuite/gfortran.dg/shift-kind_2.f90 b/gcc/testsuite/gfortran.dg/shift-kind_2.f90
new file mode 100644 (file)
index 0000000..30e3263
--- /dev/null
@@ -0,0 +1,32 @@
+! { dg-do run }
+! PR34540 cshift, eoshift, kind=1 and kind=2 arguments...
+program main
+  integer(kind=1) :: d1
+  integer(kind=2) :: d2
+  integer(kind=4) :: d4
+  integer(kind=8) :: d8
+  integer(kind=1), dimension(2) :: s1
+  integer(kind=2), dimension(2) :: s2
+  integer(kind=4), dimension(2) :: s4
+  integer(kind=8), dimension(2) :: s8
+  real, dimension(2,2) :: r, r1, r2
+  data r /1.0, 2.0, 3.0, 4.0/
+  data r1 /2.0, 0.0, 4.0, 0.0/
+  data r2 /2.0, 1.0, 4.0, 3.0/
+  s1 = (/1, 1/)
+  s2 = (/1, 1/)
+  s4 = (/1, 1/)
+  s8 = (/1, 1/)
+  d1 = 1
+  d2 = 1
+  d4 = 1
+  d8 = 1
+  if (any(eoshift(r,shift=s1,dim=d1) /= r1)) call abort
+  if (any(eoshift(r,shift=s2,dim=d2) /= r1)) call abort
+  if (any(eoshift(r,shift=s4,dim=d4) /= r1)) call abort
+  if (any(eoshift(r,shift=s8,dim=d8) /= r1)) call abort
+  if (any(cshift(r,shift=s1,dim=d1) /= r2)) call abort
+  if (any(cshift(r,shift=s2,dim=d2) /= r2)) call abort
+  if (any(cshift(r,shift=s4,dim=d4) /= r2)) call abort
+  if (any(cshift(r,shift=s8,dim=d8) /= r2)) call abort
+end program main