summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--clang/include/clang/AST/Stmt.h2
-rw-r--r--clang/include/clang/Basic/CapturedStmt.h1
-rw-r--r--clang/include/clang/Sema/ScopeInfo.h2
-rw-r--r--clang/lib/Parse/ParseObjc.cpp15
-rw-r--r--clang/test/SemaObjC/finally-msvc.m14
5 files changed, 2 insertions, 32 deletions
diff --git a/clang/include/clang/AST/Stmt.h b/clang/include/clang/AST/Stmt.h
index 3b678dcc754..03c808d394e 100644
--- a/clang/include/clang/AST/Stmt.h
+++ b/clang/include/clang/AST/Stmt.h
@@ -2133,7 +2133,7 @@ private:
/// The pointer part is the implicit the outlined function and the
/// int part is the captured region kind, 'CR_Default' etc.
- llvm::PointerIntPair<CapturedDecl *, 2, CapturedRegionKind> CapDeclAndKind;
+ llvm::PointerIntPair<CapturedDecl *, 1, CapturedRegionKind> CapDeclAndKind;
/// The record for captured variables, a RecordDecl or CXXRecordDecl.
RecordDecl *TheRecordDecl = nullptr;
diff --git a/clang/include/clang/Basic/CapturedStmt.h b/clang/include/clang/Basic/CapturedStmt.h
index 324e1b1d3d0..6c8d6edab0b 100644
--- a/clang/include/clang/Basic/CapturedStmt.h
+++ b/clang/include/clang/Basic/CapturedStmt.h
@@ -16,7 +16,6 @@ namespace clang {
/// The different kinds of captured statement.
enum CapturedRegionKind {
CR_Default,
- CR_ObjCAtFinally,
CR_OpenMP
};
diff --git a/clang/include/clang/Sema/ScopeInfo.h b/clang/include/clang/Sema/ScopeInfo.h
index fa1b1037a2f..b0f6bac9946 100644
--- a/clang/include/clang/Sema/ScopeInfo.h
+++ b/clang/include/clang/Sema/ScopeInfo.h
@@ -748,8 +748,6 @@ public:
switch (CapRegionKind) {
case CR_Default:
return "default captured statement";
- case CR_ObjCAtFinally:
- return "Objective-C @finally statement";
case CR_OpenMP:
return "OpenMP region";
}
diff --git a/clang/lib/Parse/ParseObjc.cpp b/clang/lib/Parse/ParseObjc.cpp
index ff33d5fb96b..6ca0ad855f5 100644
--- a/clang/lib/Parse/ParseObjc.cpp
+++ b/clang/lib/Parse/ParseObjc.cpp
@@ -2585,26 +2585,13 @@ StmtResult Parser::ParseObjCTryStmt(SourceLocation atLoc) {
ParseScope FinallyScope(this,
Scope::DeclScope | Scope::CompoundStmtScope);
- bool ShouldCapture =
- getTargetInfo().getTriple().isWindowsMSVCEnvironment();
- if (ShouldCapture)
- Actions.ActOnCapturedRegionStart(Tok.getLocation(), getCurScope(),
- CR_ObjCAtFinally, 1);
-
StmtResult FinallyBody(true);
if (Tok.is(tok::l_brace))
FinallyBody = ParseCompoundStatementBody();
else
Diag(Tok, diag::err_expected) << tok::l_brace;
-
- if (FinallyBody.isInvalid()) {
+ if (FinallyBody.isInvalid())
FinallyBody = Actions.ActOnNullStmt(Tok.getLocation());
- if (ShouldCapture)
- Actions.ActOnCapturedRegionError();
- } else if (ShouldCapture) {
- FinallyBody = Actions.ActOnCapturedRegionEnd(FinallyBody.get());
- }
-
FinallyStmt = Actions.ActOnObjCAtFinallyStmt(AtCatchFinallyLoc,
FinallyBody.get());
catch_or_finally_seen = true;
diff --git a/clang/test/SemaObjC/finally-msvc.m b/clang/test/SemaObjC/finally-msvc.m
deleted file mode 100644
index 5db08a7f710..00000000000
--- a/clang/test/SemaObjC/finally-msvc.m
+++ /dev/null
@@ -1,14 +0,0 @@
-// RUN: %clang_cc1 -triple i686--windows-msvc -fexceptions -fobjc-exceptions -ast-dump %s 2>&1 | FileCheck %s
-// RUN: %clang_cc1 -triple x86_64--windows-msvc -fexceptions -fobjc-exceptions -ast-dump %s 2>&1 | FileCheck %s
-
-void f() {
- @try {
- } @finally {
- }
-}
-
-// CHECK: ObjCAtFinallyStmt
-// CHECK-NEXT: CapturedStmt
-// CHECK-NEXT: CapturedDecl
-// CHECK-NEXT: CompoundStmt
-// CHECK-NEXT: ImplicitParamDecl
OpenPOWER on IntegriCloud