diff options
author | Zachary Turner <zturner@google.com> | 2016-05-24 18:55:14 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-05-24 18:55:14 +0000 |
commit | 9e33e6f89bbe8f12856f3744e598470302dcf611 (patch) | |
tree | 9ce7c4eed026670ae7248897cc9b1d8bd4f0418f /llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp | |
parent | f4edae6076d9c09f2c759b0b26bddf6e2eab8b13 (diff) | |
download | llvm-9e33e6f89bbe8f12856f3744e598470302dcf611.zip llvm-9e33e6f89bbe8f12856f3744e598470302dcf611.tar.gz llvm-9e33e6f89bbe8f12856f3744e598470302dcf611.tar.bz2 |
[codeview, pdb] Dump symbol records in publics stream
Differential Revision: http://reviews.llvm.org/D20580
Reviewed By: ruiu
llvm-svn: 270597
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp b/llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp index 2e0b8971..af3cff3 100644 --- a/llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp +++ b/llvm/lib/DebugInfo/PDB/Raw/PublicsStream.cpp @@ -181,19 +181,13 @@ Error PublicsStream::reload() { return Error::success(); } -std::vector<std::string> PublicsStream::getSymbols() const { +iterator_range<codeview::SymbolIterator> PublicsStream::getSymbols() const { + using codeview::SymbolIterator; auto SymbolS = Pdb.getPDBSymbolStream(); - if (SymbolS.takeError()) - return {}; + if (SymbolS.takeError()) { + return llvm::make_range<SymbolIterator>(SymbolIterator(), SymbolIterator()); + } SymbolStream &SS = SymbolS.get(); - std::vector<std::string> Ret; - for (const HashRecord &HR : HashRecords) { - // For some reason, symbol offset is biased by one. - Expected<std::string> Name = SS.getSymbolName(HR.Off - 1); - if (Name.takeError()) - return Ret; - Ret.push_back(std::move(Name.get())); - } - return Ret; + return SS.getSymbols(); } |