From 8b0e14849283cf192f13320cf9cd9bed6b2901fe Mon Sep 17 00:00:00 2001
From: "Duncan P. N. Exon Smith" <dexonsmith@apple.com>
Date: Tue, 7 Apr 2015 09:55:04 -0700
Subject: [PATCH] Revert "Try a third time to fix MSVC build after r234290"

This reverts commit r234295 (and r234294 and r234292 before it).  I
removed the implicit conversion to `MDTuple*` r234326, so there's no
longer an ambiguity in `operator[]()`.

I think MSVC should accept the original code now...
---
 lib/CodeGen/AsmPrinter/DwarfUnit.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
index 253010c..f4c430a 100644
--- a/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
+++ b/lib/CodeGen/AsmPrinter/DwarfUnit.cpp
@@ -1015,11 +1015,11 @@ void DwarfUnit::constructTypeDIE(DIE &Buffer, DICompositeType CTy) {
     // Add return type. A void return won't have a type.
     auto Elements = cast<MDSubroutineType>(CTy)->getTypeArray();
     if (Elements.size())
-      if (MDType *RTy = resolve(DITypeRef(Elements[0u])))
+      if (auto RTy = resolve(Elements[0]))
         addType(Buffer, RTy);
 
     bool isPrototyped = true;
-    if (Elements.size() == 2 && !DITypeRef(Elements[1u]))
+    if (Elements.size() == 2 && !Elements[1])
       isPrototyped = false;
 
     constructSubprogramArguments(Buffer, Elements);
@@ -1318,7 +1318,7 @@ void DwarfUnit::applySubprogramAttributes(DISubprogram SP, DIE &SPDie,
   // Add a return type. If this is a type like a C/C++ void type we don't add a
   // return type.
   if (Args.size())
-    if (MDType *Ty = resolve(DITypeRef(Args[0u])))
+    if (auto Ty = resolve(Args[0]))
       addType(SPDie, Ty);
 
   unsigned VK = SP.getVirtuality();
-- 
2.3.2 (Apple Git-55)

