summaryrefslogtreecommitdiffstats
path: root/include/clang/Sema/Scope.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/clang/Sema/Scope.h')
-rw-r--r--include/clang/Sema/Scope.h17
1 files changed, 17 insertions, 0 deletions
diff --git a/include/clang/Sema/Scope.h b/include/clang/Sema/Scope.h
index 27067a1119..8e4e2ef4be 100644
--- a/include/clang/Sema/Scope.h
+++ b/include/clang/Sema/Scope.h
@@ -135,6 +135,14 @@ private:
/// scopes seen as a component.
unsigned short MSLocalManglingNumber;
+ /// \brief SEH __try blocks get uniquely numbered within a function. This
+ /// variable holds the index for an SEH try block.
+ short SEHTryIndex;
+
+ /// \brief SEH __try blocks get uniquely numbered within a function. This
+ /// variable holds the next free index at a function's scope.
+ short SEHTryIndexPool;
+
/// PrototypeDepth - This is the number of function prototype scopes
/// enclosing this scope, including this scope.
unsigned short PrototypeDepth;
@@ -147,6 +155,7 @@ private:
/// pointer is non-null and points to it. This is used for label processing.
Scope *FnParent;
Scope *MSLocalManglingParent;
+ Scope *SEHTryParent;
/// BreakParent/ContinueParent - This is a direct link to the innermost
/// BreakScope/ContinueScope which contains the contents of this scope
@@ -285,6 +294,14 @@ public:
return 1;
}
+ int getSEHTryIndex() {
+ return SEHTryIndex;
+ }
+
+ int getSEHTryParentIndex() const {
+ return SEHTryParent ? SEHTryParent->SEHTryIndex : -1;
+ }
+
/// isDeclScope - Return true if this is the scope that the specified decl is
/// declared in.
bool isDeclScope(Decl *D) {