[llvm] r284058 - Update _MSC_VER equality checks for msdiaNNN.dll

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 12 14:51:14 PDT 2016


Author: rnk
Date: Wed Oct 12 16:51:14 2016
New Revision: 284058

URL: http://llvm.org/viewvc/llvm-project?rev=284058&view=rev
Log:
Update _MSC_VER equality checks for msdiaNNN.dll

Use inequality instead of equality to defend against minor version
increases in _MSC_VER. An _MSC_VER value of 1901 should still use
msdia140.dll, as described in this blog post:
https://blogs.msdn.microsoft.com/vcblog/2016/10/05/visual-c-compiler-version/

Modified:
    llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp

Modified: llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp?rev=284058&r1=284057&r2=284058&view=diff
==============================================================================
--- llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp (original)
+++ llvm/trunk/lib/DebugInfo/PDB/DIA/DIASession.cpp Wed Oct 12 16:51:14 2016
@@ -24,9 +24,7 @@
 using namespace llvm;
 using namespace llvm::pdb;
 
-namespace {
-
-Error ErrorFromHResult(HRESULT Result) {
+static Error ErrorFromHResult(HRESULT Result) {
   switch (Result) {
   case E_PDB_NOT_FOUND:
     return make_error<GenericError>(generic_error_code::invalid_path);
@@ -44,7 +42,7 @@ Error ErrorFromHResult(HRESULT Result) {
   }
 }
 
-Error LoadDIA(CComPtr<IDiaDataSource> &DiaDataSource) {
+static Error LoadDIA(CComPtr<IDiaDataSource> &DiaDataSource) {
   if (SUCCEEDED(CoCreateInstance(CLSID_DiaSource, nullptr, CLSCTX_INPROC_SERVER,
                                  IID_IDiaDataSource,
                                  reinterpret_cast<LPVOID *>(&DiaDataSource))))
@@ -55,12 +53,11 @@ Error LoadDIA(CComPtr<IDiaDataSource> &D
 #if !defined(_MSC_VER)
   return llvm::make_error<GenericError>(
       "DIA is only supported when using MSVC.");
-#endif
-
+#else
   const wchar_t *msdia_dll = nullptr;
-#if _MSC_VER == 1900
+#if _MSC_VER >= 1900 && _MSC_VER < 2000
   msdia_dll = L"msdia140.dll"; // VS2015
-#elif _MSC_VER == 1800
+#elif _MSC_VER >= 1800
   msdia_dll = L"msdia120.dll"; // VS2013
 #else
 #error "Unknown Visual Studio version."
@@ -71,8 +68,7 @@ Error LoadDIA(CComPtr<IDiaDataSource> &D
                                 reinterpret_cast<LPVOID *>(&DiaDataSource))))
     return ErrorFromHResult(HR);
   return Error::success();
-}
-
+#endif
 }
 
 DIASession::DIASession(CComPtr<IDiaSession> DiaSession) : Session(DiaSession) {}




More information about the llvm-commits mailing list