1 /* Excess precision tests. Verify excess precision doesn't affect 2 actual types. */ 3 /* { dg-do compile } */ 4 /* { dg-options "-mfpmath=387 -fexcess-precision=standard" } */ 5 6 float f; 7 double d; 8 9 void test_types(void)10test_types (void) 11 { 12 float *fp; 13 double *dp; 14 #define CHECK_FLOAT(E) fp = &(typeof(E)){0} 15 #define CHECK_DOUBLE(E) dp = &(typeof(E)){0} 16 CHECK_FLOAT (f + f); 17 CHECK_DOUBLE (d + d); 18 CHECK_FLOAT (f * f / f); 19 CHECK_DOUBLE (d * d / d); 20 CHECK_FLOAT (f ? f - f : f); 21 CHECK_DOUBLE (d ? d - d : d); 22 } 23