diff options
author | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-27 15:47:52 +0000 |
---|---|---|
committer | jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-10-27 15:47:52 +0000 |
commit | 6ad0b38a7dc7a62b31b79f3a1fc44ee7ac0de914 (patch) | |
tree | 5068293f80517db513a36bef4add4f7f6bb14714 /gcc/gimplify.c | |
parent | 7db79429fa92fc74d8316729a296cd9d16d0ece0 (diff) | |
download | gcc-6ad0b38a7dc7a62b31b79f3a1fc44ee7ac0de914.tar.gz |
* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
variables sooner.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166004 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 542c2234ccb..87b57f0ebf7 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -1372,6 +1372,14 @@ gimplify_decl_expr (tree *stmt_p, gimple_seq *seq_p) STACK_CHECK_MAX_VAR_SIZE) > 0)) gimplify_vla_decl (decl, seq_p); + /* Some front ends do not explicitly declare all anonymous + artificial variables. We compensate here by declaring the + variables, though it would be better if the front ends would + explicitly declare them. */ + if (!DECL_SEEN_IN_BIND_EXPR_P (decl) + && DECL_ARTIFICIAL (decl) && DECL_NAME (decl) == NULL_TREE) + gimple_add_tmp_var (decl); + if (init && init != error_mark_node) { if (!TREE_STATIC (decl)) @@ -1386,14 +1394,6 @@ gimplify_decl_expr (tree *stmt_p, gimple_seq *seq_p) as they may contain a label address. */ walk_tree (&init, force_labels_r, NULL, NULL); } - - /* Some front ends do not explicitly declare all anonymous - artificial variables. We compensate here by declaring the - variables, though it would be better if the front ends would - explicitly declare them. */ - if (!DECL_SEEN_IN_BIND_EXPR_P (decl) - && DECL_ARTIFICIAL (decl) && DECL_NAME (decl) == NULL_TREE) - gimple_add_tmp_var (decl); } return GS_ALL_DONE; |