diff options
Diffstat (limited to 'gnu/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp')
| -rw-r--r-- | gnu/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gnu/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp b/gnu/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp index 0a9c444f5e6..8605f55b402 100644 --- a/gnu/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp +++ b/gnu/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp @@ -7,12 +7,16 @@ // //===----------------------------------------------------------------------===// +#include "llvm/DebugInfo/PDB/DIA/DIASourceFile.h" +#include "llvm/ADT/ArrayRef.h" +#include "llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h" #include "llvm/DebugInfo/PDB/DIA/DIAEnumSymbols.h" #include "llvm/DebugInfo/PDB/DIA/DIASession.h" -#include "llvm/DebugInfo/PDB/DIA/DIASourceFile.h" +#include "llvm/DebugInfo/PDB/PDBSymbolCompiland.h" #include "llvm/Support/ConvertUTF.h" using namespace llvm; +using namespace llvm::pdb; DIASourceFile::DIASourceFile(const DIASession &PDBSession, CComPtr<IDiaSourceFile> DiaSourceFile) @@ -56,12 +60,15 @@ PDB_Checksum DIASourceFile::getChecksumType() const { return static_cast<PDB_Checksum>(Type); } -std::unique_ptr<IPDBEnumSymbols> DIASourceFile::getCompilands() const { +std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>> +DIASourceFile::getCompilands() const { CComPtr<IDiaEnumSymbols> DiaEnumerator; HRESULT Result = SourceFile->get_compilands(&DiaEnumerator); if (S_OK != Result) return nullptr; - return std::unique_ptr<IPDBEnumSymbols>( + auto Enumerator = std::unique_ptr<IPDBEnumSymbols>( new DIAEnumSymbols(Session, DiaEnumerator)); + return std::unique_ptr<IPDBEnumChildren<PDBSymbolCompiland>>( + new ConcreteSymbolEnumerator<PDBSymbolCompiland>(std::move(Enumerator))); } |
