summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-06-24 16:24:24 +0000
committerReid Kleckner <rnk@google.com>2016-06-24 16:24:24 +0000
commit9f7f3e1e64067c6802882e691a7a3c8a5926a737 (patch)
tree4c3d67d10f7f213f79aa0fcd42dd39abd67b868e /llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
parente794678404abc41ce3b22625da39c1379c1d7a1d (diff)
downloadbcm5719-llvm-9f7f3e1e64067c6802882e691a7a3c8a5926a737.tar.gz
bcm5719-llvm-9f7f3e1e64067c6802882e691a7a3c8a5926a737.zip
[codeview] Emit base class information from DW_TAG_inheritance nodes
There are two remaining issues here: 1. No vbptr information 2. Need to mention indirect virtual bases Getting indirect virtual bases is just a matter of adding an "indirect" flag, emitting them in the frontend, and ignoring them when appropriate for DWARF. All virtual bases use the same artificial vbptr field, so I think the vbptr offset will be best represented by an implicit __vbptr$ClassName member similar to our existing __vptr$ member. llvm-svn: 273688
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h')
-rw-r--r--llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
index 7db4e041096..53493725c13 100644
--- a/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
+++ b/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
@@ -157,6 +157,8 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public DebugHandlerBase {
/// Number of type lowering frames active on the stack.
unsigned TypeEmissionLevel = 0;
+ codeview::TypeIndex VBPType;
+
const DISubprogram *CurrentSubprogram = nullptr;
// The UDTs we have seen while processing types; each entry is a pair of type
@@ -230,6 +232,8 @@ class LLVM_LIBRARY_VISIBILITY CodeViewDebug : public DebugHandlerBase {
codeview::TypeIndex getScopeIndex(const DIScope *Scope);
+ codeview::TypeIndex getVBPTypeIndex();
+
void addToUDTs(const DIType *Ty, codeview::TypeIndex TI);
codeview::TypeIndex lowerType(const DIType *Ty, const DIType *ClassTy);
OpenPOWER on IntegriCloud