diff options
author | Andy Hutchinson <hutchinsonandy@aim.com> | 2008-06-18 22:11:05 +0000 |
---|---|---|
committer | Andy Hutchinson <hutchinsonandy@gcc.gnu.org> | 2008-06-18 22:11:05 +0000 |
commit | 458426d9347028e7e7bbea61c4a78d40639f02b6 (patch) | |
tree | 3eaa6bf69928606e4e083201e32079a0372d1b55 | |
parent | 5d597439cbe0d01c7806300b1898ba59ec30f703 (diff) | |
download | gcc-458426d9347028e7e7bbea61c4a78d40639f02b6.zip gcc-458426d9347028e7e7bbea61c4a78d40639f02b6.tar.gz gcc-458426d9347028e7e7bbea61c4a78d40639f02b6.tar.bz2 |
forwprop-6.c: Use long or int to match size of float.
* gcc.dg/tree-ssa/forwprop-6.c: Use long or int to match size of float. Otherwise error.
* gcc.dg/tree-ssa/ssa-fre-7.c: Ditto.
* gcc.dg/tree-ssa/ssa-fre-8.c: Ditto.
From-SVN: r136923
-rw-r--r-- | gcc/testsuite/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c | 12 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c | 13 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c | 12 |
4 files changed, 35 insertions, 9 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 32b3887..8b38601 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,12 @@ 2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com> + * gcc.dg/tree-ssa/forwprop-6.c: Use long or int to match size of + float. Otherwise error. + * gcc.dg/tree-ssa/ssa-fre-7.c: Ditto. + * gcc.dg/tree-ssa/ssa-fre-8.c: Ditto. + +2008-06-18 Andy Hutchinson <hutchinsonandy@aim.com> + * gcc.c-torture/execute/20020619-1.c: Correct for targets without 32 bit int. diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c index 7df9f45..987f8a3 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c @@ -1,13 +1,19 @@ /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-forwprop1 -W -Wall" } */ +#if (__SIZEOF_INT__ == __SIZEOF_FLOAT__) +typedef int intflt; +#elif (__SIZEOF_LONG__ == __SIZEOF_FLOAT__) +typedef long intflt; +#else +#error Add target support here for type that will union float size +#endif - -int b; +intflt b; void f(void) { float a; a = 1; - b = *(int*)&a; /* { dg-warning "aliasing" } */ + b = *(intflt*)&a; /* { dg-warning "aliasing" } */ } /* We should be able to convert the cast to a VCE in forwprop1, diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c index a66adeb..bd81831 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c @@ -1,16 +1,23 @@ /* { dg-do compile } */ /* { dg-options "-O -fdump-tree-fre-details -fdump-tree-optimized" } */ +#if (__SIZEOF_INT__ == __SIZEOF_FLOAT__) +typedef int intflt; +#elif (__SIZEOF_LONG__ == __SIZEOF_FLOAT__) +typedef long intflt; +#else +#error Add target support here for type that will union float size +#endif struct X { int i; union { - int j; - int k; + intflt j; + intflt k; float f; } u; }; -int foo(int j) +intflt foo(intflt j) { struct X a; diff --git a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c index 84a9aeb..6e17bd5 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c @@ -1,11 +1,17 @@ /* { dg-do compile } */ /* { dg-options "-O -fdump-tree-fre-details" } */ - +#if (__SIZEOF_INT__ == __SIZEOF_FLOAT__) +typedef int intflt; +#elif (__SIZEOF_LONG__ == __SIZEOF_FLOAT__) +typedef long intflt; +#else +#error Add target support here for type that will union float size +#endif union U { - int i; + intflt i; float f; }; -int foo(int i, int b) +intflt foo(int i, int b) { union U u; if (b) |