gimplify.c (gimplify_decl_expr): Handle anonymous artificial variables sooner.

* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
	variables sooner.

From-SVN: r166004
This commit is contained in:
Jason Merrill 2010-10-27 11:47:52 -04:00 committed by Jason Merrill
parent 84fabdde09
commit 221925596f
2 changed files with 13 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2010-10-27 Jason Merrill <jason@redhat.com>
* gimplify.c (gimplify_decl_expr): Handle anonymous artificial
variables sooner.
2010-10-27 Jie Zhang <jie@codesourcery.com>
Maxim Kuvyrkov <maxim@codesourcery.com>

View File

@ -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;