diff options
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp')
-rw-r--r-- | llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp b/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp index 0a9c444f5e6..9600a1972ea 100644 --- a/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp +++ b/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp @@ -7,9 +7,11 @@ // //===----------------------------------------------------------------------===// +#include "llvm/DebugInfo/PDB/DIA/DIASourceFile.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; @@ -56,12 +58,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))); } |