Index: tree-sra.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/tree-sra.c,v retrieving revision 2.43 diff -u -p -r2.43 tree-sra.c --- tree-sra.c 16 Nov 2004 00:08:04 -0000 2.43 +++ tree-sra.c 22 Nov 2004 02:10:33 -0000 @@ -1832,6 +1832,8 @@ scalarize_init (struct sra_elt *lhs_elt, /* Generate initialization statements for all members extant in the RHS. */ if (rhs) { + /* Unshare the expression just in case this is from a decl's initial. */ + rhs = unshare_expr (rhs); push_gimplify_context (); result = generate_element_init (lhs_elt, rhs, &list); pop_gimplify_context (NULL);