* tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@86158
138bc75d-0d04-0410-961f-
82ee72b054a4
+2004-08-17 Richard Henderson <rth@redhat.com>
+
+ PR 17051
+ * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
+
2004-08-17 DJ Delorie <dj@redhat.com>
* doc/extend.texi: Document new xstormy16 attribute.
--- /dev/null
+/* PR 17051: SRA failed to rename the VOPS properly. */
+
+struct A
+{
+ char c, d;
+};
+
+void foo(struct A *p)
+{
+ struct A a = *p;
+
+ if (p->c)
+ bar1(a);
+ else
+ {
+ if (p) bar2(a,a.c);
+ bar3(a.c);
+ }
+}
generate_copy_inout (elt, is_output, generate_element_ref (elt), &list);
if (list == NULL)
return;
+ mark_all_v_defs (expr_first (list));
if (is_output)
- {
- mark_all_v_defs (expr_first (list));
- sra_insert_after (bsi, list);
- }
+ sra_insert_after (bsi, list);
else
sra_insert_before (bsi, list);
}