<div dir="ltr">This was reverted right after because it broke on MSVC bots, so if it's still broken, it wasn't me ;).</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 8, 2016 at 4:20 PM, Mike Aizatsky <span dir="ltr"><<a href="mailto:aizatsky@google.com" target="_blank">aizatsky@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Keno,<div><br></div><div>Either this or a previous commit has broken the asan build:</div><div><br></div><div><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/1229" target="_blank">http://lab.llvm.org:8011/<wbr>builders/sanitizer-x86_64-<wbr>linux-fast/builds/1229</a><br></div><div><br></div><div><div>==17795==ERROR: AddressSanitizer: heap-use-after-free on address 0x621000009090 at pc 0x000002752b3e bp 0x7ffdc28a1be0 sp 0x7ffdc28a1bd8</div><div>READ of size 4 at 0x621000009090 thread T0</div><div>    #0 0x2752b3d in getKeyLength /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/include/llvm/ADT/<wbr>StringMap.h:45:42</div><div>    #1 0x2752b3d in Destroy<llvm::<wbr>BumpPtrAllocatorImpl<llvm::<wbr>MallocAllocator, 4096, 4096> > /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/include/llvm/ADT/<wbr>StringMap.h:206</div><div>    #2 0x2752b3d in ~StringMap /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/include/llvm/ADT/<wbr>StringMap.h:439</div><div>    #3 0x2752b3d in ~DwarfStringPool /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/lib/CodeGen/<wbr>AsmPrinter/DwarfStringPool.h:<wbr>28</div><div>    #4 0x2752b3d in operator() /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/libcxx_build_asan/<wbr>include/c++/v1/memory:2398</div><div>    #5 0x2752b3d in reset /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/libcxx_build_asan/<wbr>include/c++/v1/memory:2604</div><div>    #6 0x2752b3d in ~unique_ptr /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/libcxx_build_asan/<wbr>include/c++/v1/memory:2572</div><div>    #7 0x2752b3d in llvm::dwarfgen::Generator::~<wbr>Generator() /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/lib/CodeGen/<wbr>DwarfGenerator.cpp:114</div><div>    #8 0x727d44 in operator() /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/libcxx_build_asan/<wbr>include/c++/v1/memory:2398:13</div><div>    #9 0x727d44 in reset /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/libcxx_build_asan/<wbr>include/c++/v1/memory:2604</div><div>    #10 0x727d44 in ~unique_ptr /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/libcxx_build_asan/<wbr>include/c++/v1/memory:2572</div><div>    #11 0x727d44 in ~Expected /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/include/llvm/<wbr>Support/Error.h:713</div><div>    #12 0x727d44 in void (anonymous namespace)::TestReferences<(<wbr>unsigned short)3, unsigned long>() /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/unittests/<wbr>DebugInfo/DWARF/<wbr>DWARFDebugInfoTest.cpp:747</div><div>    #13 0x34d0fec in HandleExceptionsInMethodIfSupp<wbr>orted<testing::Test, void> /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/utils/unittest/<wbr>googletest/src/gtest.cc:2145:<wbr>12</div><div>    #14 0x34d0fec in testing::Test::Run() /mnt/b/sanitizer-buildbot3/<wbr>sanitizer-x86_64-linux-fast/<wbr>build/llvm/utils/unittest/<wbr>googletest/src/gtest.cc:2161</div></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 7, 2016 at 5:52 PM Keno Fischer via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: kfischer<br class="m_8961683117210328673gmail_msg">
Date: Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
New Revision: 289013<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=289013&view=rev" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project?rev=289013&view=rev</a><br class="m_8961683117210328673gmail_msg">
Log:<br class="m_8961683117210328673gmail_msg">
[CodeGen] Fix invalid DWARF info on Win64<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
The relocations for `DIEEntry::EmitValue` were wrong for Win64<br class="m_8961683117210328673gmail_msg">
(emitting FK_Data_4 instead of FK_SecRel_4). This corrects that<br class="m_8961683117210328673gmail_msg">
oversight so that the DWARF data is correct in Win64 COFF files.<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Fixes PR15393.<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Patch by Jameson Nash <<a href="mailto:jameson@juliacomputing.com" class="m_8961683117210328673gmail_msg" target="_blank">jameson@juliacomputing.com</a>> based on a patch<br class="m_8961683117210328673gmail_msg">
by David Majnemer.<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Differential Revision: <a href="https://reviews.llvm.org/D21731" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">https://reviews.llvm.org/<wbr>D21731</a><br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified:<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/docs/Extensions.rst<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/include/llvm/MC/<wbr>MCStreamer.h<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/include/llvm/MC/<wbr>MCWinCOFFStreamer.h<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinter.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinterDwarf.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/CodeViewDebug.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/DIE.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/MC/<wbr>MCAsmStreamer.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/MC/MCCodeView.<wbr>cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/MC/MCParser/<wbr>COFFAsmParser.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/MC/MCStreamer.<wbr>cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/lib/MC/<wbr>WinCOFFStreamer.cpp<br class="m_8961683117210328673gmail_msg">
    llvm/trunk/test/DebugInfo/X86/<wbr>ref_addr_relocation.ll<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/docs/Extensions.rst<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Extensions.rst?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/docs/<wbr>Extensions.rst?rev=289013&r1=<wbr>289012&r2=289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/docs/Extensions.rst (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/docs/Extensions.rst Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -67,7 +67,7 @@ the target.  It corresponds to the COFF<br class="m_8961683117210328673gmail_msg">
     .long 4<br class="m_8961683117210328673gmail_msg">
     .long 242<br class="m_8961683117210328673gmail_msg">
     .long 40<br class="m_8961683117210328673gmail_msg">
-    .secrel32 _function_name<br class="m_8961683117210328673gmail_msg">
+    .secrel32 _function_name + 0<br class="m_8961683117210328673gmail_msg">
     .secidx   _function_name<br class="m_8961683117210328673gmail_msg">
     ...<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/include/llvm/MC/<wbr>MCStreamer.h<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCStreamer.h?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/MC/MCStreamer.h?rev=<wbr>289013&r1=289012&r2=289013&<wbr>view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/include/llvm/MC/<wbr>MCStreamer.h (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/include/llvm/MC/<wbr>MCStreamer.h Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -471,7 +471,7 @@ public:<br class="m_8961683117210328673gmail_msg">
   /// \brief Emits a COFF section relative relocation.<br class="m_8961683117210328673gmail_msg">
   ///<br class="m_8961683117210328673gmail_msg">
   /// \param Symbol - Symbol the section relative relocation should point to.<br class="m_8961683117210328673gmail_msg">
-  virtual void EmitCOFFSecRel32(MCSymbol const *Symbol);<br class="m_8961683117210328673gmail_msg">
+  virtual void EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset);<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
   /// \brief Emit an ELF .size directive.<br class="m_8961683117210328673gmail_msg">
   ///<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/include/llvm/MC/<wbr>MCWinCOFFStreamer.h<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCWinCOFFStreamer.h?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/include/<wbr>llvm/MC/MCWinCOFFStreamer.h?<wbr>rev=289013&r1=289012&r2=<wbr>289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/include/llvm/MC/<wbr>MCWinCOFFStreamer.h (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/include/llvm/MC/<wbr>MCWinCOFFStreamer.h Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -52,7 +52,7 @@ public:<br class="m_8961683117210328673gmail_msg">
   void EndCOFFSymbolDef() override;<br class="m_8961683117210328673gmail_msg">
   void EmitCOFFSafeSEH(MCSymbol const *Symbol) override;<br class="m_8961683117210328673gmail_msg">
   void EmitCOFFSectionIndex(MCSymbol const *Symbol) override;<br class="m_8961683117210328673gmail_msg">
-  void EmitCOFFSecRel32(MCSymbol const *Symbol) override;<br class="m_8961683117210328673gmail_msg">
+  void EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) override;<br class="m_8961683117210328673gmail_msg">
   void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,<br class="m_8961683117210328673gmail_msg">
                         unsigned ByteAlignment) override;<br class="m_8961683117210328673gmail_msg">
   void EmitLocalCommonSymbol(MCSymbol *Symbol, uint64_t Size,<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinter.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinter.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/AsmPrinter/AsmPrinter.<wbr>cpp?rev=289013&r1=289012&r2=<wbr>289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinter.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinter.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -1688,7 +1688,7 @@ void AsmPrinter::<wbr>EmitLabelPlusOffset(con<br class="m_8961683117210328673gmail_msg">
                                      unsigned Size,<br class="m_8961683117210328673gmail_msg">
                                      bool IsSectionRelative) const {<br class="m_8961683117210328673gmail_msg">
   if (MAI-><wbr>needsDwarfSectionOffsetDirecti<wbr>ve() && IsSectionRelative) {<br class="m_8961683117210328673gmail_msg">
-    OutStreamer->EmitCOFFSecRel32(<wbr>Label);<br class="m_8961683117210328673gmail_msg">
+    OutStreamer->EmitCOFFSecRel32(<wbr>Label, Offset);<br class="m_8961683117210328673gmail_msg">
     return;<br class="m_8961683117210328673gmail_msg">
   }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinterDwarf.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/AsmPrinter/<wbr>AsmPrinterDwarf.cpp?rev=<wbr>289013&r1=289012&r2=289013&<wbr>view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinterDwarf.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/AsmPrinterDwarf.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -149,7 +149,7 @@ void AsmPrinter::<wbr>emitDwarfSymbolReferenc<br class="m_8961683117210328673gmail_msg">
   if (!ForceOffset) {<br class="m_8961683117210328673gmail_msg">
     // On COFF targets, we have to emit the special .secrel32 directive.<br class="m_8961683117210328673gmail_msg">
     if (MAI-><wbr>needsDwarfSectionOffsetDirecti<wbr>ve()) {<br class="m_8961683117210328673gmail_msg">
-      OutStreamer->EmitCOFFSecRel32(<wbr>Label);<br class="m_8961683117210328673gmail_msg">
+      OutStreamer->EmitCOFFSecRel32(<wbr>Label, /*Offset=*/0);<br class="m_8961683117210328673gmail_msg">
       return;<br class="m_8961683117210328673gmail_msg">
     }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/CodeViewDebug.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/AsmPrinter/<wbr>CodeViewDebug.cpp?rev=289013&<wbr>r1=289012&r2=289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/CodeViewDebug.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/CodeViewDebug.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -801,7 +801,7 @@ void CodeViewDebug::<wbr>emitDebugInfoForFunc<br class="m_8961683117210328673gmail_msg">
     OS.AddComment("Function type index");<br class="m_8961683117210328673gmail_msg">
     OS.EmitIntValue(<wbr>getFuncIdForSubprogram(GV-><wbr>getSubprogram()).getIndex(), 4);<br class="m_8961683117210328673gmail_msg">
     OS.AddComment("Function section relative address");<br class="m_8961683117210328673gmail_msg">
-    OS.EmitCOFFSecRel32(Fn);<br class="m_8961683117210328673gmail_msg">
+    OS.EmitCOFFSecRel32(Fn, /*Offset=*/0);<br class="m_8961683117210328673gmail_msg">
     OS.AddComment("Function section index");<br class="m_8961683117210328673gmail_msg">
     OS.EmitCOFFSectionIndex(Fn);<br class="m_8961683117210328673gmail_msg">
     OS.AddComment("Flags");<br class="m_8961683117210328673gmail_msg">
@@ -2271,7 +2271,7 @@ void CodeViewDebug::<wbr>emitDebugInfoForGlob<br class="m_8961683117210328673gmail_msg">
   OS.AddComment("Type");<br class="m_8961683117210328673gmail_msg">
   OS.EmitIntValue(<wbr>getCompleteTypeIndex(DIGV-><wbr>getType()).getIndex(), 4);<br class="m_8961683117210328673gmail_msg">
   OS.AddComment("DataOffset");<br class="m_8961683117210328673gmail_msg">
-  OS.EmitCOFFSecRel32(GVSym);<br class="m_8961683117210328673gmail_msg">
+  OS.EmitCOFFSecRel32(GVSym, /*Offset=*/0);<br class="m_8961683117210328673gmail_msg">
   OS.AddComment("Segment");<br class="m_8961683117210328673gmail_msg">
   OS.EmitCOFFSectionIndex(<wbr>GVSym);<br class="m_8961683117210328673gmail_msg">
   OS.AddComment("Name");<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/DIE.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/AsmPrinter/DIE.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/<wbr>CodeGen/AsmPrinter/DIE.cpp?<wbr>rev=289013&r1=289012&r2=<wbr>289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/DIE.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/CodeGen/<wbr>AsmPrinter/DIE.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -642,7 +642,7 @@ void DIEEntry::EmitValue(const AsmPrinte<br class="m_8961683117210328673gmail_msg">
       MCSection *Section = Unit->getSection();<br class="m_8961683117210328673gmail_msg">
       if (Section) {<br class="m_8961683117210328673gmail_msg">
         const MCSymbol *SectionSym = Section->getBeginSymbol();<br class="m_8961683117210328673gmail_msg">
-        AP->EmitLabelPlusOffset(<wbr>SectionSym, Addr, SizeOf(AP, Form));<br class="m_8961683117210328673gmail_msg">
+        AP->EmitLabelPlusOffset(<wbr>SectionSym, Addr, SizeOf(AP, Form), true);<br class="m_8961683117210328673gmail_msg">
         return;<br class="m_8961683117210328673gmail_msg">
       }<br class="m_8961683117210328673gmail_msg">
     }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/MC/<wbr>MCAsmStreamer.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmStreamer.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/MC/<wbr>MCAsmStreamer.cpp?rev=289013&<wbr>r1=289012&r2=289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/MC/<wbr>MCAsmStreamer.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/MC/<wbr>MCAsmStreamer.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -150,7 +150,7 @@ public:<br class="m_8961683117210328673gmail_msg">
   void EndCOFFSymbolDef() override;<br class="m_8961683117210328673gmail_msg">
   void EmitCOFFSafeSEH(MCSymbol const *Symbol) override;<br class="m_8961683117210328673gmail_msg">
   void EmitCOFFSectionIndex(MCSymbol const *Symbol) override;<br class="m_8961683117210328673gmail_msg">
-  void EmitCOFFSecRel32(MCSymbol const *Symbol) override;<br class="m_8961683117210328673gmail_msg">
+  void EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) override;<br class="m_8961683117210328673gmail_msg">
   void emitELFSize(MCSymbol *Symbol, const MCExpr *Value) override;<br class="m_8961683117210328673gmail_msg">
   void EmitCommonSymbol(MCSymbol *Symbol, uint64_t Size,<br class="m_8961683117210328673gmail_msg">
                         unsigned ByteAlignment) override;<br class="m_8961683117210328673gmail_msg">
@@ -614,9 +614,11 @@ void MCAsmStreamer::<wbr>EmitCOFFSectionIndex<br class="m_8961683117210328673gmail_msg">
   EmitEOL();<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
-void MCAsmStreamer::<wbr>EmitCOFFSecRel32(MCSymbol const *Symbol) {<br class="m_8961683117210328673gmail_msg">
+void MCAsmStreamer::<wbr>EmitCOFFSecRel32(MCSymbol const *Symbol, uint64_t Offset) {<br class="m_8961683117210328673gmail_msg">
   OS << "\t.secrel32\t";<br class="m_8961683117210328673gmail_msg">
   Symbol->print(OS, MAI);<br class="m_8961683117210328673gmail_msg">
+  if (Offset != 0)<br class="m_8961683117210328673gmail_msg">
+    OS << '+' << Offset;<br class="m_8961683117210328673gmail_msg">
   EmitEOL();<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/MC/MCCodeView.<wbr>cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCCodeView.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/MC/<wbr>MCCodeView.cpp?rev=289013&r1=<wbr>289012&r2=289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/MC/MCCodeView.<wbr>cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/MC/MCCodeView.<wbr>cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -200,7 +200,7 @@ void CodeViewContext::<wbr>emitLineTableForFu<br class="m_8961683117210328673gmail_msg">
   OS.EmitIntValue(unsigned(<wbr>ModuleSubstreamKind::Lines), 4);<br class="m_8961683117210328673gmail_msg">
   OS.emitAbsoluteSymbolDiff(<wbr>LineEnd, LineBegin, 4);<br class="m_8961683117210328673gmail_msg">
   OS.EmitLabel(LineBegin);<br class="m_8961683117210328673gmail_msg">
-  OS.EmitCOFFSecRel32(FuncBegin)<wbr>;<br class="m_8961683117210328673gmail_msg">
+  OS.EmitCOFFSecRel32(FuncBegin, /*Offset=*/0);<br class="m_8961683117210328673gmail_msg">
   OS.EmitCOFFSectionIndex(<wbr>FuncBegin);<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
   // Actual line info.<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/MC/MCParser/<wbr>COFFAsmParser.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/COFFAsmParser.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/MC/<wbr>MCParser/COFFAsmParser.cpp?<wbr>rev=289013&r1=289012&r2=<wbr>289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/MC/MCParser/<wbr>COFFAsmParser.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/MC/MCParser/<wbr>COFFAsmParser.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -455,13 +455,26 @@ bool COFFAsmParser::<wbr>ParseDirectiveSecRel<br class="m_8961683117210328673gmail_msg">
   if (getParser().parseIdentifier(<wbr>SymbolID))<br class="m_8961683117210328673gmail_msg">
     return TokError("expected identifier in directive");<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
+  int64_t Offset = 0;<br class="m_8961683117210328673gmail_msg">
+  SMLoc OffsetLoc;<br class="m_8961683117210328673gmail_msg">
+  if (getLexer().is(AsmToken::Plus)<wbr>) {<br class="m_8961683117210328673gmail_msg">
+    OffsetLoc = getLexer().getLoc();<br class="m_8961683117210328673gmail_msg">
+    if (getParser().<wbr>parseAbsoluteExpression(<wbr>Offset))<br class="m_8961683117210328673gmail_msg">
+      return true;<br class="m_8961683117210328673gmail_msg">
+  }<br class="m_8961683117210328673gmail_msg">
+<br class="m_8961683117210328673gmail_msg">
   if (getLexer().isNot(AsmToken::<wbr>EndOfStatement))<br class="m_8961683117210328673gmail_msg">
     return TokError("unexpected token in directive");<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
+  if (Offset < 0 || Offset > UINT32_MAX)<br class="m_8961683117210328673gmail_msg">
+    return Error(OffsetLoc,<br class="m_8961683117210328673gmail_msg">
+                 "invalid '.secrel32' directive offset, can't be less "<br class="m_8961683117210328673gmail_msg">
+                 "than zero or greater than UINT32_MAX");<br class="m_8961683117210328673gmail_msg">
+<br class="m_8961683117210328673gmail_msg">
   MCSymbol *Symbol = getContext().<wbr>getOrCreateSymbol(SymbolID);<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
   Lex();<br class="m_8961683117210328673gmail_msg">
-  getStreamer().<wbr>EmitCOFFSecRel32(Symbol);<br class="m_8961683117210328673gmail_msg">
+  getStreamer().<wbr>EmitCOFFSecRel32(Symbol, Offset);<br class="m_8961683117210328673gmail_msg">
   return false;<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/MC/MCStreamer.<wbr>cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCStreamer.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/MC/<wbr>MCStreamer.cpp?rev=289013&r1=<wbr>289012&r2=289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/MC/MCStreamer.<wbr>cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/MC/MCStreamer.<wbr>cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -125,7 +125,7 @@ void MCStreamer::EmitSymbolValue(<wbr>const M<br class="m_8961683117210328673gmail_msg">
   if (!IsSectionRelative)<br class="m_8961683117210328673gmail_msg">
     EmitValueImpl(<wbr>MCSymbolRefExpr::create(Sym, getContext()), Size);<br class="m_8961683117210328673gmail_msg">
   else<br class="m_8961683117210328673gmail_msg">
-    EmitCOFFSecRel32(Sym);<br class="m_8961683117210328673gmail_msg">
+    EmitCOFFSecRel32(Sym, /*Offset=*/0);<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
 void MCStreamer::EmitDTPRel64Value(<wbr>const MCExpr *Value) {<br class="m_8961683117210328673gmail_msg">
@@ -689,8 +689,7 @@ void MCStreamer::EmitCOFFSafeSEH(<wbr>MCSymbo<br class="m_8961683117210328673gmail_msg">
 void MCStreamer::<wbr>EmitCOFFSectionIndex(MCSymbol const *Symbol) {<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
-void MCStreamer::EmitCOFFSecRel32(<wbr>MCSymbol const *Symbol) {<br class="m_8961683117210328673gmail_msg">
-}<br class="m_8961683117210328673gmail_msg">
+void MCStreamer::EmitCOFFSecRel32(<wbr>MCSymbol const *Symbol, uint64_t Offset) {}<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
 /// EmitRawText - If this file is backed by an assembly streamer, this dumps<br class="m_8961683117210328673gmail_msg">
 /// the specified string in the output .s file.  This capability is<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/lib/MC/<wbr>WinCOFFStreamer.cpp<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/WinCOFFStreamer.cpp?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/lib/MC/<wbr>WinCOFFStreamer.cpp?rev=<wbr>289013&r1=289012&r2=289013&<wbr>view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/lib/MC/<wbr>WinCOFFStreamer.cpp (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/lib/MC/<wbr>WinCOFFStreamer.cpp Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -195,11 +195,20 @@ void MCWinCOFFStreamer::<wbr>EmitCOFFSectionI<br class="m_8961683117210328673gmail_msg">
   DF->getContents().resize(DF-><wbr>getContents().size() + 2, 0);<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
-void MCWinCOFFStreamer::<wbr>EmitCOFFSecRel32(MCSymbol const *Symbol) {<br class="m_8961683117210328673gmail_msg">
+void MCWinCOFFStreamer::<wbr>EmitCOFFSecRel32(MCSymbol const *Symbol,<br class="m_8961683117210328673gmail_msg">
+                                         uint64_t Offset) {<br class="m_8961683117210328673gmail_msg">
   MCDataFragment *DF = getOrCreateDataFragment();<br class="m_8961683117210328673gmail_msg">
-  const MCSymbolRefExpr *SRE = MCSymbolRefExpr::create(<wbr>Symbol, getContext());<br class="m_8961683117210328673gmail_msg">
-  MCFixup Fixup = MCFixup::create(DF-><wbr>getContents().size(), SRE, FK_SecRel_4);<br class="m_8961683117210328673gmail_msg">
+  // Create Symbol A for the relocation relative reference.<br class="m_8961683117210328673gmail_msg">
+  const MCExpr *MCE = MCSymbolRefExpr::create(<wbr>Symbol, getContext());<br class="m_8961683117210328673gmail_msg">
+  // Add the constant offset, if given.<br class="m_8961683117210328673gmail_msg">
+  if (Offset)<br class="m_8961683117210328673gmail_msg">
+    MCE = MCBinaryExpr::createAdd(<br class="m_8961683117210328673gmail_msg">
+        MCE, MCConstantExpr::create(Offset, getContext()), getContext());<br class="m_8961683117210328673gmail_msg">
+  // Build the secrel32 relocation.<br class="m_8961683117210328673gmail_msg">
+  MCFixup Fixup = MCFixup::create(DF-><wbr>getContents().size(), MCE, FK_SecRel_4);<br class="m_8961683117210328673gmail_msg">
+  // Record the relocation.<br class="m_8961683117210328673gmail_msg">
   DF->getFixups().push_back(<wbr>Fixup);<br class="m_8961683117210328673gmail_msg">
+  // Emit 4 bytes (zeros) to the object file.<br class="m_8961683117210328673gmail_msg">
   DF->getContents().resize(DF-><wbr>getContents().size() + 4, 0);<br class="m_8961683117210328673gmail_msg">
 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
Modified: llvm/trunk/test/DebugInfo/X86/<wbr>ref_addr_relocation.ll<br class="m_8961683117210328673gmail_msg">
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/ref_addr_relocation.ll?rev=289013&r1=289012&r2=289013&view=diff" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-<wbr>project/llvm/trunk/test/<wbr>DebugInfo/X86/ref_addr_<wbr>relocation.ll?rev=289013&r1=<wbr>289012&r2=289013&view=diff</a><br class="m_8961683117210328673gmail_msg">
==============================<wbr>==============================<wbr>==================<br class="m_8961683117210328673gmail_msg">
--- llvm/trunk/test/DebugInfo/X86/<wbr>ref_addr_relocation.ll (original)<br class="m_8961683117210328673gmail_msg">
+++ llvm/trunk/test/DebugInfo/X86/<wbr>ref_addr_relocation.ll Wed Dec  7 19:40:21 2016<br class="m_8961683117210328673gmail_msg">
@@ -1,10 +1,22 @@<br class="m_8961683117210328673gmail_msg">
-; RUN: llc -filetype=asm -O0 -mtriple=x86_64-linux-gnu < %s | FileCheck %s<br class="m_8961683117210328673gmail_msg">
-; RUN: llc -filetype=obj -O0 %s -mtriple=x86_64-linux-gnu -o %t<br class="m_8961683117210328673gmail_msg">
-; RUN: llvm-dwarfdump %t | FileCheck %s -check-prefix=CHECK-DWARF<br class="m_8961683117210328673gmail_msg">
-<br class="m_8961683117210328673gmail_msg">
-; RUN: llc -filetype=asm -O0 -mtriple=x86_64-apple-darwin < %s | FileCheck --check-prefix=DARWIN-ASM %s<br class="m_8961683117210328673gmail_msg">
-; RUN: llc -filetype=obj %s -mtriple=x86_64-apple-darwin -o %t2<br class="m_8961683117210328673gmail_msg">
-; RUN: llvm-dwarfdump %t2 | FileCheck %s -check-prefix=DARWIN-DWARF<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=asm -O0 -mtriple=x86_64-linux-gnu < %s -dwarf-version 2 | FileCheck -check-prefixes=CHECK,ELF-ASM %s<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=obj -O0 %s -mtriple=x86_64-linux-gnu -o %t-2 -dwarf-version 2<br class="m_8961683117210328673gmail_msg">
+; RUN: llvm-dwarfdump %t-2 | FileCheck %s -check-prefix=CHECK-DWARF<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=obj -O0 %s -mtriple=x86_64-linux-gnu -o %t-4 -dwarf-version 2<br class="m_8961683117210328673gmail_msg">
+; RUN: llvm-dwarfdump %t-4 | FileCheck %s -check-prefix=CHECK-DWARF<br class="m_8961683117210328673gmail_msg">
+<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=asm -O0 -mtriple=x86_64-apple-darwin < %s -dwarf-version 2 | FileCheck -check-prefixes=CHECK,DARWIN-<wbr>ASM2 %s<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=asm -O0 -mtriple=x86_64-apple-darwin < %s -dwarf-version 4 | FileCheck -check-prefixes=CHECK,DARWIN-<wbr>ASM4 %s<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=obj %s -mtriple=x86_64-apple-darwin -o %t2-2 -dwarf-version 2<br class="m_8961683117210328673gmail_msg">
+; RUN: llvm-dwarfdump %t2-2 | FileCheck %s -check-prefix=CHECK-DWARF<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=obj %s -mtriple=x86_64-apple-darwin -o %t2-4 -dwarf-version 4<br class="m_8961683117210328673gmail_msg">
+; RUN: llvm-dwarfdump %t2-4 | FileCheck %s -check-prefix=CHECK-DWARF<br class="m_8961683117210328673gmail_msg">
+<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=asm -O0 -mtriple=x86_64-pc-win32 < %s -dwarf-version 2 | FileCheck -check-prefixes=CHECK,COFF-ASM %s<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=asm -O0 -mtriple=x86_64-pc-win32 < %s -dwarf-version 4 | FileCheck -check-prefixes=CHECK,COFF-ASM %s<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=obj -O0 %s -mtriple=x86_64-pc-win32 -o %t3-2 -dwarf-version 2<br class="m_8961683117210328673gmail_msg">
+; RUN: llvm-dwarfdump %t3-2 | FileCheck %s -check-prefix=CHECK-DWARF2<br class="m_8961683117210328673gmail_msg">
+; RUN: llc -filetype=obj -O0 %s -mtriple=x86_64-pc-win32 -o %t3-4 -dwarf-version 4<br class="m_8961683117210328673gmail_msg">
+; RUN: llvm-dwarfdump %t3-4 | FileCheck %s -check-prefix=CHECK-DWARF<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
 ; Testing case generated from:<br class="m_8961683117210328673gmail_msg">
 ; clang++ tu1.cpp tu2.cpp -g -emit-llvm -c<br class="m_8961683117210328673gmail_msg">
@@ -22,7 +34,10 @@<br class="m_8961683117210328673gmail_msg">
 ; Make sure we use relocation for ref_addr on non-darwin platforms.<br class="m_8961683117210328673gmail_msg">
 ; CHECK: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
 ; CHECK: DW_TAG_variable<br class="m_8961683117210328673gmail_msg">
-; CHECK: .long [[TYPE:.*]] # DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; ELF-ASM: .long [[TYPE:.*]] # DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; DARWIN-ASM2: .long [[TYPE:.*]] ## DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; DARWIN-ASM4: .long [[TYPE:.*]] ## DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; COFF-ASM: .long [[TYPE:.*]] # DW_AT_type<br class="m_8961683117210328673gmail_msg">
 ; CHECK: DW_TAG_structure_type<br class="m_8961683117210328673gmail_msg">
 ; CHECK: cu_begin1<br class="m_8961683117210328673gmail_msg">
 ; CHECK: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
@@ -30,25 +45,24 @@<br class="m_8961683117210328673gmail_msg">
 ; This variable's type is in the 1st CU.<br class="m_8961683117210328673gmail_msg">
 ; CHECK: DW_TAG_variable<br class="m_8961683117210328673gmail_msg">
 ; Make sure this is relocatable.<br class="m_8961683117210328673gmail_msg">
-; CHECK: .quad .Lsection_info+[[TYPE]] # DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; and test that we don't create the labels to emit a correct COFF relocation<br class="m_8961683117210328673gmail_msg">
+; ELF-ASM: .quad .Lsection_info+[[TYPE]] # DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; COFF-ASM: .secrel32 .Lsection_info+[[TYPE]] # DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; DARWIN-ASM2: .quad [[TYPE]] ## DW_AT_type<br class="m_8961683117210328673gmail_msg">
+; DARWIN-ASM4: .long [[TYPE]] ## DW_AT_type<br class="m_8961683117210328673gmail_msg">
 ; CHECK-NOT: DW_TAG_structure_type<br class="m_8961683117210328673gmail_msg">
 ; CHECK: .section<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
-; test that we don't create useless labels<br class="m_8961683117210328673gmail_msg">
-; DARWIN-ASM: .long [[TYPE:.*]] ## DW_AT_type<br class="m_8961683117210328673gmail_msg">
-; DARWIN-ASM: .quad [[TYPE]] ## DW_AT_type<br class="m_8961683117210328673gmail_msg">
-<br class="m_8961683117210328673gmail_msg">
 ; CHECK-DWARF: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
 ; CHECK-DWARF: 0x[[ADDR:.*]]: DW_TAG_structure_type<br class="m_8961683117210328673gmail_msg">
 ; CHECK-DWARF: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
 ; CHECK-DWARF: DW_TAG_variable<br class="m_8961683117210328673gmail_msg">
 ; CHECK-DWARF: DW_AT_type [DW_FORM_ref_addr] {{.*}}[[ADDR]])<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
-; DARWIN-DWARF: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
-; DARWIN-DWARF: 0x[[ADDR:.*]]: DW_TAG_structure_type<br class="m_8961683117210328673gmail_msg">
-; DARWIN-DWARF: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
-; DARWIN-DWARF: DW_TAG_variable<br class="m_8961683117210328673gmail_msg">
-; DARWIN-DWARF: DW_AT_type [DW_FORM_ref_addr] {{.*}}[[ADDR]])<br class="m_8961683117210328673gmail_msg">
+; CHECK-DWARF2: DW_TAG_compile_unit<br class="m_8961683117210328673gmail_msg">
+; CHECK-DWARF2: DW_TAG_variable<br class="m_8961683117210328673gmail_msg">
+; CHECK-DWARF2: DW_AT_type [DW_FORM_ref4] {{.*}} => {[[ADDR:.*]]})<br class="m_8961683117210328673gmail_msg">
+; CHECK-DWARF2: [[ADDR]]: DW_TAG_structure_type<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
 %struct.foo = type { i8 }<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
<br class="m_8961683117210328673gmail_msg">
______________________________<wbr>_________________<br class="m_8961683117210328673gmail_msg">
llvm-commits mailing list<br class="m_8961683117210328673gmail_msg">
<a href="mailto:llvm-commits@lists.llvm.org" class="m_8961683117210328673gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="m_8961683117210328673gmail_msg">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="m_8961683117210328673gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/llvm-commits</a><span class="HOEnZb"><font color="#888888"><br class="m_8961683117210328673gmail_msg">
</font></span></blockquote></div><span class="HOEnZb"><font color="#888888"><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature"><div dir="ltr">Mike<br>Sent from phone</div></div>
</font></span></blockquote></div><br></div>