aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRodrigo Rivas Costa <rodrigorivascosta@gmail.com>2010-09-13 17:38:34 +0000
committerJason Merrill <jason@gcc.gnu.org>2010-09-13 13:38:34 -0400
commita8733ebff646c02dbe622118ac6a39ba7d352d47 (patch)
tree717b544d1775023285f8c65f95d89b44c9e13991 /gcc
parente196b22163a6c1a723648b3f09501ebd586fa1c0 (diff)
downloadgcc-a8733ebff646c02dbe622118ac6a39ba7d352d47.zip
gcc-a8733ebff646c02dbe622118ac6a39ba7d352d47.tar.gz
gcc-a8733ebff646c02dbe622118ac6a39ba7d352d47.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/cp/ChangeLog5
-rw-r--r--gcc/cp/semantics.c20
2 files changed, 12 insertions, 13 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 60936e0..ee9944c 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2010-09-13 Rodrigo Rivas Costa <rodrigorivascosta@gmail.com>
+
+ * semantics.c (finish_for_stmt): Always test flag_new_for_scope.
+ (begin_range_for_stmt): Likewise.
+
2010-09-11 Rodrigo Rivas <rodrigorivascosta@gmail.com>
Implement range-based for-statements.
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index 0ae00e4..dc81568 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;
}