diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/gcc.target/i386/excess-precision-5.c')
-rw-r--r-- | gcc-4.9/gcc/testsuite/gcc.target/i386/excess-precision-5.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/gcc.target/i386/excess-precision-5.c b/gcc-4.9/gcc/testsuite/gcc.target/i386/excess-precision-5.c new file mode 100644 index 000000000..1cc7e589c --- /dev/null +++ b/gcc-4.9/gcc/testsuite/gcc.target/i386/excess-precision-5.c @@ -0,0 +1,22 @@ +/* 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); +} |