/* Excess precision tests. Verify excess precision doesn't affect | |
actual types. */ | |
/* { dg-do compile } */ | |
/* { dg-options "-mfpmath=387 -fexcess-precision=standard" } */ | |
float f; | |
double d; | |
void | |
test_types (void) | |
{ | |
float *fp; | |
double *dp; | |
#define CHECK_FLOAT(E) fp = &(typeof(E)){0} | |
#define CHECK_DOUBLE(E) dp = &(typeof(E)){0} | |
CHECK_FLOAT (f + f); | |
CHECK_DOUBLE (d + d); | |
CHECK_FLOAT (f * f / f); | |
CHECK_DOUBLE (d * d / d); | |
CHECK_FLOAT (f ? f - f : f); | |
CHECK_DOUBLE (d ? d - d : d); | |
} |