fix pr/45972
[official-gcc.git] / gcc / testsuite / gfortran.dg / PR19754_2.f90
blob9b71bd02ba00cf6d545b45b890433e9bd5274d8a
1 ! { dg-do run }
2 ! Test of Steve Kargl's fix to PR19754
3 ! This exercises bugs that the original patch caused
5 program PR19754_2
6 real a(2,2), b(2,2),c(2,2),d(2,2)
7 integer i(2,2),j(2,2),k(2,2)
8 a = 1. ; b = 2. ; i = 4
9 c = b - floor( a / b ) ! this caused an ICE
10 d = b - real(floor( a / b ))
11 if (any (c/=d)) call abort ()
12 j = aint(b) - floor( a / b ) ! this caused an ICE
13 if (any(real(j)/=d)) call abort ()
14 c = i
15 if (any(real(i)/=c)) call abort ()
16 c = i + b ! this caused an ICE
17 d = real(i) + b
18 if (any(c/=d)) call abort ()
19 j = i + aint (a)
20 k = i + a ! this caused an ICE
21 if (any(j/=k)) call abort ()
22 end program PR19754_2