summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorReid Kleckner <rnk@google.com>2016-05-23 20:23:46 +0000
committerReid Kleckner <rnk@google.com>2016-05-23 20:23:46 +0000
commitd9b93cd3fefa63f897c2fda3cf2a9e76140072b0 (patch)
tree7553d2778bd9faa85d8fc5e5b49e01b784aaa7ba /include
parent14a29ca2bbc697dbe9e20ef3bd059f3568f99b65 (diff)
Modify emitTypeInformation to use MemoryTypeTableBuilder, take 2
This effectively revers commit r270389 and re-lands r270106, but it's almost a rewrite. The behavior change in r270106 was that we could no longer assume that each LF_FUNC_ID record got its own type index. This patch adds a map from DINode* to TypeIndex, so we can stop making that assumption. This change also emits padding bytes between type records similar to the way MSVC does. The size of the type record includes the padding bytes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@270485 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h b/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h
index 5a3015c3eea..81635076b34 100644
--- a/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h
+++ b/include/llvm/DebugInfo/CodeView/MemoryTypeTableBuilder.h
@@ -46,6 +46,8 @@ private:
public:
MemoryTypeTableBuilder() {}
+ bool empty() const { return Records.empty(); }
+
template <typename TFunc> void ForEachRecord(TFunc Func) {
uint32_t Index = TypeIndex::FirstNonSimpleIndex;