From 8c355f427e89acfddf0cf51a993b65e34233d104 Mon Sep 17 00:00:00 2001 From: "Steven G. Kargl" Date: Sat, 5 Mar 2005 22:16:41 +0000 Subject: [PATCH] PR19754_1.f90: New test. * PR19754_1.f90: New test. * PR19754_2.f90: ditto. Co-Authored-By: Paul Thomas From-SVN: r95946 --- gcc/testsuite/ChangeLog | 6 ++++++ gcc/testsuite/gfortran.dg/PR19754_1.f90 | 9 +++++++++ gcc/testsuite/gfortran.dg/PR19754_2.f90 | 22 ++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 gcc/testsuite/gfortran.dg/PR19754_1.f90 create mode 100644 gcc/testsuite/gfortran.dg/PR19754_2.f90 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index fefe239..190883a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2005-03-05 Steven G. Kargl + Paul Thomas + + * PR19754_1.f90: New test. + * PR19754_2.f90: ditto. + 2005-03-06 Kriang Lerdsuwanakij PR c++/19311 diff --git a/gcc/testsuite/gfortran.dg/PR19754_1.f90 b/gcc/testsuite/gfortran.dg/PR19754_1.f90 new file mode 100644 index 0000000..b554d10 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/PR19754_1.f90 @@ -0,0 +1,9 @@ +! { dg-do compile } +! Test of fix to PR19754 +program PR19754_1 + real x(3,3),y(2,2) + x = 1. + y = 2. + x = x + y ! { dg-error "Shapes for operands at" } +end program PR19754_1 + diff --git a/gcc/testsuite/gfortran.dg/PR19754_2.f90 b/gcc/testsuite/gfortran.dg/PR19754_2.f90 new file mode 100644 index 0000000..9b71bd0 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/PR19754_2.f90 @@ -0,0 +1,22 @@ +! { dg-do run } +! Test of Steve Kargl's fix to PR19754 +! This exercises bugs that the original patch caused +! +program PR19754_2 + real a(2,2), b(2,2),c(2,2),d(2,2) + integer i(2,2),j(2,2),k(2,2) + a = 1. ; b = 2. ; i = 4 + c = b - floor( a / b ) ! this caused an ICE + d = b - real(floor( a / b )) + if (any (c/=d)) call abort () + j = aint(b) - floor( a / b ) ! this caused an ICE + if (any(real(j)/=d)) call abort () + c = i + if (any(real(i)/=c)) call abort () + c = i + b ! this caused an ICE + d = real(i) + b + if (any(c/=d)) call abort () + j = i + aint (a) + k = i + a ! this caused an ICE + if (any(j/=k)) call abort () +end program PR19754_2 -- 2.7.4