aboutsummaryrefslogtreecommitdiff
path: root/lib/Sema
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Sema')
-rw-r--r--lib/Sema/SemaStmt.cpp6
-rw-r--r--lib/Sema/TreeTransform.h10
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/Sema/SemaStmt.cpp b/lib/Sema/SemaStmt.cpp
index 76410e20ac..e9866ffb3b 100644
--- a/lib/Sema/SemaStmt.cpp
+++ b/lib/Sema/SemaStmt.cpp
@@ -2746,6 +2746,12 @@ Sema::ActOnSEHTryBlock(bool IsCXXTry,
}
StmtResult
+Sema::ActOnSEHLeaveStmt(SourceLocation LeaveLoc)
+{
+ return Owned(SEHLeaveStmt::Create(Context, LeaveLoc));
+}
+
+StmtResult
Sema::ActOnSEHExceptBlock(SourceLocation Loc,
Expr *FilterExpr,
Stmt *Block) {
diff --git a/lib/Sema/TreeTransform.h b/lib/Sema/TreeTransform.h
index 19636f4143..10eb52a890 100644
--- a/lib/Sema/TreeTransform.h
+++ b/lib/Sema/TreeTransform.h
@@ -1361,6 +1361,10 @@ public:
return getSema().ActOnSEHTryBlock(IsCXXTry,TryLoc,TryBlock,Handler);
}
+ StmtResult RebuildSEHLeaveStmt(SourceLocation LeaveLoc) {
+ return getSema().ActOnSEHLeaveStmt(LeaveLoc);
+ }
+
StmtResult RebuildSEHExceptStmt(SourceLocation Loc,
Expr *FilterExpr,
Stmt *Block) {
@@ -6001,6 +6005,12 @@ TreeTransform<Derived>::TransformSEHTryStmt(SEHTryStmt *S) {
template<typename Derived>
StmtResult
+TreeTransform<Derived>::TransformSEHLeaveStmt(SEHLeaveStmt *S) {
+ return getDerived().RebuildSEHLeaveStmt(S->getLeaveLoc());
+}
+
+template<typename Derived>
+StmtResult
TreeTransform<Derived>::TransformSEHFinallyStmt(SEHFinallyStmt *S) {
StmtResult Block; // = getDerived().TransformCompoundStatement(S->getBlock());
if(Block.isInvalid()) return StmtError();