//
//===----------------------------------------------------------------------===//
-#include "llvm/Config/config.h"
+#include "llvm/DebugInfo/PDB/PDB.h"
#include "llvm/ADT/StringRef.h"
-
-#include "llvm/DebugInfo/PDB/PDB.h"
+#include "llvm/Config/config.h"
#include "llvm/DebugInfo/PDB/IPDBSession.h"
+#include "llvm/DebugInfo/PDB/PDB.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) {
+PDB_ErrorCode llvm::loadDataForPDB(PDB_ReaderType Type, StringRef Path,
+ std::unique_ptr<IPDBSession> &Session) {
+ // Create the correct concrete instance type based on the value of Type.
+#if HAVE_DIA_SDK
+ return DIASession::createFromPdb(Path, Session);
+#endif
+ return PDB_ErrorCode::NoPdbImpl;
+}
+
+PDB_ErrorCode llvm::loadDataForEXE(PDB_ReaderType Type, StringRef Path,
+ std::unique_ptr<IPDBSession> &Session) {
// Create the correct concrete instance type based on the value of Type.
#if HAVE_DIA_SDK
- return std::unique_ptr<DIASession>(DIASession::createFromPdb(Path));
+ return DIASession::createFromExe(Path, Session);
#endif
- return nullptr;
+ return PDB_ErrorCode::NoPdbImpl;
}