From a8733ebff646c02dbe622118ac6a39ba7d352d47 Mon Sep 17 00:00:00 2001 From: Rodrigo Rivas Costa Date: Mon, 13 Sep 2010 17:38:34 +0000 Subject: [PATCH] semantics.c (finish_for_stmt): Always test flag_new_for_scope. * semantics.c (finish_for_stmt): Always test flag_new_for_scope. (begin_range_for_stmt): Likewise. From-SVN: r164251 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/semantics.c | 20 +++++++------------- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 60936e0aa5d4..ee9944cad5a2 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2010-09-13 Rodrigo Rivas Costa + + * semantics.c (finish_for_stmt): Always test flag_new_for_scope. + (begin_range_for_stmt): Likewise. + 2010-09-11 Rodrigo Rivas Implement range-based for-statements. diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c index 0ae00e47221b..dc815686c1e5 100644 --- a/gcc/cp/semantics.c +++ b/gcc/cp/semantics.c @@ -882,21 +882,13 @@ finish_for_expr (tree expr, tree for_stmt) void finish_for_stmt (tree for_stmt) { - bool scoped; - if (TREE_CODE (for_stmt) == RANGE_FOR_STMT) - { - RANGE_FOR_BODY (for_stmt) = do_poplevel (RANGE_FOR_BODY (for_stmt)); - scoped = true; - } + RANGE_FOR_BODY (for_stmt) = do_poplevel (RANGE_FOR_BODY (for_stmt)); else - { - FOR_BODY (for_stmt) = do_poplevel (FOR_BODY (for_stmt)); - scoped = flag_new_for_scope > 0; - } + FOR_BODY (for_stmt) = do_poplevel (FOR_BODY (for_stmt)); /* Pop the scope for the body of the loop. */ - if (scoped) + if (flag_new_for_scope > 0) { tree scope = TREE_CHAIN (for_stmt); TREE_CHAIN (for_stmt) = NULL; @@ -913,10 +905,12 @@ tree begin_range_for_stmt (void) { tree r; + r = build_stmt (input_location, RANGE_FOR_STMT, NULL_TREE, NULL_TREE, NULL_TREE); - /* We can ignore flag_new_for_scope here. */ - TREE_CHAIN (r) = do_pushlevel (sk_for); + + if (flag_new_for_scope > 0) + TREE_CHAIN (r) = do_pushlevel (sk_for); return r; } -- 2.47.3