summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema/Scope.cpp
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-07-06 22:53:19 +0000
committerNico Weber <nicolasweber@gmx.de>2014-07-06 22:53:19 +0000
commiteb61d4d7c2fdc089c5625aa1128c844edd51285f (patch)
tree6dd096b3b22dd563046e02f1301e524b8545d3a1 /clang/lib/Sema/Scope.cpp
parentc7d0596429b6051c212a5ae1864c8635ab8ae906 (diff)
downloadbcm5719-llvm-eb61d4d7c2fdc089c5625aa1128c844edd51285f.tar.gz
bcm5719-llvm-eb61d4d7c2fdc089c5625aa1128c844edd51285f.zip
Sema: Check that __leave is contained in a __try block.
Give scope a SEHTryScope bit, set that in ParseSEHTry(), and let Sema walk the scope chain to find the SEHTry parent on __leave statements. (They are rare enough that it seems better to do the walk instead of giving Scope a SEHTryParent pointer -- this is similar to AtCatchScope.) llvm-svn: 212422
Diffstat (limited to 'clang/lib/Sema/Scope.cpp')
-rw-r--r--clang/lib/Sema/Scope.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/clang/lib/Sema/Scope.cpp b/clang/lib/Sema/Scope.cpp
index c49133d4727..6c797788238 100644
--- a/clang/lib/Sema/Scope.cpp
+++ b/clang/lib/Sema/Scope.cpp
@@ -182,6 +182,9 @@ void Scope::dumpImpl(raw_ostream &OS) const {
} else if (Flags & FnTryCatchScope) {
OS << "FnTryCatchScope";
Flags &= ~FnTryCatchScope;
+ } else if (Flags & SEHTryScope) {
+ OS << "SEHTryScope";
+ Flags &= ~SEHTryScope;
} else if (Flags & OpenMPDirectiveScope) {
OS << "OpenMPDirectiveScope";
Flags &= ~OpenMPDirectiveScope;
OpenPOWER on IntegriCloud