diff options
author | Richard Sandiford <rsandifo@nildram.co.uk> | 2008-01-02 13:04:11 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2008-01-02 13:04:11 +0000 |
commit | 1463dfa49e88588db8afa9a03a4921f12cbccf19 (patch) | |
tree | b756a9a0168b69ddef90703ca9838c173425c309 /gcc/tree-sra.c | |
parent | ee6ec6667c8ae64e5bef198eb6e0e35f191f4ed2 (diff) | |
download | gcc-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.c | 5 |
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) { |