/* Excess precision tests. Test implicit conversions in comparisons: no excess precision in C99 mode. */ /* { dg-do run } */ /* { dg-options "-std=c99 -mfpmath=387 -fexcess-precision=standard" } */ extern void abort (void); extern void exit (int); int main (void) { float f = 0x1p63f; unsigned long long int u = (1ULL << 63) + 1; if ((f == u) != 1) abort (); if ((u == f) != 1) abort (); if ((f != u) != 0) abort (); if ((u != f) != 0) abort (); if ((f < u) != 0) abort (); if ((u < f) != 0) abort (); if ((f <= u) != 1) abort (); if ((u <= f) != 1) abort (); if ((f > u) != 0) abort (); if ((u > f) != 0) abort (); if ((f >= u) != 1) abort (); if ((u >= f) != 1) abort (); exit (0); }