diff options
Diffstat (limited to 'clang/Sema')
-rw-r--r-- | clang/Sema/Sema.h | 4 | ||||
-rw-r--r-- | clang/Sema/SemaExprCXX.cpp | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/clang/Sema/Sema.h b/clang/Sema/Sema.h index 95bc3b7fccd..c2d249a9c6d 100644 --- a/clang/Sema/Sema.h +++ b/clang/Sema/Sema.h @@ -510,6 +510,10 @@ public: virtual ExprResult ActOnCXXBoolLiteral(SourceLocation OpLoc, tok::TokenKind Kind); + //// ActOnCXXThrow - Parse throw expressions. + virtual ExprResult ActOnCXXThrow(SourceLocation OpLoc, + ExprTy *expr); + // ParseObjCStringLiteral - Parse Objective-C string literals. virtual ExprResult ParseObjCStringLiteral(SourceLocation *AtLocs, ExprTy **Strings, diff --git a/clang/Sema/SemaExprCXX.cpp b/clang/Sema/SemaExprCXX.cpp index 516e50756e3..e49a43c4728 100644 --- a/clang/Sema/SemaExprCXX.cpp +++ b/clang/Sema/SemaExprCXX.cpp @@ -43,3 +43,9 @@ Sema::ActOnCXXBoolLiteral(SourceLocation OpLoc, tok::TokenKind Kind) { "Unknown C++ Boolean value!"); return new CXXBoolLiteralExpr(Kind == tok::kw_true, Context.BoolTy, OpLoc); } + +/// ActOnCXXThrow - Parse throw expressions. +Action::ExprResult +Sema::ActOnCXXThrow(SourceLocation OpLoc, ExprTy *E) { + return new CXXThrowExpr((Expr*)E, Context.VoidTy, OpLoc); +} |