| ! { dg-do run } |
| ! PR fortran/109511 |
| ! Check compile-time simplification of SET_EXPONENT against runtime |
| |
| program exponent |
| implicit none |
| integer :: i |
| i = 0 |
| print *, i, set_exponent(1., 0), set_exponent(1., i) |
| if (set_exponent(1., 0) /= set_exponent(1., i)) stop 1 |
| i = 1 |
| print *, i, set_exponent(1., 1), set_exponent(1., i) |
| if (set_exponent(1., 1) /= set_exponent(1., i)) stop 2 |
| i = 2 |
| print *, i, set_exponent(-1.75, 2), set_exponent(-1.75, i) |
| if (set_exponent(-1.75, 2) /= set_exponent(-1.75, i)) stop 3 |
| print *, i, set_exponent(0.1875, 2), set_exponent(0.1875, i) |
| if (set_exponent(0.1875, 2) /= set_exponent(0.1875, i)) stop 4 |
| i = 3 |
| print *, i, set_exponent(0.75, 3), set_exponent(0.75, i) |
| if (set_exponent(0.75, 3) /= set_exponent(0.75, i)) stop 5 |
| i = 4 |
| print *, i, set_exponent(-2.5, 4), set_exponent(-2.5, i) |
| if (set_exponent(-2.5, 4) /= set_exponent(-2.5, i)) stop 6 |
| i = -1 |
| print *, i, set_exponent(1., -1), set_exponent(1., i) |
| if (set_exponent(1., -1) /= set_exponent(1., i)) stop 7 |
| i = -2 |
| print *, i, set_exponent(1.125, -2), set_exponent(1.125, i) |
| if (set_exponent(1.125, -2) /= set_exponent(1.125, i)) stop 8 |
| print *, i, set_exponent(-0.25, -2), set_exponent(-0.25, i) |
| if (set_exponent(-0.25, -2) /= set_exponent(-0.25, i)) stop 9 |
| i = -3 |
| print *, i, set_exponent(0.75, -3), set_exponent(0.75, i) |
| if (set_exponent(0.75, -3) /= set_exponent(0.75, i)) stop 10 |
| end program exponent |