diff options
author | Reid Kleckner <rnk@google.com> | 2017-06-21 17:25:56 +0000 |
---|---|---|
committer | Reid Kleckner <rnk@google.com> | 2017-06-21 17:25:56 +0000 |
commit | d0e6e24a53b35202110e8512de3ac0f247f1ae4f (patch) | |
tree | 4a3b56611d4e087122e008bde54f34f1d71a5329 /llvm/include | |
parent | 84dbbfdeb92085452ebd5966e3a73379a0f4240d (diff) | |
download | bcm5719-llvm-d0e6e24a53b35202110e8512de3ac0f247f1ae4f.tar.gz bcm5719-llvm-d0e6e24a53b35202110e8512de3ac0f247f1ae4f.zip |
[PDB] Add symbols to the PDB
Summary:
The main complexity in adding symbol records is that we need to
"relocate" all the type indices. Type indices do not have anything like
relocations, an opaque data structure describing where to find existing
type indices for fixups. The linker just has to "know" where the type
references are in the symbol records. I added an overload of
`discoverTypeIndices` that works on symbol records, and it seems to be
able to link the standard library.
Reviewers: zturner, ruiu
Subscribers: llvm-commits, hiraditya
Differential Revision: https://reviews.llvm.org/D34432
llvm-svn: 305933
Diffstat (limited to 'llvm/include')
-rw-r--r-- | llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h b/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h index 82ceb503831..c393b42cd27 100644 --- a/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h +++ b/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h @@ -11,6 +11,7 @@ #define LLVM_DEBUGINFO_CODEVIEW_TYPEINDEXDISCOVERY_H #include "llvm/ADT/SmallVector.h" +#include "llvm/DebugInfo/CodeView/SymbolRecord.h" #include "llvm/DebugInfo/CodeView/TypeRecord.h" #include "llvm/Support/Error.h" @@ -27,6 +28,11 @@ void discoverTypeIndices(ArrayRef<uint8_t> RecordData, SmallVectorImpl<TiReference> &Refs); void discoverTypeIndices(const CVType &Type, SmallVectorImpl<TiReference> &Refs); + +/// Discover type indices in symbol records. Returns false if this is an unknown +/// record. +bool discoverTypeIndices(const CVSymbol &Symbol, + SmallVectorImpl<TiReference> &Refs); } } |