1! { dg-do run }
2! { dg-additional-options "-ffpe-trap=overflow,invalid" }
3!
4! Use dg-additional-options rather than dg-options to avoid overwriting the
5! default IEEE options which are passed by ieee.exp and necessary.
6program foo
7
8   use ieee_arithmetic
9
10   implicit none
11
12   real x
13   real(8) y
14
15   x = ieee_value(x, ieee_signaling_nan)
16   if (.not. ieee_is_nan(x)) stop 1
17   x = ieee_value(x, ieee_quiet_nan)
18   if (.not. ieee_is_nan(x)) stop 2
19
20   x = ieee_value(x, ieee_positive_inf)
21   if (ieee_is_finite(x)) stop 3
22   x = ieee_value(x, ieee_negative_inf)
23   if (ieee_is_finite(x)) stop 4
24
25   y = ieee_value(y, ieee_signaling_nan)
26   if (.not. ieee_is_nan(y)) stop 5
27   y = ieee_value(y, ieee_quiet_nan)
28   if (.not. ieee_is_nan(y)) stop 6
29
30   y = ieee_value(y, ieee_positive_inf)
31   if (ieee_is_finite(y)) stop 7
32   y = ieee_value(y, ieee_negative_inf)
33   if (ieee_is_finite(y)) stop 8
34
35end program foo
36