forked from OSchip/llvm-project
Simplify function try/catch scope handling.
Based on post-commit review feedback for r167766 by Richard Smith. llvm-svn: 167856
This commit is contained in:
parent
3946877f88
commit
3403feb1d0
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
Loading…
Reference in New Issue