diff options
author | Zachary Turner <zturner@google.com> | 2016-02-18 18:47:29 +0000 |
---|---|---|
committer | Zachary Turner <zturner@google.com> | 2016-02-18 18:47:29 +0000 |
commit | 43ec3af952fe08e1d9f3c662cb439b8aeb6d159f (patch) | |
tree | c63094b5b482c3bace9836bc46c15277753a77eb /llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp | |
parent | 75734f87a66c8ab9b15d951e1e8e8d41f5119460 (diff) | |
download | llvm-43ec3af952fe08e1d9f3c662cb439b8aeb6d159f.zip llvm-43ec3af952fe08e1d9f3c662cb439b8aeb6d159f.tar.gz llvm-43ec3af952fe08e1d9f3c662cb439b8aeb6d159f.tar.bz2 |
[DebugInfoPDB] Add source / line number accessors for PDB.
This patch adds a variety of different methods to query source
and line number information from PDB files.
llvm-svn: 261239
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 0a9c444..9600a19 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))); } |