diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/execute/990413-2.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/execute/990413-2.c | 50 |
1 files changed, 0 insertions, 50 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/990413-2.c b/gcc/testsuite/gcc.c-torture/execute/990413-2.c deleted file mode 100644 index 262140a3fe5..00000000000 --- a/gcc/testsuite/gcc.c-torture/execute/990413-2.c +++ /dev/null @@ -1,50 +0,0 @@ -/* This tests for a bug in regstack that was breaking glibc's math library. */ - -extern void abort (void); - -static __inline double -minus_zero (void) -{ - union { double __d; int __i[2]; } __x; - __x.__i[0] = 0x0; - __x.__i[1] = 0x80000000; - return __x.__d; -} - -static __inline long double -__atan2l (long double __y, long double __x) -{ - register long double __value; - __asm __volatile__ ("fpatan\n\t" - : "=t" (__value) - : "0" (__x), "u" (__y) - : "st(1)"); - return __value; -} - -static __inline long double -__sqrtl (long double __x) -{ - register long double __result; - __asm __volatile__ ("fsqrt" : "=t" (__result) : "0" (__x)); - return __result; -} - -static __inline double -asin (double __x) -{ - return __atan2l (__x, __sqrtl (1.0 - __x * __x)); -} - -int -main (void) -{ - double x; - - x = minus_zero(); - x = asin (x); - - if (x != 0.0) /* actually -0.0, but 0.0 == -0.0 */ - abort (); - return 0; -} |