aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/CGDebugInfo.h
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2010-01-28 18:11:52 +0000
committerDevang Patel <dpatel@apple.com>2010-01-28 18:11:52 +0000
commit4ce3f2026a8f1422e549089a58aa0a4d1cc76f99 (patch)
tree8cd4290a45e86ccfdc96beb4e0ee431725f30df0 /lib/CodeGen/CGDebugInfo.h
parent233a6419097ed97b67ff8efcacef9af613262ca3 (diff)
Emit vtable info.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94751 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/CGDebugInfo.h')
-rw-r--r--lib/CodeGen/CGDebugInfo.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/CodeGen/CGDebugInfo.h b/lib/CodeGen/CGDebugInfo.h
index 5362413100..ac75ac0231 100644
--- a/lib/CodeGen/CGDebugInfo.h
+++ b/lib/CodeGen/CGDebugInfo.h
@@ -47,6 +47,8 @@ class CGDebugInfo {
llvm::DIFactory DebugFactory;
SourceLocation CurLoc, PrevLoc;
+
+ llvm::DIType VTablePtrType;
/// CompileUnitCache - Cache of previously constructed CompileUnits.
llvm::DenseMap<unsigned, llvm::DICompileUnit> CompileUnitCache;
@@ -85,6 +87,7 @@ class CGDebugInfo {
llvm::DIType CreateType(const MemberPointerType *Ty, llvm::DICompileUnit U);
llvm::DIType getOrCreateMethodType(const CXXMethodDecl *Method,
llvm::DICompileUnit Unit);
+ llvm::DIType getOrCreateVTablePtrType(llvm::DICompileUnit Unit);
llvm::DIType CreatePointerLikeType(unsigned Tag,
const Type *Ty, QualType PointeeTy,
@@ -106,6 +109,11 @@ class CGDebugInfo {
void CollectRecordFields(const RecordDecl *Decl, llvm::DICompileUnit U,
llvm::SmallVectorImpl<llvm::DIDescriptor> &E);
+
+ void CollectVtableInfo(const CXXRecordDecl *Decl,
+ llvm::DICompileUnit Unit,
+ llvm::SmallVectorImpl<llvm::DIDescriptor> &EltTys);
+
public:
CGDebugInfo(CodeGenModule &CGM);
~CGDebugInfo();
@@ -181,6 +189,10 @@ private:
/// name is constructred on demand (e.g. C++ destructor) then the name
/// is stored on the side.
llvm::StringRef getFunctionName(const FunctionDecl *FD);
+
+ /// getVtableName - Get vtable name for the given Class.
+ llvm::StringRef getVtableName(const CXXRecordDecl *Decl);
+
};
} // namespace CodeGen
} // namespace clang