summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorReid Kleckner <reid@kleckner.net>2015-04-29 17:17:17 +0000
committerReid Kleckner <reid@kleckner.net>2015-04-29 17:17:17 +0000
commit0bb12a89815932c862bd6e0650b5e46e4c4321ec (patch)
tree4c155549422f68d1892633412aeacb70a5a15273 /clang/lib/Sema
parentddf3a0ef38f4e53ecbfc71cbf831c31521925e63 (diff)
downloadbcm5719-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.cpp5
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);
}
OpenPOWER on IntegriCloud