diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/c-c++-common/dfp/signbit-2.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/c-c++-common/dfp/signbit-2.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/c-c++-common/dfp/signbit-2.c b/gcc-4.9/gcc/testsuite/c-c++-common/dfp/signbit-2.c new file mode 100644 index 000000000..5444d8f64 --- /dev/null +++ b/gcc-4.9/gcc/testsuite/c-c++-common/dfp/signbit-2.c @@ -0,0 +1,36 @@ +/* { dg-options "-O1" } */ + +/* Check that the compiler uses builtins for signbit; if not the link + will fail because library functions are in libm. */ +/* See PR51867. + Since GCC uses library call when optimizing for "-O0", this test + case requires at least "-O1" level optimization now. */ + +#include "dfp-dbg.h" + +volatile _Decimal32 sd = 2.3df; +volatile _Decimal64 dd = -4.5dd; +volatile _Decimal128 tf = 5.3dl; +volatile float f = 1.2f; +volatile double d = -7.8; +volatile long double ld = 3.4L; + +EXTERN int signbitf (float); +EXTERN int signbit (double); +EXTERN int signbitl (long double); +EXTERN int signbitd32 (_Decimal32); +EXTERN int signbitd64 (_Decimal64); +EXTERN int signbitd128 (_Decimal128); + +int +main () +{ + if (signbitf (f) != 0) FAILURE + if (signbit (d) == 0) FAILURE + if (signbitl (ld) != 0) FAILURE + if (signbitd32 (sd) != 0) FAILURE + if (signbitd64 (dd) == 0) FAILURE + if (signbitd128 (tf) != 0) FAILURE + + FINISH +} |