diff options
author | Reid Kleckner <reid@kleckner.net> | 2015-07-07 00:36:30 +0000 |
---|---|---|
committer | Reid Kleckner <reid@kleckner.net> | 2015-07-07 00:36:30 +0000 |
commit | 9fe7f2396b5f1960fd3554f0d6c550c17b94b135 (patch) | |
tree | 96ca1c89652a8185b20a326ad963fa1550a594da /clang/lib/Sema/SemaStmt.cpp | |
parent | 1faf289e27bcb54e54b2e3e0f492d6f54d59cd9e (diff) | |
download | bcm5719-llvm-9fe7f2396b5f1960fd3554f0d6c550c17b94b135.tar.gz bcm5719-llvm-9fe7f2396b5f1960fd3554f0d6c550c17b94b135.zip |
Revert "Revert 241171, 241187, 241199 (32-bit SEH)."
This reverts commit r241244, but restricts SEH support to Win64.
This way, Chromium builds will still fall back on TUs with SEH, and
Clang developers can work on this incrementally upstream while patching
this small predicate locally. It'll also make it easier to review small
fixes.
llvm-svn: 241533
Diffstat (limited to 'clang/lib/Sema/SemaStmt.cpp')
-rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 6fca974d5b3..c4f6fd8df1c 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -25,6 +25,7 @@ #include "clang/AST/StmtObjC.h" #include "clang/AST/TypeLoc.h" #include "clang/AST/TypeOrdering.h" +#include "clang/Basic/TargetInfo.h" #include "clang/Lex/Preprocessor.h" #include "clang/Sema/Initialization.h" #include "clang/Sema/Lookup.h" @@ -3649,6 +3650,10 @@ StmtResult Sema::ActOnSEHTryBlock(bool IsCXXTry, SourceLocation TryLoc, else Diag(TryLoc, diag::err_seh_try_outside_functions); + // Reject __try on unsupported targets. + if (!Context.getTargetInfo().isSEHTrySupported()) + Diag(TryLoc, diag::err_seh_try_unsupported); + return SEHTryStmt::Create(Context, IsCXXTry, TryLoc, TryBlock, Handler); } |