2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / 991228-1.c
blobc6fe78e7dadbc6a19309e8c6ac7283484d11a115
1 __extension__ union { double d; int i[2]; } u = { d: -0.25 };
3 /* This assumes the endianness of words in a long long is the same as
4 that for doubles, which doesn't hold for a few platforms, but we
5 can probably special case them here, as appropriate. */
6 long long endianness_test = 1;
7 #define MSW (*(int*)&endianness_test)
9 int
10 signbit(double x)
12 __extension__ union { double d; int i[2]; } u = { d: x };
13 return u.i[MSW] < 0;
16 int main(void)
18 if (2*sizeof(int) != sizeof(double) || u.i[MSW] >= 0)
19 exit(0);
21 if (!signbit(-0.25))
22 abort();
24 exit(0);