summaryrefslogtreecommitdiff
path: root/gcc/c-semantics.c
diff options
context:
space:
mode:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-24 08:25:56 +0000
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>2001-04-24 08:25:56 +0000
commitdfb72f1fd5d29f65baef661fcdb76766692172e1 (patch)
treedf5da848317571f941c02ebee15f2e17d27a24fd /gcc/c-semantics.c
parent65b7f83fcb833ccbead60bbb1533884ad0898486 (diff)
downloadgcc-dfb72f1fd5d29f65baef661fcdb76766692172e1.tar.gz
* c-semantics.c (add_scope_stmt): Don't call
current_scope_stmt_stack multiple times. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@41521 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/c-semantics.c')
-rw-r--r--gcc/c-semantics.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/gcc/c-semantics.c b/gcc/c-semantics.c
index 13480480a43..7f88e970acd 100644
--- a/gcc/c-semantics.c
+++ b/gcc/c-semantics.c
@@ -112,8 +112,9 @@ add_scope_stmt (begin_p, partial_p)
int begin_p;
int partial_p;
{
+ tree *stack_ptr = current_scope_stmt_stack ();
tree ss;
- tree top;
+ tree top = *stack_ptr;
/* Build the statement. */
ss = build_stmt (SCOPE_STMT, NULL_TREE);
@@ -123,15 +124,13 @@ add_scope_stmt (begin_p, partial_p)
/* Keep the scope stack up to date. */
if (begin_p)
{
- *current_scope_stmt_stack ()
- = tree_cons (ss, NULL_TREE, *current_scope_stmt_stack ());
- top = *current_scope_stmt_stack ();
+ top = tree_cons (ss, NULL_TREE, top);
+ *stack_ptr = top;
}
else
{
- top = *current_scope_stmt_stack ();
TREE_VALUE (top) = ss;
- *current_scope_stmt_stack () = TREE_CHAIN (top);
+ *stack_ptr = TREE_CHAIN (top);
}
/* Add the new statement to the statement-tree. */