+2011-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/47265
+ PR tree-optimization/47443
+ * tree-ssa-forwprop.c (forward_propagate_addr_expr): Return false
+ if name still has some uses.
+
2011-01-25 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/47382
+2011-01-25 Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/47265
+ PR tree-optimization/47443
+ * gcc.c-torture/compile/pr47265.c: New test.
+ * gcc.dg/pr47443.c: New test.
+
2011-01-25 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/47382
--- /dev/null
+/* PR tree-optimization/47265 */
+
+struct S
+{
+ char a[3];
+ char b[3];
+};
+
+void
+bar (char *dst, const char *src, unsigned n)
+{
+ while (n--)
+ *dst++ = *src ? *src++ : ' ';
+}
+
+void
+foo (struct S *s)
+{
+ bar (s->a, s->b, 3);
+}
--- /dev/null
+/* PR tree-optimization/47443 */
+/* { dg-do compile } */
+/* { dg-options "-O -fstack-check=generic" } */
+
+static inline bar (char *c, int i)
+{
+ return c + i > c;
+}
+
+int foo ()
+{
+ char c[100];
+ return (bar (c, 1));
+}
/* Forward propagation of expressions for single use variables.
- Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010
+ Copyright (C) 2004, 2005, 2007, 2008, 2009, 2010, 2011
Free Software Foundation, Inc.
This file is part of GCC.
}
}
- return all;
+ return all && has_zero_uses (name);
}
/* Forward propagate the comparison defined in STMT like