aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-sra.c
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@nildram.co.uk>2008-01-02 13:04:11 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2008-01-02 13:04:11 +0000
commit1463dfa49e88588db8afa9a03a4921f12cbccf19 (patch)
treeb756a9a0168b69ddef90703ca9838c173425c309 /gcc/tree-sra.c
parentee6ec6667c8ae64e5bef198eb6e0e35f191f4ed2 (diff)
downloadgcc-1463dfa49e88588db8afa9a03a4921f12cbccf19.zip
gcc-1463dfa49e88588db8afa9a03a4921f12cbccf19.tar.gz
gcc-1463dfa49e88588db8afa9a03a4921f12cbccf19.tar.bz2
tree-sra.c (scalarize_init): Insert the generate_element_init statements after the generate_element_zero...
gcc/ * tree-sra.c (scalarize_init): Insert the generate_element_init statements after the generate_element_zero statements. From-SVN: r131258
Diffstat (limited to 'gcc/tree-sra.c')
-rw-r--r--gcc/tree-sra.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index 83c5d8a..9128677 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -3354,19 +3354,20 @@ static void
scalarize_init (struct sra_elt *lhs_elt, tree rhs, block_stmt_iterator *bsi)
{
bool result = true;
- tree list = NULL;
+ tree list = NULL, init_list = NULL;
/* 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);
- result = generate_element_init (lhs_elt, rhs, &list);
+ result = generate_element_init (lhs_elt, rhs, &init_list);
}
/* CONSTRUCTOR is defined such that any member not mentioned is assigned
a zero value. Initialize the rest of the instantiated elements. */
generate_element_zero (lhs_elt, &list);
+ append_to_statement_list (init_list, &list);
if (!result)
{