aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJerry DeLisle <jvdelisle@gcc.gnu.org>2007-11-18 20:59:41 +0000
committerJerry DeLisle <jvdelisle@gcc.gnu.org>2007-11-18 20:59:41 +0000
commita03890ea9d7d79ff93e5be4afc17df782535cf90 (patch)
tree9d947f8caea570b53a87193e00c6e1b13fba5ef7 /gcc
parent33717d596b7b976fbdc0ed47788200aee0085a75 (diff)
downloadgcc-a03890ea9d7d79ff93e5be4afc17df782535cf90.zip
gcc-a03890ea9d7d79ff93e5be4afc17df782535cf90.tar.gz
gcc-a03890ea9d7d79ff93e5be4afc17df782535cf90.tar.bz2
re PR fortran/33317 (CSHIFT/EOSHIFT: Rejects optional dummy for DIM=)
2007-11-18 Jerry DeLisle <jvdelisle@gcc.gnu.org> PR fortran/33317 * gfortran.dg/optional_dim_2.f90: New test. PR fortran/34139 * gfortran.dg/subref_array_pointer_2.f90: Update test condition. From-SVN: r130277
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog8
-rw-r--r--gcc/testsuite/gfortran.dg/optional_dim_2.f9024
-rw-r--r--gcc/testsuite/gfortran.dg/subref_array_pointer_2.f902
3 files changed, 33 insertions, 1 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index cf4759f..d25d611 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-18 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR fortran/33317
+ * gfortran.dg/optional_dim_2.f90: New test.
+
+ PR fortran/34139
+ * gfortran.dg/subref_array_pointer_2.f90: Update test condition.
+
2007-11-18 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/34132
diff --git a/gcc/testsuite/gfortran.dg/optional_dim_2.f90 b/gcc/testsuite/gfortran.dg/optional_dim_2.f90
new file mode 100644
index 0000000..a1ab4c7
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/optional_dim_2.f90
@@ -0,0 +1,24 @@
+! { dg-do run }
+! PR33317 CSHIFT/EOSHIFT: Rejects optional dummy for DIM=
+! Test case submitted by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+program test
+ implicit none
+ call sub(bound=(/.false.,.true.,.true.,.true./), dimmy=1_8)
+ call sub()
+contains
+ subroutine sub(bound, dimmy)
+ integer(kind=8), optional :: dimmy
+ logical, optional :: bound(4)
+ logical :: lotto(4)
+ character(20) :: testbuf
+ lotto = .false.
+ lotto = cshift((/.true.,.false.,.true.,.false./),1,dim=dimmy)
+ write(testbuf,*) lotto
+ if (trim(testbuf).ne." F T F T") call abort
+ lotto = .false.
+ lotto = eoshift((/.true.,.true.,.true.,.true./),1,boundary=bound,dim=dimmy)
+ lotto = eoshift(lotto,1,dim=dimmy)
+ write(testbuf,*) lotto
+ if (trim(testbuf).ne." T T F F") print *, testbuf
+ end subroutine
+end program test
diff --git a/gcc/testsuite/gfortran.dg/subref_array_pointer_2.f90 b/gcc/testsuite/gfortran.dg/subref_array_pointer_2.f90
index 97aabf1..e96d755 100644
--- a/gcc/testsuite/gfortran.dg/subref_array_pointer_2.f90
+++ b/gcc/testsuite/gfortran.dg/subref_array_pointer_2.f90
@@ -81,7 +81,7 @@
tar3%t => tar1
ptr3 => tar3%t%r
ptr3 = cos (ptr3)
- if (any (ptr3 .ne. (/cos(1.0_4), cos(3.0_4)/))) call abort ()
+ if (any (abs(ptr3 - (/cos(1.0_4), cos(3.0_4)/)) >= epsilon(1.0_4))) call abort ()
ptr2 => tar3%t(:)%chr(2:3)
ptr2 = " x"