summaryrefslogtreecommitdiffstats
path: root/lld
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-05-18 23:04:08 +0000
committerZachary Turner <zturner@google.com>2017-05-18 23:04:08 +0000
commitb32ec02b80bf3f321acf7b74a1a4e4ed7dc882bb (patch)
tree683b79478f51ab1fb223bad4204911c13d31bc28 /lld
parent8fb441ab9cdb848c2e3f3b8f6a0c88ff0c8a875b (diff)
downloadbcm5719-llvm-b32ec02b80bf3f321acf7b74a1a4e4ed7dc882bb.tar.gz
bcm5719-llvm-b32ec02b80bf3f321acf7b74a1a4e4ed7dc882bb.zip
[CodeView] Raise the source to ID map out of the TypeStreamMerger.
This map will be needed to rewrite symbol streams after re-writing the corresponding type streams. llvm-svn: 303390
Diffstat (limited to 'lld')
-rw-r--r--lld/COFF/PDB.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/lld/COFF/PDB.cpp b/lld/COFF/PDB.cpp
index 4bbf9c7173b..0266148cc6c 100644
--- a/lld/COFF/PDB.cpp
+++ b/lld/COFF/PDB.cpp
@@ -108,6 +108,7 @@ static void mergeDebugT(SymbolTable *Symtab, pdb::PDBFileBuilder &Builder,
BinaryByteStream Stream(Data, support::little);
codeview::CVTypeArray Types;
BinaryStreamReader Reader(Stream);
+ SmallVector<TypeIndex, 128> SourceToDest;
// Follow type servers. If the same type server is encountered more than
// once for this instance of `PDBTypeServerHandler` (for example if many
// object files reference the same TypeServer), the types from the
@@ -116,8 +117,8 @@ static void mergeDebugT(SymbolTable *Symtab, pdb::PDBFileBuilder &Builder,
Handler.addSearchPath(llvm::sys::path::parent_path(File->getName()));
if (auto EC = Reader.readArray(Types, Reader.getLength()))
fatal(EC, "Reader::readArray failed");
- if (auto Err =
- codeview::mergeTypeStreams(IDTable, TypeTable, &Handler, Types))
+ if (auto Err = codeview::mergeTypeStreams(IDTable, TypeTable, SourceToDest,
+ &Handler, Types))
fatal(Err, "codeview::mergeTypeStreams failed");
}
OpenPOWER on IntegriCloud