[llvm] r267277 - Avoid MSVC failure with default arguments in lambdas from r267270

Duncan P. N. Exon Smith via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 22 21:52:47 PDT 2016


Author: dexonsmith
Date: Fri Apr 22 23:52:47 2016
New Revision: 267277

URL: http://llvm.org/viewvc/llvm-project?rev=267277&view=rev
Log:
Avoid MSVC failure with default arguments in lambdas from r267270

http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/11700

Modified:
    llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp

Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp?rev=267277&r1=267276&r2=267277&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeReader.cpp Fri Apr 22 23:52:47 2016
@@ -1998,17 +1998,21 @@ std::error_code BitcodeReader::parseMeta
 
   PlaceholderQueue Placeholders;
   bool IsDistinct;
-  auto getMD = [&](unsigned ID, bool AllowPlaceholders = true) -> Metadata * {
-    if (!IsDistinct || !AllowPlaceholders)
+  auto getMD = [&](unsigned ID) -> Metadata * {
+    if (!IsDistinct)
       return MetadataList.getMetadataFwdRef(ID);
     if (auto *MD = MetadataList.getMetadataIfResolved(ID))
       return MD;
     return &Placeholders.getPlaceholderOp(ID);
   };
-  auto getMDOrNull = [&](unsigned ID,
-                         bool AllowPlaceholders = true) -> Metadata * {
+  auto getMDOrNull = [&](unsigned ID) -> Metadata * {
     if (ID)
-      return getMD(ID - 1, AllowPlaceholders);
+      return getMD(ID - 1);
+    return nullptr;
+  };
+  auto getMDOrNullWithoutPlaceholders = [&](unsigned ID) -> Metadata * {
+    if (ID)
+      return MetadataList.getMetadataFwdRef(ID - 1);
     return nullptr;
   };
   auto getMDString = [&](unsigned ID) -> MDString *{
@@ -2331,8 +2335,7 @@ std::error_code BitcodeReader::parseMeta
       MetadataList.assignValue(CU, NextMetadataNo++);
 
       // Move the Upgrade the list of subprograms.
-      if (Metadata *SPs =
-              getMDOrNull(Record[11], /* AllowPlaceholders = */ false))
+      if (Metadata *SPs = getMDOrNullWithoutPlaceholders(Record[11]))
         CUSubprograms.push_back({CU, SPs});
       break;
     }




More information about the llvm-commits mailing list