1 /* PR tree-optimization/109008 */
2 /* { dg-do run } */
3 /* { dg-options "-O2 -ffinite-math-only -fexcess-precision=standard" } */
4
5 __attribute__((noipa)) double
6 foo (double eps)
7 {
8 double d = __DBL_MAX__ + eps;
9 if (d == __DBL_MAX__)
10 if (eps > 16.0)
11 return eps;
12 return 0.0;
13 }
14
15 int
16 main ()
17 {
18 #if __DBL_MANT_DIG__ == 53 && __DBL_MAX_EXP__ == 1024 && __DBL_MIN_EXP__ == -1021 \
19 && __FLT_EVAL_METHOD__ == 0
20 if (foo (0x0.8p+970) == 0.0)
21 __builtin_abort ();
22 if (foo (32.0) == 0.0)
23 __builtin_abort ();
24 #endif
25 return 0;
26 }