]> granicus.if.org Git - clang/commitdiff
Simplify function try/catch scope handling.
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 13 Nov 2012 18:51:45 +0000 (18:51 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 13 Nov 2012 18:51:45 +0000 (18:51 +0000)
Based on post-commit review feedback for r167766 by Richard Smith.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167856 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Sema/Scope.h
lib/Parse/ParseStmt.cpp

index 1329f97c2bcf19921f1b36987a453220d5a801d6..855485d08eb947f9f2b7fc344c6ac43a6d8c1a6d 100644 (file)
@@ -84,18 +84,9 @@ public:
     /// TryScope - This is the scope of a C++ try statement.
     TryScope = 0x1000,
 
-    /// CatchScope - This is the scope of a C++ catch statement.
-    CatchScope = 0x2000,
-
     /// FnTryCatchScope - This is the scope for a function-level C++ try or
     /// catch scope.
-    FnTryCatchScope = 0x4000,
-
-    /// FnTryScope - This is the scope of a function-level C++ try scope.
-    FnTryScope = TryScope | FnTryCatchScope,
-
-    /// FnCatchScope - This is the scope of a function-level C++ catch scope.
-    FnCatchScope = CatchScope | FnTryCatchScope
+    FnTryCatchScope = 0x2000
   };
 private:
   /// The parent scope for this scope.  This is null for the translation-unit
index 58831158502022eae86e1ff686019b7c8cca6166..a4e0c9844acd81c4199d195b45167b1a9621f252 100644 (file)
@@ -2123,8 +2123,8 @@ StmtResult Parser::ParseCXXTryBlockCommon(SourceLocation TryLoc, bool FnTry) {
   // FIXME: Possible draft standard bug: attribute-specifier should be allowed?
 
   StmtResult TryBlock(ParseCompoundStatement(/*isStmtExpr=*/false,
-                      Scope::DeclScope |
-                        (FnTry ? Scope::FnTryScope : Scope::TryScope)));
+                      Scope::DeclScope | Scope::TryScope |
+                        (FnTry ? Scope::FnTryCatchScope : 0)));
   if (TryBlock.isInvalid())
     return TryBlock;
 
@@ -2197,7 +2197,7 @@ StmtResult Parser::ParseCXXCatchBlock(bool FnCatch) {
   // The name in a catch exception-declaration is local to the handler and
   // shall not be redeclared in the outermost block of the handler.
   ParseScope CatchScope(this, Scope::DeclScope | Scope::ControlScope |
-                          (FnCatch ? Scope::FnCatchScope : Scope::CatchScope));
+                          (FnCatch ? Scope::FnTryCatchScope : 0));
 
   // exception-declaration is equivalent to '...' or a parameter-declaration
   // without default arguments.