* 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
+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
/* { 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,
/* { 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;
/* { 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)