From: Argyrios Kyrtzidis Date: Thu, 11 Sep 2008 23:08:39 +0000 (+0000) Subject: Add comments about C++ clause 3.3.2p4 that mentions that the condition declaration... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=14d08c0c776302e2df12239d276072f43c894f0e;p=clang Add comments about C++ clause 3.3.2p4 that mentions that the condition declaration should be local to an if/switch/while/for statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@56134 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Parse/ParseStmt.cpp b/lib/Parse/ParseStmt.cpp index c776bb6c15..4082c6c1b4 100644 --- a/lib/Parse/ParseStmt.cpp +++ b/lib/Parse/ParseStmt.cpp @@ -439,6 +439,10 @@ Parser::StmtResult Parser::ParseIfStatement() { // A name introduced by a declaration in a condition is in scope from its // point of declaration until the end of the substatements controlled by the // condition. + // C++ 3.3.2p4: + // Names declared in the for-init-statement, and in the condition of if, + // while, for, and switch statements are local to the if, while, for, or + // switch statement (including the controlled statement). // if (C99orCXX) EnterScope(Scope::DeclScope | Scope::ControlScope); @@ -563,6 +567,10 @@ Parser::StmtResult Parser::ParseSwitchStatement() { // A name introduced by a declaration in a condition is in scope from its // point of declaration until the end of the substatements controlled by the // condition. + // C++ 3.3.2p4: + // Names declared in the for-init-statement, and in the condition of if, + // while, for, and switch statements are local to the if, while, for, or + // switch statement (including the controlled statement). // if (C99orCXX) EnterScope(Scope::BreakScope | Scope::DeclScope | Scope::ControlScope); @@ -640,6 +648,10 @@ Parser::StmtResult Parser::ParseWhileStatement() { // A name introduced by a declaration in a condition is in scope from its // point of declaration until the end of the substatements controlled by the // condition. + // C++ 3.3.2p4: + // Names declared in the for-init-statement, and in the condition of if, + // while, for, and switch statements are local to the if, while, for, or + // switch statement (including the controlled statement). // if (C99orCXX) EnterScope(Scope::BreakScope | Scope::ContinueScope | @@ -775,6 +787,10 @@ Parser::StmtResult Parser::ParseForStatement() { // A name introduced by a declaration in a condition is in scope from its // point of declaration until the end of the substatements controlled by the // condition. + // C++ 3.3.2p4: + // Names declared in the for-init-statement, and in the condition of if, + // while, for, and switch statements are local to the if, while, for, or + // switch statement (including the controlled statement). // C++ 6.5.3p1: // Names declared in the for-init-statement are in the same declarative-region // as those declared in the condition.