diff options
| author | Reid Kleckner <reid@kleckner.net> | 2015-04-29 17:17:17 +0000 |
|---|---|---|
| committer | Reid Kleckner <reid@kleckner.net> | 2015-04-29 17:17:17 +0000 |
| commit | 0bb12a89815932c862bd6e0650b5e46e4c4321ec (patch) | |
| tree | 4c155549422f68d1892633412aeacb70a5a15273 /clang/lib/Sema | |
| parent | ddf3a0ef38f4e53ecbfc71cbf831c31521925e63 (diff) | |
| download | bcm5719-llvm-0bb12a89815932c862bd6e0650b5e46e4c4321ec.tar.gz bcm5719-llvm-0bb12a89815932c862bd6e0650b5e46e4c4321ec.zip | |
Re-land r236052, the linker errors were fixed by LLVM r236123
Basic __finally blocks don't cause linker errors anymore (although they
are miscompiled).
llvm-svn: 236128
Diffstat (limited to 'clang/lib/Sema')
| -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 ed5da43f8a9..33c71318b63 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" @@ -3637,6 +3638,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); } |

