diff options
author | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-03 15:21:15 +0000 |
---|---|---|
committer | pinskia <pinskia@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-11-03 15:21:15 +0000 |
commit | 9cb3832d7bed353cb522ffd3e74b1962cb91789a (patch) | |
tree | 93fded5899e717286d00db6895ac18a4548de59a /gcc/gimplify.c | |
parent | 66ce73bb55dab159307d90894e7d31ad040e7c6f (diff) | |
download | gcc-9cb3832d7bed353cb522ffd3e74b1962cb91789a.tar.gz |
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24589
* gimplify.c (gimplify_expr) <case CONSTRUCTOR>: Add the
expressions to a statement list instead of gimplifying them.
2005-11-03 Andrew Pinski <pinskia@physics.uc.edu>
PR middle-end/24589
* gcc.c-torture/execute/zero-struct-2.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@106436 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index b7d891e041e..52e70bdad5e 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -4312,18 +4312,19 @@ gimplify_expr (tree *expr_p, tree *pre_p, tree *post_p, { unsigned HOST_WIDE_INT ix; constructor_elt *ce; + tree temp = NULL_TREE; for (ix = 0; VEC_iterate (constructor_elt, CONSTRUCTOR_ELTS (*expr_p), ix, ce); ix++) if (TREE_SIDE_EFFECTS (ce->value)) - gimplify_expr (&ce->value, pre_p, post_p, - gimple_test_f, fallback); + append_to_statement_list (ce->value, &temp); - *expr_p = NULL_TREE; + *expr_p = temp; + ret = GS_OK; } - - ret = GS_ALL_DONE; + else + ret = GS_ALL_DONE; break; /* The following are special cases that are not handled by the |