From 1bc5aee63eb72b341f506ad058502cd0361f0d10 Mon Sep 17 00:00:00 2001 From: Ben Cheng Date: Tue, 25 Mar 2014 22:37:19 -0700 Subject: Initial checkin of GCC 4.9.0 from trunk (r208799). Change-Id: I48a3c08bb98542aa215912a75f03c0890e497dba --- gcc-4.9/gcc/testsuite/gfortran.dg/PR19754_2.f90 | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 gcc-4.9/gcc/testsuite/gfortran.dg/PR19754_2.f90 (limited to 'gcc-4.9/gcc/testsuite/gfortran.dg/PR19754_2.f90') diff --git a/gcc-4.9/gcc/testsuite/gfortran.dg/PR19754_2.f90 b/gcc-4.9/gcc/testsuite/gfortran.dg/PR19754_2.f90 new file mode 100644 index 000000000..9b71bd02b --- /dev/null +++ b/gcc-4.9/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 -- cgit v1.2.3