aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2016-02-18 18:47:29 +0000
committerZachary Turner <zturner@google.com>2016-02-18 18:47:29 +0000
commit43ec3af952fe08e1d9f3c662cb439b8aeb6d159f (patch)
treec63094b5b482c3bace9836bc46c15277753a77eb /llvm/lib/DebugInfo/PDB/DIA/DIASourceFile.cpp
parent75734f87a66c8ab9b15d951e1e8e8d41f5119460 (diff)
downloadllvm-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.cpp11
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)));
}