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)10 test_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