<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I’ve just committed the fix. My apologies for the inconvenience!<div class=""><br class=""></div><div class="">Jonas<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Sep 14, 2017, at 6:46 PM, Adrian Prantl <<a href="mailto:aprantl@apple.com" class="">aprantl@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=us-ascii" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">That one looks like +Jonas' recent commit.<div class=""><br class=""></div><div class="">-- adrian</div><div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Sep 14, 2017, at 10:44 AM, Kostya Serebryany <<a href="mailto:kcc@google.com" class="">kcc@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Also: <div class=""><a href="http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7880/steps/check-llvm%20asan/logs/stdio" class="">http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/7880/steps/check-llvm%20asan/logs/stdio</a><br class=""></div><div class=""><pre style="font-family: 'Courier New', courier, monotype, monospace; font-size: inherit;" class=""><span class="gmail-stdout">==12853==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x6030000040d8 at pc 0x000002e24a57 bp 0x7ffdd544e830 sp 0x7ffdd544e828
READ of size 8 at 0x6030000040d8 thread T0
    #0 0x2e24a56 in llvm::DWARFVerifier::DieRangeInfo::intersects(llvm::DWARFVerifier::DieRangeInfo const&) const /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp:92:27
    #1 0x8cb6d8 in (anonymous namespace)::(anonymous namespace)::AssertRangesDontIntersect(llvm::DWARFVerifier::DieRangeInfo const&, std::__1::vector<llvm::DWARFAddressRange, std::__1::allocator<llvm::DWARFAddressRange> > const&) /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp:2894:3
    #2 0x8c9349 in (anonymous namespace)::DWARFDebugInfo_TestDWARFDieRangeInfoIntersects_Test::TestBody() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp:2963:3
    #3 0x3281c3e in HandleExceptionsInMethodIfSupported<testing::Test, void> /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:2458/" class="">gtest.cc:2458</a>:12
    #4 0x3281c3e in testing::Test::Run() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:2474/" class="">gtest.cc:2474</a>
    #5 0x3283f38 in testing::TestInfo::Run() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:2656/" class="">gtest.cc:2656</a>:11
    #6 0x3285276 in testing::TestCase::Run() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:2774/" class="">gtest.cc:2774</a>:28
    #7 0x32a5c76 in testing::internal::UnitTestImpl::RunAllTests() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:4649/" class="">gtest.cc:4649</a>:43
    #8 0x32a4f6e in HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool> /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:2458/" class="">gtest.cc:2458</a>:12
    #9 0x32a4f6e in testing::UnitTest::Run() /mnt/b/sanitizer-buildbot3/sanitizer-x86_64-linux-fast/build/llvm/utils/unittest/googletest/src/<a href="http://gtest.cc:4257/" class="">gtest.cc:4257</a>
