/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-evrp" } */ #include void link_error(); void test1 (double x) { if (x < __DBL_MAX__ && x > __DBL_MIN__ && !__builtin_isnormal (x)) link_error (); if (x < -__DBL_MIN__ && x > -__DBL_MAX__ && !__builtin_isnormal (x)) link_error (); } void test2 (float x) { if (x < __FLT_MAX__ && x > __FLT_MIN__ && !__builtin_isnormal (x)) link_error (); if (x < -__FLT_MIN__ && x > - __FLT_MAX__ && !__builtin_isnormal (x)) link_error (); } void test3 (double x) { if (__builtin_isnormal (x) && __builtin_isinf (x)) link_error (); } void test4 (float x) { if (__builtin_isnormal (x) && __builtin_isinf (x)) link_error (); } /* { dg-final { scan-tree-dump-not "link_error" "evrp" } } */