int __attribute__((noinline,noclone)) | |
copysign_bug (double x) | |
{ | |
if (x != 0.0 && (x * 0.5 == x)) | |
return 1; | |
if (__builtin_copysign(1.0, x) < 0.0) | |
return 2; | |
else | |
return 3; | |
} | |
int main(void) | |
{ | |
double x = -0.0; | |
if (copysign_bug (x) != 2) | |
__builtin_abort (); | |
return 0; | |
} | |