</span></pre></div><div class=""><span class="gmail-stdout"><br class=""></span></div></div><div class="gmail_extra"><br class=""><div class="gmail_quote">On Thu, Sep 14, 2017 at 9:15 AM, Yung, Douglas via llvm-commits <span dir="ltr" class=""><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank" class="">llvm-commits@lists.llvm.org</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Adrian,<br class="">
<br class="">
That change appears to not have fixed it as it is still failing on the build bot as of r313267 on the PS4 Windows bot (<a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/12119/steps/test/logs/stdio" rel="noreferrer" target="_blank" class="">http://lab.llvm.org:8011/<wbr class="">builders/llvm-clang-lld-x86_<wbr class="">64-scei-ps4-windows10pro-fast/<wbr class="">builds/12119/steps/test/logs/<wbr class="">stdio</a>) and as of r313268 on the PS4 Linux bot (<a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/17299/steps/test/logs/stdio" rel="noreferrer" target="_blank" class="">http://lab.llvm.org:8011/<wbr class="">builders/llvm-clang-lld-x86_<wbr class="">64-scei-ps4-ubuntu-fast/<wbr class="">builds/17299/steps/test/logs/<wbr class="">stdio</a>).<br class="">
<br class="">
Douglas Yung<br class="">
<span class=""><br class="">
> -----Original Message-----<br class="">
> From: <a href="mailto:aprantl@apple.com" class="">aprantl@apple.com</a> [mailto:<a href="mailto:aprantl@apple.com" class="">aprantl@apple.com</a>]<br class="">
> Sent: Thursday, September 14, 2017 8:45<br class="">
> To: Yung, Douglas<br class="">
> Cc: <a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
> Subject: Re: [llvm] r313207 - llvm-dwarfdump: automatically dump both regular<br class="">
> and .dwo variant of sections<br class="">
><br class="">
</span><div class=""><div class="h5">> Should be fixed by<br class="">
><br class="">
> Author: adrian<br class="">
> Date: Wed Sep 13 15:30:43 2017<br class="">
> New Revision: 313209<br class="">
><br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=313209&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project?rev=313209&view=rev</a><br class="">
> Log:<br class="">
> Update testcase that was XFAILed on Darwin for llvm-dwarfdump change.<br class="">
><br class="">
> Modified:<br class="">
>    llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll<br class="">
><br class="">
> Modified: llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll<br class="">
> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> project/llvm/trunk/test/<wbr class="">DebugInfo/Inputs/gmlt.ll?rev=<wbr class="">313209&r1=313208&r2=31320<br class="">
> 9&view=diff<br class="">
> ==============================<wbr class="">==============================<wbr class="">==================<br class="">
> --- llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll (original)<br class="">
> +++ llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll Wed Sep 13 15:30:43 2017<br class="">
> @@ -89,7 +89,6 @@<br class="">
> ; Check that we don't emit any pubnames or pubtypes under -gmlt ; CHECK-NOT:<br class="">
> .debug_pubnames contents:<br class="">
> ; CHECK-NOT: .debug_pubtypes contents:<br class="">
> -; CHECK: .apple{{.*}} contents:<br class="">
><br class="">
> ; Function Attrs: nounwind uwtable<br class="">
> define void @_Z2f1v() #0 !dbg !4 {<br class="">
><br class="">
> -- adrian<br class="">
><br class="">
> > On Sep 13, 2017, at 6:11 PM, Yung, Douglas <<a href="mailto:douglas.yung@sony.com" class="">douglas.yung@sony.com</a>> wrote:<br class="">
> ><br class="">
> > Hi Adrian,<br class="">
> ><br class="">
> > Your commit seems to be causing the PS4 bots (both Windows and Linux) to<br class="">
> fail on the test DebugInfo\Generic\empty.ll with output similar to this:<br class="">
> ><br class="">
> > ******************** TEST 'LLVM :: DebugInfo/Generic/empty.ll' FAILED<br class="">
> > ********************<br class="">
> > Script:<br class="">
> > --<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.obj/./bin/llc <<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.src/test/DebugInfo/<wbr class="">Generic/empty.ll -filetype=obj |<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.obj/./bin/llvm-<wbr class="">dwarfdump -v - |<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.obj/./bin/FileCheck<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.src/test/DebugInfo/<wbr class="">Generic/empty.ll<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.obj/./bin/llc -split-dwarf-file=foo.dwo <<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.src/test/DebugInfo/<wbr class="">Generic/empty.ll -filetype=obj |<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.obj/./bin/llvm-<wbr class="">dwarfdump -v - |<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.obj/./bin/FileCheck --check-prefix=FISSION<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.src/test/DebugInfo/<wbr class="">Generic/empty.ll<br class="">
> > --<br class="">
> > Exit Code: 1<br class="">
> ><br class="">
> > Command Output (stderr):<br class="">
> > --<br class="">
> > /home/buildslave/buildslave1a/<wbr class="">llvm-clang-lld-x86_64-scei-<wbr class="">ps4-ubuntu-fa<br class="">
> > st/llvm.src/test/DebugInfo/<wbr class="">Generic/empty.ll:15:10: error: expected string<br class="">
> not found in input ; CHECK: .debug_pubnames contents:<br class="">
> >         ^<br class="">
> > <stdin>:40:2: note: scanning from here<br class="">
> > version: 2<br class="">
> > ^<br class="">
> > <stdin>:61:1: note: possible intended match here .debug_str contents:<br class="">
> > ^<br class="">
> ><br class="">
> > Can you take a look?<br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> >> -----Original Message-----<br class="">
> >> From: llvm-commits [mailto:<a href="mailto:llvm-commits-bounces@lists.llvm.org" class="">llvm-commits-bounces@<wbr class="">lists.llvm.org</a>] On<br class="">
> >> Behalf Of Adrian Prantl via llvm-commits<br class="">
> >> Sent: Wednesday, September 13, 2017 15:09<br class="">
> >> To: <a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
> >> Subject: [llvm] r313207 - llvm-dwarfdump: automatically dump both<br class="">
> >> regular and .dwo variant of sections<br class="">
> >><br class="">
> >> Author: adrian<br class="">
> >> Date: Wed Sep 13 15:09:01 2017<br class="">
> >> New Revision: 313207<br class="">
> >><br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=313207&view=rev" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project?rev=313207&view=rev</a><br class="">
> >> Log:<br class="">
> >> llvm-dwarfdump: automatically dump both regular and .dwo variant of<br class="">
> >> sections<br class="">
> >><br class="">
> >> Since users typically don't really care about the .dwo / non.dwo<br class="">
> >> distinction, this patch makes it so dwarfdump --debug-<info,...><br class="">
> >> dumps .debug_info and (if<br class="">
> >> available) also .debug_info.dwo. This simplifies the command line<br class="">
> >> interface (I've removed all dwo-specific dump<br class="">
> >> options) and makes the tool friendlier to use.<br class="">
> >><br class="">
> >> Differential Revision: <a href="https://reviews.llvm.org/D37771" rel="noreferrer" target="_blank" class="">https://reviews.llvm.org/<wbr class="">D37771</a><br class="">
> >><br class="">
> >> Modified:<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">BinaryFormat/Dwarf.def<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DIContext.h<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFContext.h<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugAbbrev.h<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugFrame.h<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFDebugLoc.<wbr class="">h<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugMacro.h<br class="">
> >>    llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFUnitIndex.h<br class="">
> >>    llvm/trunk/lib/DebugInfo/<wbr class="">DWARF/DWARFContext.cpp<br class="">
> >>    llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-inline.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-no-inlining.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-ranges.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">generate-odr-hash.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">gnu-public-names-gmlt.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-cross-unit-<wbr class="">reference.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-multiple-cu-hash.<wbr class="">ll<br class="">
> >>    llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-omit-empty.ll<br class="">
> >>    llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dump-flags.test<br class="">
> >>    llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dwp.test<br class="">
> >>    llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-multiple-sections-dwarf-2.<wbr class="">s<br class="">
> >>    llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-no-code.s<br class="">
> >>    llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-nonstandard-section.s<br class="">
> >>    llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-single-section.s<br class="">
> >>    llvm/trunk/test/tools/<wbr class="">dsymutil/X86/basic-linking-<wbr class="">x86.test<br class="">
> >>    llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/empty.test<br class="">
> >>    llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/simple.test<br class="">
> >>    llvm/trunk/tools/llvm-<wbr class="">dwarfdump/llvm-dwarfdump.cpp<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">BinaryFormat/Dwarf.def<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/BinaryFormat/Dwarf.def?<wbr class="">rev=313207&r1=<br class="">
> >> 313206&r2<br class="">
> >> =313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">BinaryFormat/Dwarf.def (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">BinaryFormat/Dwarf.def Wed Sep 13<br class="">
</div></div>> >> +++ 15:09:01<br class="">
<div class=""><div class="h5">> >> +++ 2017<br class="">
> >> @@ -823,21 +823,16 @@ HANDLE_DW_UT(0x04, skeleton)<br class="">
> >> HANDLE_DW_UT(0x05,<br class="">
> >> split_compile)  HANDLE_DW_UT(0x06, split_type)<br class="">
> >><br class="">
> >> -// DWARF section types. (enum name, ELF name, cmdline name)<br class="">
> >> +// DWARF section types. (enum name, ELF name, ELF DWO name, cmdline<br class="">
> >> +name)<br class="">
> >> // Note that these IDs don't mean anything.<br class="">
> >> // TODO: Add Mach-O and COFF names.<br class="">
> >> // Official DWARF sections.<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugAbbrev, ".debug_abbrev", "debug-abbrev") -<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugAbbrevDwo, ".debug_abbrev.dwo",<br class="">
> >> "debug-abbrev-dwo") HANDLE_DWARF_SECTION(<wbr class="">DebugAranges,<br class="">
> >> ".debug_aranges", "debug-aranges") HANDLE_DWARF_SECTION(<wbr class="">DebugInfo,<br class="">
> >> ".debug_info", "debug-info") - HANDLE_DWARF_SECTION(<wbr class="">DebugInfoDwo,<br class="">
> >> ".debug_info.dwo", "debug-info-dwo") HANDLE_DWARF_SECTION(<wbr class="">DebugTypes,<br class="">
> >> ".debug_types", "debug-types") - HANDLE_DWARF_SECTION(<wbr class="">DebugTypesDwo,<br class="">
> >> ".debug_types.dwo", "debug-types-dwo")<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugLine, ".debug_line", "debug-line") -<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugLineDwo, ".debug_line.dwo",<br class="">
> >> "debug-line-dwo") HANDLE_DWARF_SECTION(DebugLoc, ".debug_loc",<br class="">
> >> "debug-loc") - HANDLE_DWARF_SECTION(<wbr class="">DebugLocDwo, ".debug_loc.dwo",<br class="">
> >> "debug-loc-dwo") HANDLE_DWARF_SECTION(<wbr class="">DebugFrames, ".debug_frames",<br class="">
> >> "debug-frames") HANDLE_DWARF_SECTION(<wbr class="">DebugMacro, ".debug_macro",<br class="">
> >> "debug-macro") HANDLE_DWARF_SECTION(<wbr class="">DebugRanges, ".debug_ranges",<br class="">
> >> "debug-ranges") @@ -847,8<br class="">
> >> +842,6 @@ HANDLE_DWARF_SECTION(<wbr class="">DebugGnuPubnames, "<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugGnuPubtypes, ".debug_gnu_pubtypes",<br class="">
> >> "debug-gnu-<br class="">
> >> pubtypes")  HANDLE_DWARF_SECTION(DebugStr, ".debug_str", "debug-str")<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugStrOffsets, ".debug_str_offsets",<br class="">
> >> "debug-str-<br class="">
> >> offsets") -HANDLE_DWARF_SECTION(<wbr class="">DebugStrDwo, ".debug_str.dwo",<br class="">
> >> "debug-str-<br class="">
> >> dwo") -HANDLE_DWARF_SECTION(<wbr class="">DebugStrOffsetsDwo,<br class="">
> >> ".debug_str_offsets.dwo",<br class="">
> >> "debug-str-offsets-dwo")  HANDLE_DWARF_SECTION(<wbr class="">DebugCUIndex,<br class="">
> >> ".debug_cu_index", "debug-cu-index")<br class="">
> >> HANDLE_DWARF_SECTION(<wbr class="">DebugTUIndex,<br class="">
> >> ".debug_tu_index", "debug-tu-index")  // Vendor extensions.<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DIContext.h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DIContext.h?<wbr class="">rev=313207&r1=3<br class="">
> >> 13206&r2=<br class="">
> >> 313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DIContext.h (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DIContext.h Wed Sep 13 15:09:01<br class="">
> >> +++ 2017<br class="">
> >> @@ -122,14 +122,14 @@ enum DIDumpTypeCounter {<br class="">
> >>   DIDT_ID_UUID,<br class="">
> >>   DIDT_ID_Count<br class="">
> >> };<br class="">
> >> -static_assert(DIDT_ID_Count <= 64, "section types overflow<br class="">
> >> storage");<br class="">
> >> +static_assert(DIDT_ID_Count <= 32, "section types overflow<br class="">
</div></div>> >> +storage");<br class="">
<div class=""><div class="h5">> >><br class="">
> >> /// Selects which debug sections get dumped.<br class="">
> >> -enum DIDumpType : uint64_t {<br class="">
> >> +enum DIDumpType : unsigned {<br class="">
> >>   DIDT_Null,<br class="">
> >> -  DIDT_All             = ~0ULL,<br class="">
> >> +  DIDT_All             = ~0U,<br class="">
> >> #define HANDLE_DWARF_SECTION(ENUM_<wbr class="">NAME, ELF_NAME, CMDLINE_NAME) \<br class="">
> >> -  DIDT_##ENUM_NAME = 1 << (DIDT_ID_##ENUM_NAME - 1),<br class="">
> >> +  DIDT_##ENUM_NAME = 1U << (DIDT_ID_##ENUM_NAME - 1),<br class="">
> >> #include "llvm/BinaryFormat/Dwarf.def"<br class="">
> >> #undef HANDLE_DWARF_SECTION<br class="">
> >>   DIDT_UUID = 1 << (DIDT_ID_UUID - 1), @@ -138,7 +138,7 @@ enum<br class="">
> >> DIDumpType : uint64_t {  /// Container for dump options that control<br class="">
> >> which debug information will be  /// dumped.<br class="">
> >> struct DIDumpOptions {<br class="">
> >> -    uint64_t DumpType = DIDT_All;<br class="">
> >> +    unsigned DumpType = DIDT_All;<br class="">
> >>     bool DumpEH = false;<br class="">
> >>     bool SummarizeTypes = false;<br class="">
> >>     bool Verbose = false;<br class="">
> >> @@ -158,7 +158,7 @@ public:<br class="">
> >><br class="">
> >>   virtual void dump(raw_ostream &OS, DIDumpOptions DumpOpts) = 0;<br class="">
> >><br class="">
> >> -  virtual bool verify(raw_ostream &OS, uint64_t DumpType = DIDT_All,<br class="">
> >> +  virtual bool verify(raw_ostream &OS, unsigned DumpType = DIDT_All,<br class="">
> >>                       DIDumpOptions DumpOpts = {}) {<br class="">
> >>     // No verifier? Just say things went well.<br class="">
> >>     return true;<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFContext.h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DWARF/<wbr class="">DWARFContext.h?rev=31<br class="">
> >> 3207&r1=3<br class="">
> >> 13206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFContext.h (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFContext.h Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -123,7 +123,7 @@ public:<br class="">
> >><br class="">
> >>   void dump(raw_ostream &OS, DIDumpOptions DumpOpts) override;<br class="">
> >><br class="">
> >> -  bool verify(raw_ostream &OS, uint64_t DumpType = DIDT_All,<br class="">
> >> +  bool verify(raw_ostream &OS, unsigned DumpType = DIDT_All,<br class="">
> >>               DIDumpOptions DumpOpts = {}) override;<br class="">
> >><br class="">
> >>   using cu_iterator_range =<br class="">
> >> DWARFUnitSection<<wbr class="">DWARFCompileUnit>::iterator_<wbr class="">range;<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugAbbrev.h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DWARF/<wbr class="">DWARFDebugAbbrev.h?re<br class="">
> >> v=313207&<br class="">
> >> r1=313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugAbbrev.h<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugAbbrev.h Wed<br class="">
</div></div>> >> +++ Sep<br class="">
<span class="">> >> +++ 13 15:09:01 2017<br class="">
> >> @@ -67,6 +67,7 @@ public:<br class="">
> >><br class="">
> >>   void dump(raw_ostream &OS) const;<br class="">
> >>   void extract(DataExtractor Data);<br class="">
> >> +  bool empty() const { return begin() == end(); }<br class="">
> >><br class="">
> >>   DWARFAbbreviationDeclarationSe<wbr class="">tMap::const_iterator begin() const {<br class="">
> >>     return AbbrDeclSets.begin();<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugFrame.h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DWARF/<wbr class="">DWARFDebugFrame.h?rev<br class="">
> >> =313207&r<br class="">
> >> 1=313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugFrame.h<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugFrame.h Wed Sep<br class="">
</span>> >> +++ 13<br class="">
<span class="">> >> +++ 15:09:01 2017<br class="">
> >> @@ -36,6 +36,9 @@ public:<br class="">
> >>   /// data is assumed to be pointing to the beginning of the section.<br class="">
> >>   void parse(DataExtractor Data);<br class="">
> >><br class="">
> >> +  /// Return whether the section has any entries.<br class="">
> >> +  bool empty() const { return Entries.empty(); }<br class="">
> >> +<br class="">
> >> private:<br class="">
> >>   std::vector<std::unique_ptr<<wbr class="">FrameEntry>> Entries;  };<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFDebugLoc.<wbr class="">h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DWARF/<wbr class="">DWARFDebugLoc.h?rev=3<br class="">
> >> 13207&r1=<br class="">
> >> 313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFDebugLoc.<wbr class="">h<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/DWARFDebugLoc.<wbr class="">h Wed Sep<br class="">
</span>> >> +++ 13<br class="">
<span class="">> >> +++ 15:09:01 2017<br class="">
> >> @@ -63,7 +63,7 @@ public:<br class="">
> >>   /// Parse the debug_loc section accessible via the 'data' parameter<br class="">
> >> using the<br class="">
> >>   /// address size also given in 'data' to interpret the address ranges.<br class="">
> >>   void parse(const DWARFDataExtractor &data);<br class="">
> >> -<br class="">
> >> +<br class="">
> >>   Optional<LocationList> parseOneLocationList(<wbr class="">DWARFDataExtractor Data,<br class="">
> >>                                               uint32_t *Offset);  };<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugMacro.h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DWARF/<wbr class="">DWARFDebugMacro.h?rev<br class="">
> >> =313207&r<br class="">
> >> 1=313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugMacro.h<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFDebugMacro.h Wed Sep<br class="">
</span>> >> +++ 13<br class="">
<span class="">> >> +++ 15:09:01 2017<br class="">
> >> @@ -53,6 +53,9 @@ public:<br class="">
> >><br class="">
> >>   /// Parse the debug_macinfo section accessible via the 'data' parameter.<br class="">
> >>   void parse(DataExtractor data);<br class="">
> >> +<br class="">
> >> +  /// Return whether the section has any entries.<br class="">
> >> +  bool empty() const { return Macros.empty(); }<br class="">
> >> };<br class="">
> >><br class="">
> >> } // end namespace llvm<br class="">
> >><br class="">
> >> Modified: llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFUnitIndex.h<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/include/<wbr class="">llvm/DebugInfo/DWARF/<wbr class="">DWARFUnitIndex.h?rev=<br class="">
> >> 313207&r1<br class="">
> >> =313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFUnitIndex.h<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/include/llvm/<wbr class="">DebugInfo/DWARF/<wbr class="">DWARFUnitIndex.h Wed Sep<br class="">
</span>> >> +++ 13<br class="">
<span class="">> >> +++ 15:09:01 2017<br class="">
> >> @@ -87,6 +87,7 @@ public:<br class="">
> >><br class="">
> >>   bool parse(DataExtractor IndexData);<br class="">
> >>   void dump(raw_ostream &OS) const;<br class="">
> >> +<br class="">
> >>   const Entry *getFromOffset(uint32_t Offset) const;<br class="">
> >>   const Entry *getFromHash(uint64_t Offset) const;<br class="">
> >><br class="">
> >><br class="">
> >> Modified: llvm/trunk/lib/DebugInfo/<wbr class="">DWARF/DWARFContext.cpp<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/lib/<wbr class="">DebugInfo/DWARF/DWARFContext.<wbr class="">cpp?rev=313207&r1<br class="">
> >> =313206&r<br class="">
> >> 2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/lib/DebugInfo/<wbr class="">DWARF/DWARFContext.cpp (original)<br class="">
> >> +++ llvm/trunk/lib/DebugInfo/<wbr class="">DWARF/DWARFContext.cpp Wed Sep 13<br class="">
</span>> >> +++ 15:09:01<br class="">
<div class=""><div class="h5">> >> +++ 2017<br class="">
> >> @@ -41,6 +41,7 @@<br class="">
> >> #include "llvm/Support/Error.h"<br class="">
> >> #include "llvm/Support/Format.h"<br class="">
> >> #include "llvm/Support/MemoryBuffer.h"<br class="">
> >> +#include "llvm/Support/Path.h"<br class="">
> >> #include "llvm/Support/TargetRegistry.<wbr class="">h"<br class="">
> >> #include "llvm/Support/raw_ostream.h"<br class="">
> >> #include <algorithm><br class="">
> >> @@ -224,6 +225,10 @@ void DWARFContext::dump(raw_ostream &OS,<br class="">
> >>   uint64_t DumpType = DumpOpts.DumpType;<br class="">
> >>   bool DumpEH = DumpOpts.DumpEH;<br class="">
> >><br class="">
> >> +  StringRef Extension = sys::path::extension(DObj-><wbr class="">getFileName());<br class="">
> >> +  bool IsDWO = (Extension == ".dwo") || (Extension == ".dwp");<br class="">
> >> +<br class="">
> >> +  // Print UUID header.<br class="">
> >>   const auto *ObjFile = DObj->getFile();<br class="">
> >>   if (!(DumpType & DIDT_UUID) || DumpType == DIDT_All)<br class="">
> >>     outs() << ObjFile->getFileName() << ":\tfile format "<br class="">
> >> @@ -231,72 +236,82 @@ void DWARFContext::dump(raw_ostream &OS,<br class="">
> >>   if (DumpType & DIDT_UUID)<br class="">
> >>     dumpUUID(OS, *ObjFile);<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugAbbrev) {<br class="">
> >> -    OS << ".debug_abbrev contents:\n";<br class="">
> >> +  // Print a header for each explicitly-requested section.<br class="">
> >> +  // Otherwise just print one for non-empty sections.<br class="">
> >> +  bool Explicit = DumpType != DIDT_All && !IsDWO;  auto shouldDump =<br class="">
> >> + [&](unsigned DIDT_Section, StringRef Section) {<br class="">
> >> +    return (DumpType & DIDT_Section) && (Explicit ||<br class="">
</div></div>> >> + !Section.empty()); };  // Only print empty .dwo section headers when<br class="">
<div class=""><div class="h5">> dumping a .dwo file.<br class="">
> >> +  bool ExplicitDWO = Explicit && IsDWO;  auto shouldDumpDWO =<br class="">
> >> + [&](unsigned DIDT_Section, StringRef Section) {<br class="">
> >> +    return (DumpType & DIDT_Section) && (ExplicitDWO ||<br class="">
> >> + !Section.empty());  };<br class="">
> >> +<br class="">
> >> +  // Dump individual sections.<br class="">
> >> +  if (shouldDump(DIDT_DebugAbbrev, DObj->getAbbrevSection())) {<br class="">
> >> +    OS << "\n.debug_abbrev contents:\n";<br class="">
> >>     getDebugAbbrev()->dump(OS);<br class="">
> >>   }<br class="">
> >> +  if (shouldDumpDWO(DIDT_<wbr class="">DebugAbbrev, DObj->getAbbrevDWOSection())) {<br class="">
> >> +    OS << "\n.debug_abbrev.dwo contents:\n";<br class="">
> >> +    getDebugAbbrevDWO()->dump(OS);<br class="">
> >> +  }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugAbbrevDwo)<br class="">
> >> -    if (const DWARFDebugAbbrev *D = getDebugAbbrevDWO()) {<br class="">
> >> -      OS << "\n.debug_abbrev.dwo contents:\n";<br class="">
> >> -      D->dump(OS);<br class="">
> >> -    }<br class="">
> >> -<br class="">
> >> -  if (DumpType & DIDT_DebugInfo) {<br class="">
> >> +  if (shouldDump(DIDT_DebugInfo, DObj->getInfoSection().Data)) {<br class="">
> >>     OS << "\n.debug_info contents:\n";<br class="">
> >>     for (const auto &CU : compile_units())<br class="">
> >>       CU->dump(OS, DumpOpts);<br class="">
> >>   }<br class="">
> >> -<br class="">
> >> -  if ((DumpType & DIDT_DebugInfoDwo) &&<br class="">
> >> -      getNumDWOCompileUnits()) {<br class="">
> >> +  if (shouldDumpDWO(DIDT_DebugInfo, DObj->getInfoDWOSection().<wbr class="">Data))<br class="">
</div></div>> >> + {<br class="">
<div class=""><div class="h5">> >>     OS << "\n.debug_info.dwo contents:\n";<br class="">
> >>     for (const auto &DWOCU : dwo_compile_units())<br class="">
> >>       DWOCU->dump(OS, DumpOpts);<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if ((DumpType & DIDT_DebugTypes) && getNumTypeUnits()) {<br class="">
> >> -    OS << "\n.debug_types contents:\n";<br class="">
> >> -    for (const auto &TUS : type_unit_sections())<br class="">
> >> -      for (const auto &TU : TUS)<br class="">
> >> -        TU->dump(OS, DumpOpts);<br class="">
> >> -  }<br class="">
> >> -<br class="">
> >> -  if ((DumpType & DIDT_DebugTypesDwo) &&<br class="">
> >> -      getNumDWOTypeUnits()) {<br class="">
> >> -    OS << "\n.debug_types.dwo contents:\n";<br class="">
> >> -    for (const auto &DWOTUS : dwo_type_unit_sections())<br class="">
> >> -      for (const auto &DWOTU : DWOTUS)<br class="">
> >> -        DWOTU->dump(OS, DumpOpts);<br class="">
> >> +  if ((DumpType & DIDT_DebugTypes)) {<br class="">
> >> +    if (Explicit || getNumTypeUnits()) {<br class="">
> >> +      OS << "\n.debug_types contents:\n";<br class="">
> >> +      for (const auto &TUS : type_unit_sections())<br class="">
> >> +        for (const auto &TU : TUS)<br class="">
> >> +          TU->dump(OS, DumpOpts);<br class="">
> >> +    }<br class="">
> >> +    if (ExplicitDWO || getNumDWOTypeUnits()) {<br class="">
> >> +      OS << "\n.debug_types.dwo contents:\n";<br class="">
> >> +      for (const auto &DWOTUS : dwo_type_unit_sections())<br class="">
> >> +        for (const auto &DWOTU : DWOTUS)<br class="">
> >> +          DWOTU->dump(OS, DumpOpts);<br class="">
> >> +    }<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugLoc) {<br class="">
> >> +  if (shouldDump(DIDT_DebugLoc, DObj->getLocSection().Data)) {<br class="">
> >>     OS << "\n.debug_loc contents:\n";<br class="">
> >>     getDebugLoc()->dump(OS, getRegisterInfo());<br class="">
> >>   }<br class="">
> >> -<br class="">
> >> -  if (DumpType & DIDT_DebugLocDwo) {<br class="">
> >> +  if (shouldDumpDWO(DIDT_DebugLoc, DObj->getLocDWOSection().Data)<wbr class="">) {<br class="">
> >>     OS << "\n.debug_loc.dwo contents:\n";<br class="">
> >>     getDebugLocDWO()->dump(OS, getRegisterInfo());<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugFrames) {<br class="">
> >> +  if (shouldDump(DIDT_DebugFrames, DObj->getDebugFrameSection())) {<br class="">
> >>     OS << "\n.debug_frame contents:\n";<br class="">
> >>     getDebugFrame()->dump(OS);<br class="">
> >> -    if (DumpEH) {<br class="">
> >> -      OS << "\n.eh_frame contents:\n";<br class="">
> >> -      getEHFrame()->dump(OS);<br class="">
> >> -    }<br class="">
> >> +  }<br class="">
> >> +  if (DumpEH && !getEHFrame()->empty()) {<br class="">
> >> +    OS << "\n.eh_frame contents:\n";<br class="">
> >> +    getEHFrame()->dump(OS);<br class="">
> >>   }<br class="">
> >><br class="">
> >>   if (DumpType & DIDT_DebugMacro) {<br class="">
> >> -    OS << "\n.debug_macinfo contents:\n";<br class="">
> >> -    getDebugMacro()->dump(OS);<br class="">
> >> +    if (Explicit || !getDebugMacro()->empty()) {<br class="">
> >> +      OS << "\n.debug_macinfo contents:\n";<br class="">
> >> +      getDebugMacro()->dump(OS);<br class="">
> >> +    }<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  uint32_t offset = 0;<br class="">
> >> -  if (DumpType & DIDT_DebugAranges) {<br class="">
> >> +  if (shouldDump(DIDT_DebugAranges, DObj->getARangeSection())) {<br class="">
> >>     OS << "\n.debug_aranges contents:\n";<br class="">
> >> +    uint32_t offset = 0;<br class="">
> >>     DataExtractor arangesData(DObj-><wbr class="">getARangeSection(), isLittleEndian(),<br class="">
> 0);<br class="">
> >>     DWARFDebugArangeSet set;<br class="">
> >>     while (set.extract(arangesData, &offset)) @@ -304,7 +319,7 @@<br class="">
> >> void DWARFContext::dump(raw_ostream &OS,<br class="">
> >>   }<br class="">
> >><br class="">
> >>   uint8_t savedAddressByteSize = 0;<br class="">
> >> -  if (DumpType & DIDT_DebugLine) {<br class="">
> >> +  if (shouldDump(DIDT_DebugLine, DObj->getLineSection().Data)) {<br class="">
> >>     OS << "\n.debug_line contents:\n";<br class="">
> >>     for (const auto &CU : compile_units()) {<br class="">
> >>       savedAddressByteSize = CU->getAddressByteSize(); @@ -322,17<br class="">
> >> +337,12 @@ void DWARFContext::dump(raw_ostream &OS,<br class="">
> >>     }<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugCUIndex) {<br class="">
> >> -    OS << "\n.debug_cu_index contents:\n";<br class="">
> >> -    getCUIndex().dump(OS);<br class="">
> >> -  }<br class="">
> >> -<br class="">
> >> -  if (DumpType & DIDT_DebugTUIndex) {<br class="">
> >> -    OS << "\n.debug_tu_index contents:\n";<br class="">
> >> -    getTUIndex().dump(OS);<br class="">
> >> +  // FIXME: This seems sketchy.<br class="">
> >> +  for (const auto &CU : compile_units()) {<br class="">
> >> +    savedAddressByteSize = CU->getAddressByteSize();<br class="">
> >> +    break;<br class="">
> >>   }<br class="">
> >> -<br class="">
> >> -  if (DumpType & DIDT_DebugLineDwo) {<br class="">
> >> +  if (shouldDumpDWO(DIDT_DebugLine, DObj->getLineDWOSection().<wbr class="">Data))<br class="">
</div></div>> >> + {<br class="">
<div class=""><div class="h5">> >>     OS << "\n.debug_line.dwo contents:\n";<br class="">
> >>     unsigned stmtOffset = 0;<br class="">
> >>     DWARFDataExtractor lineData(*DObj, DObj->getLineDWOSection(), @@<br class="">
> >> -344,22<br class="">
> >> +354,30 @@ void DWARFContext::dump(raw_ostream &OS,<br class="">
> >>     }<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugStr) {<br class="">
> >> +  if (shouldDump(DIDT_DebugCUIndex, DObj->getCUIndexSection())) {<br class="">
> >> +    OS << "\n.debug_cu_index contents:\n";<br class="">
> >> +    getCUIndex().dump(OS);<br class="">
> >> +  }<br class="">
> >> +<br class="">
> >> +  if (shouldDump(DIDT_DebugTUIndex, DObj->getTUIndexSection())) {<br class="">
> >> +    OS << "\n.debug_tu_index contents:\n";<br class="">
> >> +    getTUIndex().dump(OS);<br class="">
> >> +  }<br class="">
> >> +<br class="">
> >> +  if (shouldDump(DIDT_DebugStr, DObj->getStringSection())) {<br class="">
> >>     OS << "\n.debug_str contents:\n";<br class="">
> >>     DataExtractor strData(DObj-><wbr class="">getStringSection(), isLittleEndian(), 0);<br class="">
> >> -    offset = 0;<br class="">
> >> +    uint32_t offset = 0;<br class="">
> >>     uint32_t strOffset = 0;<br class="">
> >>     while (const char *s = strData.getCStr(&offset)) {<br class="">
> >>       OS << format("0x%8.8x: \"%s\"\n", strOffset, s);<br class="">
> >>       strOffset = offset;<br class="">
> >>     }<br class="">
> >>   }<br class="">
> >> -<br class="">
> >> -  if ((DumpType & DIDT_DebugStrDwo) &&<br class="">
> >> -      !DObj->getStringDWOSection().<wbr class="">empty()) {<br class="">
> >> +  if (shouldDumpDWO(DIDT_DebugStr, DObj->getStringDWOSection())) {<br class="">
> >>     OS << "\n.debug_str.dwo contents:\n";<br class="">
> >>     DataExtractor strDWOData(DObj-><wbr class="">getStringDWOSection(),<br class="">
> >> isLittleEndian(), 0);<br class="">
> >> -    offset = 0;<br class="">
> >> +    uint32_t offset = 0;<br class="">
> >>     uint32_t strDWOOffset = 0;<br class="">
> >>     while (const char *s = strDWOData.getCStr(&offset)) {<br class="">
> >>       OS << format("0x%8.8x: \"%s\"\n", strDWOOffset, s); @@ -367,69<br class="">
> >> +385,68 @@ void DWARFContext::dump(raw_ostream &OS,<br class="">
> >>     }<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugRanges) {<br class="">
> >> +  if (shouldDump(DIDT_DebugRanges, DObj->getRangeSection().Data)) {<br class="">
> >>     OS << "\n.debug_ranges contents:\n";<br class="">
> >>     // In fact, different compile units may have different address byte<br class="">
> >> -    // sizes, but for simplicity we just use the address byte size of the<br class="">
> >> last<br class="">
> >> -    // compile unit (there is no easy and fast way to associate address<br class="">
> range<br class="">
> >> -    // list and the compile unit it describes).<br class="">
> >> +    // sizes, but for simplicity we just use the address byte size of the<br class="">
> >> +    // last compile unit (there is no easy and fast way to associate<br class="">
> address<br class="">
> >> +    // range list and the compile unit it describes).<br class="">
> >> +    // FIXME: savedAddressByteSize seems sketchy.<br class="">
> >>     DWARFDataExtractor rangesData(*DObj, DObj->getRangeSection(),<br class="">
> >>                                   isLittleEndian(), savedAddressByteSize);<br class="">
> >> -    offset = 0;<br class="">
> >> +    uint32_t offset = 0;<br class="">
> >>     DWARFDebugRangeList rangeList;<br class="">
> >>     while (rangeList.extract(rangesData, &offset))<br class="">
> >>       rangeList.dump(OS);<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugPubnames)<br class="">
> >> +  if (shouldDump(DIDT_<wbr class="">DebugPubnames, DObj->getPubNamesSection()))<br class="">
> >>     DWARFDebugPubTable(DObj-><wbr class="">getPubNamesSection(), isLittleEndian(), false)<br class="">
> >>         .dump("debug_pubnames", OS);<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugPubtypes)<br class="">
> >> +  if (shouldDump(DIDT_<wbr class="">DebugPubtypes, DObj->getPubTypesSection()))<br class="">
> >>     DWARFDebugPubTable(DObj-><wbr class="">getPubTypesSection(), isLittleEndian(), false)<br class="">
> >>         .dump("debug_pubtypes", OS);<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugGnuPubnames)<br class="">
> >> +  if (shouldDump(DIDT_<wbr class="">DebugGnuPubnames,<br class="">
</div></div>> >> + DObj->getGnuPubNamesSection())<wbr class="">)<br class="">
<span class="">> >>     DWARFDebugPubTable(DObj-><wbr class="">getGnuPubNamesSection(), isLittleEndian(),<br class="">
> >>                        true /* GnuStyle */)<br class="">
> >>         .dump("debug_gnu_pubnames", OS);<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugGnuPubtypes)<br class="">
> >> +  if (shouldDump(DIDT_<wbr class="">DebugGnuPubtypes,<br class="">
</span>> >> + DObj->getGnuPubTypesSection())<wbr class="">)<br class="">
<div class=""><div class="h5">> >>     DWARFDebugPubTable(DObj-><wbr class="">getGnuPubTypesSection(), isLittleEndian(),<br class="">
> >>                        true /* GnuStyle */)<br class="">
> >>         .dump("debug_gnu_pubtypes", OS);<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_DebugStrOffsets)<br class="">
> >> +  if (shouldDump(DIDT_<wbr class="">DebugStrOffsets,<br class="">
> >> + DObj->getStringOffsetSection()<wbr class="">.Data))<br class="">
> >>     dumpStringOffsetsSection(<br class="">
> >>         OS, "debug_str_offsets", *DObj, DObj->getStringOffsetSection()<wbr class="">,<br class="">
> >>         DObj->getStringSection(), isLittleEndian(), getMaxVersion());<br class="">
> >> -<br class="">
> >> -  if (DumpType & DIDT_DebugStrOffsetsDwo) {<br class="">
> >> +  if (shouldDumpDWO(DIDT_<wbr class="">DebugStrOffsets,<br class="">
> >> +                    DObj-><wbr class="">getStringOffsetDWOSection().<wbr class="">Data))<br class="">
> >>     dumpStringOffsetsSection(<br class="">
> >>         OS, "debug_str_offsets.dwo", *DObj, DObj-<br class="">
> >>> getStringOffsetDWOSection(),<br class="">
> >>         DObj->getStringDWOSection(), isLittleEndian(),<br class="">
> >> getMaxVersion());<br class="">
> >> -  }<br class="">
> >><br class="">
> >> -  if ((DumpType & DIDT_GdbIndex) &&<br class="">
> >> -      !DObj->getGdbIndexSection().<wbr class="">empty()) {<br class="">
> >> +  if (shouldDump(DIDT_GdbIndex, DObj->getGdbIndexSection())) {<br class="">
> >>     OS << "\n.gnu_index contents:\n";<br class="">
> >>     getGdbIndex().dump(OS);<br class="">
> >>   }<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_AppleNames)<br class="">
> >> +  if (shouldDump(DIDT_AppleNames,<br class="">
</div></div>> >> + DObj->getAppleNamesSection().<wbr class="">Data))<br class="">
<span class="">> >>     dumpAccelSection(OS, "apple_names", *DObj, DObj-<br class="">
> >getAppleNamesSection(),<br class="">
> >>                      DObj->getStringSection(), isLittleEndian());<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_AppleTypes)<br class="">
> >> +  if (shouldDump(DIDT_AppleTypes,<br class="">
</span>> >> + DObj->getAppleTypesSection().<wbr class="">Data))<br class="">
<div class=""><div class="h5">> >>     dumpAccelSection(OS, "apple_types", *DObj, DObj-<br class="">
> >getAppleTypesSection(),<br class="">
> >>                      DObj->getStringSection(), isLittleEndian());<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_AppleNamespaces)<br class="">
> >> +  if (shouldDump(DIDT_<wbr class="">AppleNamespaces,<br class="">
> >> + DObj-><wbr class="">getAppleNamespacesSection().<wbr class="">Data))<br class="">
> >>     dumpAccelSection(OS, "apple_namespaces", *DObj,<br class="">
> >>                      DObj-><wbr class="">getAppleNamespacesSection(),<br class="">
> >>                      DObj->getStringSection(), isLittleEndian());<br class="">
> >><br class="">
> >> -  if (DumpType & DIDT_AppleObjC)<br class="">
> >> +  if (shouldDump(DIDT_AppleObjC, DObj->getAppleObjCSection().<wbr class="">Data))<br class="">
> >>     dumpAccelSection(OS, "apple_objc", *DObj, DObj->getAppleObjCSection(),<br class="">
> >>                      DObj->getStringSection(), isLittleEndian());  }<br class="">
> >> @@ -<br class="">
> >> 461,7 +478,7 @@ DWARFDie DWARFContext::getDIEForOffset(<wbr class="">u<br class="">
> >>   return DWARFDie();<br class="">
> >> }<br class="">
> >><br class="">
> >> -bool DWARFContext::verify(raw_<wbr class="">ostream &OS, uint64_t DumpType,<br class="">
> >> +bool DWARFContext::verify(raw_<wbr class="">ostream &OS, unsigned DumpType,<br class="">
> >>                           DIDumpOptions DumpOpts) {<br class="">
> >>   bool Success = true;<br class="">
> >>   DWARFVerifier verifier(OS, *this, DumpOpts);<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/test/<wbr class="">DebugInfo/Inputs/gmlt.ll?rev=<wbr class="">313207&r1=313206<br class="">
> >> &r2=31320<br class="">
> >> 7&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/<wbr class="">Inputs/gmlt.ll Wed Sep 13 15:09:01 2017<br class="">
> >> @@ -87,12 +87,8 @@<br class="">
> >><br class="">
> >><br class="">
> >> ; Check that we don't emit any pubnames or pubtypes under -gmlt -; CHECK:<br class="">
> >> .debug_pubnames contents:<br class="">
> >> -; CHECK-NOT: Offset<br class="">
> >> -<br class="">
> >> -; CHECK: .debug_pubtypes contents:<br class="">
> >> -; CHECK-NOT: Offset<br class="">
> >> -<br class="">
> >> +; CHECK-NOT: .debug_pubnames contents:<br class="">
> >> +; CHECK-NOT: .debug_pubtypes contents:<br class="">
> >> ; CHECK: .apple{{.*}} contents:<br class="">
> >><br class="">
> >> ; Function Attrs: nounwind uwtable<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-inline.ll<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/test/<wbr class="">DebugInfo/X86/fission-<br class="">
> >> inline.ll?rev=313207&r1=<wbr class="">313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-inline.ll (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-inline.ll Wed Sep 13<br class="">
</div></div>> >> +++ 15:09:01<br class="">
<div class=""><div class="h5">> >> +++ 2017<br class="">
> >> @@ -71,6 +71,7 @@<br class="">
> >> ; CHECK:     DW_AT_call_file<br class="">
> >> ; CHECK-NEXT:     DW_AT_call_line {{.*}} (18)<br class="">
> >> ; CHECK-NOT: DW_<br class="">
> >> +; CHECK: .debug_info.dwo contents:<br class="">
> >><br class="">
> >> ; RELOCS-NOT: RELOCATION RECORDS FOR [.rela.debug_ranges]<br class="">
> >><br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-no-inlining.ll<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/test/<wbr class="">DebugInfo/X86/fission-no-<br class="">
> >> inlining.ll?rev=313207&r1=<wbr class="">313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-no-inlining.ll (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-no-inlining.ll Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -1,6 +1,8 @@<br class="">
> >> ; RUN: llc -split-dwarf-file=foo.dwo -O0 < %s<br class="">
> >> -mtriple=x86_64-unknown-linux- gnu -filetype=obj | llvm-dwarfdump<br class="">
> >> -debug-info - | FileCheck %s<br class="">
> >><br class="">
> >> +; CHECK: .debug_info contents:<br class="">
> >> ; CHECK-NOT: DW_TAG_subprogram<br class="">
> >> +; CHECK: contents:<br class="">
> >><br class="">
> >> ; IR generated from the following source:<br class="">
> >> ; void f1();<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-ranges.ll<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/test/<wbr class="">DebugInfo/X86/fission-<br class="">
> >> ranges.ll?rev=313207&r1=<wbr class="">313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-ranges.ll (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">fission-ranges.ll Wed Sep 13<br class="">
</div></div>> >> +++ 15:09:01<br class="">
<div class=""><div class="h5">> >> +++ 2017<br class="">
> >> @@ -17,7 +17,7 @@<br class="">
> >> ; CHECK: DW_AT_location [DW_FORM_sec_offset]   ([[B:0x[0-9a-z]*]]<br class="">
> >> ; CHECK: DW_AT_location [DW_FORM_sec_offset]   ([[D:0x[0-9a-z]*]]<br class="">
> >> ; CHECK: DW_AT_ranges [DW_FORM_sec_offset]   (0x00000000<br class="">
> >> -; CHECK: .debug_loc contents:<br class="">
> >> +; CHECK-NOT: .debug_loc contents:<br class="">
> >> ; CHECK-NOT: Beginning address offset ; CHECK: .debug_loc.dwo<br class="">
> >> contents:<br class="">
> >><br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/X86/<wbr class="">generate-odr-hash.ll<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/test/<wbr class="">DebugInfo/X86/generate-odr-<br class="">
> >> hash.ll?rev=313207&r1=313206&<wbr class="">r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">generate-odr-hash.ll (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">generate-odr-hash.ll Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -74,8 +74,7 @@<br class="">
> >> ; CHECK-NEXT: DW_AT_signature {{.*}} (0xfd756cee88f8a118)<br class="">
> >><br class="">
> >> ; SINGLE-LABEL: .debug_types contents:<br class="">
> >> -; FISSION-NOT: .debug_types contents:<br class="">
> >> -; FISSION-LABEL: .debug_types.dwo contents:<br class="">
> >> +; FISSION: .debug_types.dwo contents:<br class="">
> >><br class="">
> >> ; Check that we generate a hash for bar and the value.<br class="">
> >> ; CHECK-NOT: type_signature<br class="">
> >> @@ -127,7 +126,8 @@<br class="">
> >> ; CHECK: file_names{{.*}} bar.cpp<br class="">
> >> ; CHECK-NOT: file_names[<br class="">
> >><br class="">
> >> -; CHECK-LABEL: .debug_line.dwo contents:<br class="">
> >> +; FISSION: .debug_line.dwo contents:<br class="">
> >> +; CHECK-NOT: .debug_line.dwo contents:<br class="">
> >> ; FISSION: Line table prologue<br class="">
> >> ; FISSION: opcode_base: 1<br class="">
> >> ; FISSION-NOT: standard_opcode_lengths<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/X86/<wbr class="">gnu-public-names-gmlt.ll<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/gnu" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">DebugInfo/X86/gnu</a><br class="">
> >> - public-names-gmlt.ll?rev=<wbr class="">313207&r1=313206&r2=313207&<wbr class="">view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">gnu-public-names-gmlt.ll (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">gnu-public-names-gmlt.ll Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -24,14 +24,10 @@<br class="">
> >> ; GPUB-NEXT: length = 0x0000000e version = 0x0002 unit_offset =<br class="">
> >> 0x00000000  ;<br class="">
> >> GPUB-NEXT: Name<br class="">
> >><br class="">
> >> -; NONE: .debug_pubnames contents:<br class="">
> >> -; NONE: {{^$}}<br class="">
> >> -; NONE: .debug_pubtypes contents:<br class="">
> >> -; NONE: {{^$}}<br class="">
> >> -; NONE: .debug_gnu_pubnames contents:<br class="">
> >> -; NONE: {{^$}}<br class="">
> >> -; NONE: .debug_gnu_pubtypes contents:<br class="">
> >> -; NONE: {{^$}}<br class="">
> >> +; NONE-NOT: .debug_pubnames contents:<br class="">
> >> +; NONE-NOT: .debug_pubtypes contents:<br class="">
> >> +; NONE-NOT: .debug_gnu_pubnames contents:<br class="">
> >> +; NONE-NOT: .debug_gnu_pubtypes contents:<br class="">
> >><br class="">
> >><br class="">
> >> ; Function Attrs: noinline uwtable<br class="">
> >><br class="">
> >> Modified:<br class="">
> >> llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-cross-unit-<wbr class="">reference.ll<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/spl" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">DebugInfo/X86/spl</a><br class="">
> >> it-<br class="">
> >> dwarf-cross-unit-reference.ll?<wbr class="">rev=313207&r1=313206&r2=<wbr class="">313207&view=dif<br class="">
> >> f<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-cross-unit-<wbr class="">reference.ll<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-cross-unit-<wbr class="">reference.ll<br class="">
> >> +++ Wed Sep 13 15:09:01 2017<br class="">
> >> @@ -1,11 +1,11 @@<br class="">
> >> ; RUN: llc -mtriple=x86_64-linux -split-dwarf-cross-cu-<wbr class="">references<br class="">
> >> -split- dwarf-file=foo.dwo -filetype=obj -o %t < %s  ; RUN:<br class="">
> >> llvm-objdump -r %t | FileCheck %s -; RUN: llvm-dwarfdump -v<br class="">
> >> -debug-info-dwo %t | FileCheck --check- prefix=ALL<br class="">
> >> --check-prefix=INFO --check-prefix=DWO --check-prefix=CROSS %s<br class="">
> >> +; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck<br class="">
</div></div>> >> +--check-prefix=ALL --check-prefix=INFO --check-prefix=DWO<br class="">
> >> +--check-prefix=CROSS %s<br class="">
<span class="">> >> ; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck<br class="">
> >> --check-prefix=ALL -- check-prefix=INFO %s<br class="">
> >><br class="">
> >> ; RUN: llc -mtriple=x86_64-linux -split-dwarf-file=foo.dwo<br class="">
> >> -filetype=obj -o %t < %s  ; RUN: llvm-objdump -r %t | FileCheck %s -;<br class="">
> >> RUN: llvm-dwarfdump -v - debug-info-dwo %t | FileCheck<br class="">
> >> --check-prefix=ALL --check-prefix=DWO --check- prefix=NOCROSS %s<br class="">
> >> +; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck<br class="">
</span>> >> +--check-prefix=ALL --check-prefix=DWO --check-prefix=NOCROSS %s<br class="">
<span class="">> >> ; RUN: llvm-dwarfdump -v -debug-info %t | FileCheck<br class="">
> >> --check-prefix=ALL -- check-prefix=INFO %s<br class="">
> >><br class="">
> >> ; Testing cross-CU references for types, subprograms, and variables<br class="">
> >> @@ -42,6<br class="">
> >> +42,7 @@  ; * debug_info.dwo contains duplicate types, abstract<br class="">
</span>> >> +subprograms<br class="">
<div class=""><div class="h5">> >> and abstract<br class="">
> >> ;   variables otherwise to avoid the need for cross-cu references<br class="">
> >><br class="">
> >> +; DWO: .debug_info.dwo contents:<br class="">
> >> ; CHECK-NOT: .rel{{a?}}.debug_info.dwo ; CHECK: RELOCATION RECORDS<br class="">
> >> FOR [.rel{{a?}}.debug_info]:<br class="">
> >> ; CHECK-NOT: RELOCATION RECORDS<br class="">
> >><br class="">
> >> Modified:<br class="">
> >> llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-multiple-cu-hash.<wbr class="">ll<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/spl" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">DebugInfo/X86/spl</a><br class="">
> >> it-<br class="">
> >> dwarf-multiple-cu-hash.ll?rev=<wbr class="">313207&r1=313206&r2=313207&<wbr class="">view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-multiple-cu-hash.<wbr class="">ll<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-multiple-cu-hash.<wbr class="">ll Wed<br class="">
> >> +++ Sep 13 15:09:01 2017<br class="">
> >> @@ -3,8 +3,10 @@<br class="">
> >> ; RUN: %llc_dwarf -split-dwarf-file=bar.dwo  %s -filetype=obj -o<br class="">
> >> %t/b.o  ;<br class="">
> >> RUN: llvm-dwarfdump -debug-info %t/a.o %t/b.o | FileCheck %s<br class="">
> >><br class="">
> >> +; CHECK: .debug_info contents:<br class="">
> >> ; CHECK: dwo_id {{.*}}([[HASH:.*]])<br class="">
> >> ; CHECK-NOT: dwo_id {{.*}}([[HASH]])<br class="">
> >> +; CHECK: .debug_info.dwo contents:<br class="">
> >><br class="">
> >> target triple = "x86_64-pc-linux"<br class="">
> >><br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-omit-empty.ll<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/X86/spl" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">DebugInfo/X86/spl</a><br class="">
> >> it- dwarf-omit-empty.ll?rev=<wbr class="">313207&r1=313206&r2=313207&<wbr class="">view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-omit-empty.ll<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/X86/<wbr class="">split-dwarf-omit-empty.ll Wed Sep<br class="">
</div></div>> >> +++ 13<br class="">
<div class=""><div class="h5">> >> +++ 15:09:01 2017<br class="">
> >> @@ -15,8 +15,10 @@<br class="">
> >> ; will be emitted. This emulates something more like the<br class="">
> >> available_externally ; import performed by ThinLTO.<br class="">
> >><br class="">
> >> +; CHECK: .debug_info contents:<br class="">
> >> ; CHECK: Compile Unit<br class="">
> >> ; CHECK-NOT: Compile Unit<br class="">
> >> +; CHECK: .debug_info.dwo contents:<br class="">
> >><br class="">
> >> target triple = "x86_64-pc-linux"<br class="">
> >><br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dump-flags.test<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/dwarfdu" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">DebugInfo/dwarfdu</a><br class="">
> >> mp- dump-flags.test?rev=313207&r1=<wbr class="">313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dump-flags.test (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dump-flags.test Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -6,10 +6,11 @@<br class="">
> >> ; RUN: llvm-dwarfdump %p/Inputs/dwarfdump-test.<wbr class="">macho-i386.o<br class="">
> >> --debug-ranges | FileCheck %s -check-prefix DUMP_RANGES<br class="">
> >><br class="">
> >> ; DUMP_ALL: .debug_info<br class="">
> >> -; DUMP_ALL: .debug_ranges<br class="">
> >> +; DUMP_ALL: .debug_str<br class="">
> >><br class="">
> >> ; DUMP_INFO: .debug_info<br class="">
> >> ; DUMP_INFO-NOT: .debug_ranges<br class="">
> >> +; DUMP_INFO-NOT: .debug_str<br class="">
> >><br class="">
> >> ; DUMP_RANGES-NOT: .debug_info<br class="">
> >> ; DUMP_RANGES: .debug_ranges<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dwp.test<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/dwarfdu" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/<wbr class="">DebugInfo/dwarfdu</a><br class="">
> >> mp- dwp.test?rev=313207&r1=313206&<wbr class="">r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dwp.test (original)<br class="">
> >> +++ llvm/trunk/test/DebugInfo/<wbr class="">dwarfdump-dwp.test Wed Sep 13 15:09:01<br class="">
> >> +++ 2017<br class="">
> >> @@ -9,6 +9,7 @@ RUN: llvm-dwarfdump -v %p/Inputs/dwarfdu<br class="">
> >> ;   bar b() {<br class="">
> >> ;   }<br class="">
> >><br class="">
> >> +; CHECK-NOT: .debug_info contents:<br class="">
> >> ; CHECK-LABEL: .debug_info.dwo contents:<br class="">
> >> ; CHECK: Compile Unit<br class="">
> >><br class="">
> >><br class="">
> >> Modified:<br class="">
> >> llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-multiple-sections-dwarf-2.<wbr class="">s<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/dwarf-asm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/MC/<wbr class="">ARM/dwarf-asm-</a><br class="">
> >> multiple-sections-dwarf-2.s?<wbr class="">rev=313207&r1=313206&r2=<wbr class="">313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-multiple-sections-dwarf-2.<wbr class="">s<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-multiple-sections-dwarf-2.<wbr class="">s Wed<br class="">
</div></div>> >> +++ Sep<br class="">
<span class="">> >> +++ 13 15:09:01 2017<br class="">
> >> @@ -45,9 +45,8 @@ b:<br class="">
> >> // DWARF-NEXT: 0x0000000000000004     11      0      1   0   0 is_stmt<br class="">
> >> end_sequence<br class="">
> >><br class="">
> >><br class="">
> >> -// DWARF: .debug_ranges contents:<br class="">
> >> -// DWARF-NOT: {{0-9a-f}}<br class="">
> >> -// DWARF: .debug_pubnames contents:<br class="">
> >> +// DWARF-NOT: .debug_ranges contents:<br class="">
> >> +// DWARF-NOT: .debug_pubnames contents:<br class="">
> >><br class="">
> >><br class="">
> >> // RELOC: RELOCATION RECORDS FOR [.rel.debug_info]:<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-no-code.s<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/dwarf-asm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/MC/<wbr class="">ARM/dwarf-asm-</a><br class="">
> >> no- code.s?rev=313207&r1=313206&<wbr class="">r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-no-code.s (original)<br class="">
> >> +++ llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-no-code.s Wed Sep 13 15:09:01<br class="">
</span>> >> +++ 2017<br class="">
<div class=""><div class="h5">> >> @@ -8,18 +8,10 @@<br class="">
> >> a:<br class="">
> >> .long 42<br class="">
> >><br class="">
> >> -// DWARF: .debug_abbrev contents:<br class="">
> >> -// DWARF-NEXT: < EMPTY ><br class="">
> >> -<br class="">
> >> -// DWARF: .debug_info contents:<br class="">
> >> -<br class="">
> >> -// DWARF: .debug_aranges contents:<br class="">
> >> -<br class="">
> >> +// DWARF: ELF32-arm-little<br class="">
> >> +// DWARF-NOT: contents:<br class="">
> >> // DWARF: .debug_line contents:<br class="">
> >><br class="">
> >> -// DWARF: .debug_ranges contents:<br class="">
> >> -<br class="">
> >> -<br class="">
> >> // RELOC-NOT: RELOCATION RECORDS FOR [.rel.debug_info]:<br class="">
> >><br class="">
> >> // RELOC-NOT: RELOCATION RECORDS FOR [.rel.debug_ranges]:<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-nonstandard-section.s<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/dwarf-asm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/MC/<wbr class="">ARM/dwarf-asm-</a><br class="">
> >> nonstandard-section.s?rev=<wbr class="">313207&r1=313206&r2=313207&<wbr class="">view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-nonstandard-section.s (original)<br class="">
> >> +++ llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-nonstandard-section.s Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -37,9 +37,8 @@ b:<br class="">
> >> // DWARF-NEXT: 0x0000000000000004      7      0      1   0   0  is_stmt<br class="">
> >> end_sequence<br class="">
> >><br class="">
> >><br class="">
> >> -// DWARF: .debug_ranges contents:<br class="">
> >> -// DWARF-NOT: {{0-9a-f}}<br class="">
> >> -// DWARF: .debug_pubnames contents:<br class="">
> >> +// DWARF-NOT: .debug_ranges contents:<br class="">
> >> +// DWARF-NOT: .debug_pubnames contents:<br class="">
> >><br class="">
> >><br class="">
> >><br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-single-section.s<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/MC/ARM/dwarf-asm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/MC/<wbr class="">ARM/dwarf-asm-</a><br class="">
> >> single-section.s?rev=313207&<wbr class="">r1=313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-single-section.s (original)<br class="">
> >> +++ llvm/trunk/test/MC/ARM/dwarf-<wbr class="">asm-single-section.s Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -37,9 +37,8 @@ a:<br class="">
> >> // DWARF-NEXT: 0x0000000000000004      7      0      1   0   0 is_stmt<br class="">
> >> end_sequence<br class="">
> >><br class="">
> >><br class="">
> >> -// DWARF: .debug_ranges contents:<br class="">
> >> -// DWARF-NOT: {{0-9a-f}}<br class="">
> >> -// DWARF: .debug_pubnames contents:<br class="">
> >> +// DWARF-NOT: .debug_ranges contents:<br class="">
> >> +// DWARF-NOT: .debug_pubnames contents:<br class="">
> >><br class="">
> >><br class="">
> >> // RELOC: RELOCATION RECORDS FOR [.rel.debug_info]:<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/tools/<wbr class="">dsymutil/X86/basic-linking-<wbr class="">x86.test<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-</a><br class="">
> >> project/llvm/trunk/test/tools/<wbr class="">dsymutil/X86/basic-linking-<br class="">
> >> x86.test?rev=313207&r1=313206&<wbr class="">r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/tools/<wbr class="">dsymutil/X86/basic-linking-<wbr class="">x86.test<br class="">
> >> (original)<br class="">
> >> +++ llvm/trunk/test/tools/<wbr class="">dsymutil/X86/basic-linking-<wbr class="">x86.test Wed Sep<br class="">
</div></div>> >> +++ 13<br class="">
<div class=""><div class="h5">> >> +++ 15:09:01 2017<br class="">
> >> @@ -140,8 +140,7 @@ CHECK:      DW_AT_frame_base [DW_FORM_bl<br class="">
> >><br class="">
> >> CHECK:    NULL<br class="">
> >><br class="">
> >> -CHECK: .debug_loc contents<br class="">
> >> -CHECK-NOT: Location<br class="">
> >> +CHECK-NOT: .debug_loc contents<br class="">
> >><br class="">
> >> CHECK:.debug_aranges contents:<br class="">
> >> CHECK-NEXT:Address Range Header: length = 0x0000002c, version =<br class="">
> >> 0x0002, cu_offset = 0x00000000, addr_size = 0x08, seg_size = 0x00<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/empty.test<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/tools/<wbr class="">llvm-</a><br class="">
> >> dwp/X86/empty.test?rev=313207&<wbr class="">r1=313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/empty.test (original)<br class="">
> >> +++ llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/empty.test Wed Sep 13 15:09:01<br class="">
> >> +++ 2017<br class="">
> >> @@ -1,8 +1,8 @@<br class="">
> >> RUN: llvm-dwp %p/../Inputs/empty.dwo -o %t<br class="">
> >> RUN: llvm-dwarfdump -v %t | FileCheck %s<br class="">
> >><br class="">
> >> -CHECK-LABEL: .debug_cu_index<br class="">
> >> +CHECK: file format<br class="">
> >> +CHECK-NOT: .debug_cu_index<br class="">
> >> CHECK-NOT: version<br class="">
> >> -CHECK-LABEL: .debug_tu_index<br class="">
> >> +CHECK-NOT: .debug_tu_index<br class="">
> >> CHECK-NOT: version<br class="">
> >> -CHECK: .debug_<br class="">
> >><br class="">
> >> Modified: llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/simple.test<br class="">
> >> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/test/tools/<wbr class="">llvm-</a><br class="">
> >> dwp/X86/simple.test?rev=<wbr class="">313207&r1=313206&r2=313207&<wbr class="">view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/simple.test (original)<br class="">
> >> +++ llvm/trunk/test/tools/llvm-<wbr class="">dwp/X86/simple.test Wed Sep 13<br class="">
</div></div>> >> +++ 15:09:01<br class="">
<div class=""><div class="h5">> >> +++ 2017<br class="">
> >> @@ -76,8 +76,7 @@ TYPES:     3 [[DWOB]]  {{\[}}[[BOFF]], [<br class="">
> >> NOTYP:     3 [[DWOA]]  {{\[}}[[AOFF]], [[BOFF]]) [0x0000[[AAOFF]],<br class="">
> >> 0x0000[[BAOFF]]) [0x00000000, 0x00000011) [0x00000000, 0x00000010)<br class="">
> >> NOTYP:     4 [[DWOB]]  {{\[}}[[BOFF]], [[XOFF]]) [0x0000[[BAOFF]],<br class="">
> >> 0x00000075)      [0x00000011, 0x00000022) [0x00000010, 0x00000024)<br class="">
> >><br class="">
> >> -CHECK-LABEL: .debug_tu_index contents:<br class="">
> >> -NOTYP-NOT: Index<br class="">
> >> +CHECK-NOT: .debug_tu_index contents:<br class="">
> >> TYPES: Index Signature  TYPES                           ABBREV<br class="">
> >> LINE                     STR_OFFSETS<br class="">
> >> TYPES:     1 [[FOOSIG]] {{\[}}[[FOOUOFF]], [[BARUOFF]]) [0x0000[[AAOFF]],<br class="">
> >> 0x0000[[BAOFF]]) [0x00000000, 0x0000001a) [0x00000000, 0x00000010)<br class="">
> >> TYPES:     4 [[BARSIG]] {{\[}}[[BARUOFF]], [[XUOFF]])   [0x0000[[BAOFF]],<br class="">
> >> 0x00000099)      [0x0000001a, 0x00000034) [0x00000010, 0x00000024)<br class="">
> >><br class="">
> >> Modified: llvm/trunk/tools/llvm-<wbr class="">dwarfdump/llvm-dwarfdump.cpp<br class="">
> >> URL:<br class="">
> >> <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dwarfdump/l" rel="noreferrer" target="_blank" class="">http://llvm.org/viewvc/llvm-<wbr class="">project/llvm/trunk/tools/llvm-<wbr class="">dwarfdump/l</a><br class="">
> >> lvm- dwarfdump.cpp?rev=313207&r1=<wbr class="">313206&r2=313207&view=diff<br class="">
> >> ==============================<wbr class="">==============================<wbr class="">=========<br class="">
> >> =========<br class="">
> >> --- llvm/trunk/tools/llvm-<wbr class="">dwarfdump/llvm-dwarfdump.cpp (original)<br class="">
> >> +++ llvm/trunk/tools/llvm-<wbr class="">dwarfdump/llvm-dwarfdump.cpp Wed Sep 13<br class="">
> >> +++ 15:09:01 2017<br class="">
> >> @@ -53,7 +53,7 @@ static opt<bool> DumpAll("all", desc("Du<br class="">
> >>                          cat(SectionCategory));  static alias<br class="">
> >> DumpAllAlias("a", desc("Alias for -all"), aliasopt(DumpAll));<br class="">
> >><br class="">
> >> -static uint64_t DumpType = DIDT_Null;<br class="">
> >> +static unsigned DumpType = DIDT_Null;<br class="">
> >> #define HANDLE_DWARF_SECTION(ENUM_<wbr class="">NAME, ELF_NAME, CMDLINE_NAME) \<br class="">
> >>   static opt<bool> Dump##ENUM_NAME(CMDLINE_NAME, \<br class="">
> >>                                    desc("Dump the " ELF_NAME "<br class="">
> >> section"), \ @@ -99,8 +99,7 @@ static void DumpObjectFile(ObjectFile<br class="">
> >> &O<br class="">
> >>                         Filename.str() + ": ");<br class="">
> >>   // The UUID dump already contains all the same information.<br class="">
> >>   if (!(DumpType & DIDT_UUID) || DumpType == DIDT_All)<br class="">
> >> -    outs() << Filename << ":\tfile format " << Obj.getFileFormatName()<br class="">
> >> -           << "\n\n";<br class="">
> >> +    outs() << Filename << ":\tfile format " <<<br class="">
</div></div>> >> + Obj.getFileFormatName() << '\n';<br class="">
<div class="HOEnZb"><div class="h5">> >><br class="">
> >>   // Dump the complete DWARF structure.<br class="">
> >>   DICtx->dump(outs(), GetDumpOpts());<br class="">
> >><br class="">
> >><br class="">
> >> ______________________________<wbr class="">_________________<br class="">
> >> llvm-commits mailing list<br class="">
> >> <a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
> >> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-commits</a><br class="">
<br class="">
______________________________<wbr class="">_________________<br class="">
llvm-commits mailing list<br class="">
<a href="mailto:llvm-commits@lists.llvm.org" class="">llvm-commits@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/<wbr class="">mailman/listinfo/llvm-commits</a><br class="">
</div></div></blockquote></div><br class=""></div>
</div></blockquote></div><br class=""></div></div></div></blockquote></div><br class=""></div></body></html>