1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
extern void abort (void); double __attribute__ ((noinline)) not_fabs (double x) { return x >= 0.0 ? x : -x; } int main() { double x = -0.0; double y; y = not_fabs (x); if (!__builtin_signbit (y)) abort(); return 0; }