forwprop-6.c: Use long or int to match size of float.
authorAndy Hutchinson <hutchinsonandy@aim.com>
Wed, 18 Jun 2008 22:11:05 +0000 (22:11 +0000)
committerAndy Hutchinson <hutchinsonandy@gcc.gnu.org>
Wed, 18 Jun 2008 22:11:05 +0000 (22:11 +0000)
* 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

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/forwprop-6.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-7.c
gcc/testsuite/gcc.dg/tree-ssa/ssa-fre-8.c

index 32b3887322bce3c24b44f977e4a36422b78b1eeb..8b38601d9def3e5befa0fe04cec0718f15c3beb4 100644 (file)
@@ -1,3 +1,10 @@
+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
index 7df9f45ab1749040d3fe0e952dc180fa97aba347..987f8a3909a187b82b4ec1e3e1a18e97abbfec10 100644 (file)
@@ -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,
index a66adeb8c999b21b0d0b6a80883d8f361b8a4a4c..bd81831eba82147c593abcea692d19609e00f29c 100644 (file)
@@ -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;
 
index 84a9aeb60ee9f5220c82b82ffce5645fb70224b1..6e17bd531b36a5f21d78c6216082dd1544212828 100644 (file)
@@ -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)