PR tree-optimization/51990
* gcc.dg/pr51990.c: New test.
* gcc.dg/pr51990-2.c: Same.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183615
138bc75d-0d04-0410-961f-
82ee72b054a4
+2012-01-27 Tom de Vries <tom@codesourcery.com>
+
+ PR tree-optimization/51990
+ * gcc.dg/pr51990.c: New test.
+ * gcc.dg/pr51990-2.c: Same.
+
2012-01-27 Paul Thomas <pault@gcc.gnu.org>
Tobias Burnus <burnus@gcc.gnu.org>
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int y;
+extern int foo (int, ...) __attribute__((pure));
+
+int
+zzz (char *s1, char *s2, int len, int *q, int c)
+{
+ int z = 5;
+ unsigned int i, b;
+ struct s { char a[z]; };
+ struct s x;
+ int y_tmp = 5;
+
+ for (i = 0; i < len; i++)
+ s1[i] = s2[i];
+
+ b = z & 0x3;
+
+ len += (b == 0 ? 0 : 1) + z;
+
+ *q = len;
+
+ if (c)
+ y_tmp = foo (z, x, x) + 4;
+
+ z = foo (z, x, x) + 4;
+ y = y_tmp;
+
+ return z;
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O2" } */
+
+int
+zzz (char *s1, char *s2, int len, int *q)
+{
+ int z = 5;
+ unsigned int i, b;
+ struct s { char a[z]; };
+ struct s x;
+
+ extern int foo (int, ...) __attribute__((pure));
+
+ for (i = 0; i < len; i++)
+ s1[i] = s2[i];
+
+ b = z & 0x3;
+
+ len += (b == 0 ? 0 : 1) + z;
+
+ *q = len;
+ return foo (z, x, x);
+}