aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/DebugInfo/PDB/PDB.cpp
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2015-02-10 21:17:52 +0000
committerZachary Turner <zturner@google.com>2015-02-10 21:17:52 +0000
commitcffff26b68517ba2851fb34c67bdf6faf073ac5d (patch)
tree28845f8f87d6c8abf1c62338ad41945a6cf84043 /llvm/lib/DebugInfo/PDB/PDB.cpp
parentf3e79e8714e1b7f04bbe4e079accb1d5fb8e3806 (diff)
downloadllvm-cffff26b68517ba2851fb34c67bdf6faf073ac5d.zip
llvm-cffff26b68517ba2851fb34c67bdf6faf073ac5d.tar.gz
llvm-cffff26b68517ba2851fb34c67bdf6faf073ac5d.tar.bz2
Provide DIA implementation of DebugInfoPDB.
This implements DebugInfoPDB when the DIA SDK is present on the system. Specifically, this means that the following conditions are met: 1) You are building on Windows. 2) You are building with MSVC. 3) Visual Studio did not corrupt the installation of DIA due to a known issue with side-by-side installations of VS2012 and VS2013. If all of these conditions are true, you will be able to pass a value of PDB_Reader::DIA to PDB::createPdbReader(). There are no tests for this yet, as any test will be in the form of a lit test which tests the llvm-pdbdump.exe, which still needs to be rewritten in terms of this library. llvm-svn: 228747
Diffstat (limited to 'llvm/lib/DebugInfo/PDB/PDB.cpp')
-rw-r--r--llvm/lib/DebugInfo/PDB/PDB.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/llvm/lib/DebugInfo/PDB/PDB.cpp b/llvm/lib/DebugInfo/PDB/PDB.cpp
index e80beee..6aea237 100644
--- a/llvm/lib/DebugInfo/PDB/PDB.cpp
+++ b/llvm/lib/DebugInfo/PDB/PDB.cpp
@@ -7,15 +7,23 @@
//
//===----------------------------------------------------------------------===//
+#include "llvm/Config/config.h"
+
#include "llvm/ADT/StringRef.h"
#include "llvm/DebugInfo/PDB/PDB.h"
#include "llvm/DebugInfo/PDB/IPDBSession.h"
+#if HAVE_DIA_SDK
+#include "llvm/DebugInfo/PDB/DIA/DIASession.h"
+#endif
using namespace llvm;
std::unique_ptr<IPDBSession> llvm::createPDBReader(PDB_ReaderType Type,
StringRef Path) {
// Create the correct concrete instance type based on the value of Type.
+#if HAVE_DIA_SDK
+ return std::unique_ptr<DIASession>(DIASession::createFromPdb(Path));
+#endif
return nullptr;
}