summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGDebugInfo.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CGDebugInfo.h')
-rw-r--r--clang/lib/CodeGen/CGDebugInfo.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.h b/clang/lib/CodeGen/CGDebugInfo.h
index 989ecad9b46..795dc0ad42c 100644
--- a/clang/lib/CodeGen/CGDebugInfo.h
+++ b/clang/lib/CodeGen/CGDebugInfo.h
@@ -116,6 +116,11 @@ class CGDebugInfo {
/// Keep track of our current nested lexical block.
std::vector<llvm::TypedTrackingMDRef<llvm::DIScope>> LexicalBlockStack;
+
+ /// Map of AST declaration to its lexical block scope.
+ llvm::DenseMap<const Decl *, llvm::TypedTrackingMDRef<llvm::DIScope>>
+ LexicalBlockMap;
+
llvm::DenseMap<const Decl *, llvm::TrackingMDRef> RegionMap;
/// Keep track of LexicalBlockStack counter at the beginning of a
/// function. This is used to pop unbalanced regions at the end of a
@@ -378,6 +383,12 @@ public:
/// Emit an Objective-C interface type standalone debug info.
llvm::DIType *getOrCreateInterfaceType(QualType Ty, SourceLocation Loc);
+ /// Map AST declaration to its lexical block scope if available.
+ void recordDeclarationLexicalScope(const Decl &D);
+
+ /// Get lexical scope of AST declaration.
+ llvm::DIScope *getDeclarationLexicalScope(const Decl &D, QualType Ty);
+
/// Emit standalone debug info for a type.
llvm::DIType *getOrCreateStandaloneType(QualType Ty, SourceLocation Loc);
OpenPOWER on IntegriCloud