<div dir="ltr">That does seem like a rather long test - could it be smaller/simpler by using C or C++ with clang and hand-modifying the LLVM IR to add a linkage name for a structure?</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 3, 2018 at 5:13 AM Jonas Devlieghere via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org">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: jdevlieghere<br>
Date: Mon Sep  3 05:12:17 2018<br>
New Revision: 341311<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=341311&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=341311&view=rev</a><br>
Log:<br>
[DebugInfo] Have the verifier accept missing linkage names.<br>
<br>
According to the standard, for the .debug_names (the "dwarf accelerator<br>
tables"):<br>
<br>
> If a subprogram or inlined subroutine is included, and has a<br>
> DW_AT_linkage_name attribute, there will be an additional index entry<br>
> for the linkage name.<br>
<br>
For Swift we generate DW_structure_types with a linkage name and the<br>
verifier was incorrectly rejecting this. This patch fixes that by only<br>
considering the linkage name in those particular cases. The test is the<br>
"reduced" debug info of the failing swift test on <a href="http://swift.org" rel="noreferrer" target="_blank">swift.org</a>.<br>
<br>
Differential revision: <a href="https://reviews.llvm.org/D51420" rel="noreferrer" target="_blank">https://reviews.llvm.org/D51420</a><br>
<br>
Added:<br>
    llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_no_linkage_name.s<br>
Modified:<br>
    llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp<br>
<br>
Modified: llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp?rev=341311&r1=341310&r2=341311&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp?rev=341311&r1=341310&r2=341311&view=diff</a><br>
==============================================================================<br>
--- llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp (original)<br>
+++ llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp Mon Sep  3 05:12:17 2018<br>
@@ -1059,16 +1059,19 @@ DWARFVerifier::verifyNameIndexAbbrevs(co<br>
   return NumErrors;<br>
 }<br>
<br>
-static SmallVector<StringRef, 2> getNames(const DWARFDie &DIE) {<br>
+static SmallVector<StringRef, 2> getNames(const DWARFDie &DIE,<br>
+                                          bool IncludeLinkageName = true) {<br>
   SmallVector<StringRef, 2> Result;<br>
   if (const char *Str = DIE.getName(DINameKind::ShortName))<br>
     Result.emplace_back(Str);<br>
   else if (DIE.getTag() == dwarf::DW_TAG_namespace)<br>
     Result.emplace_back("(anonymous namespace)");<br>
<br>
-  if (const char *Str = DIE.getName(DINameKind::LinkageName)) {<br>
-    if (Result.empty() || Result[0] != Str)<br>
-      Result.emplace_back(Str);<br>
+  if (IncludeLinkageName) {<br>
+    if (const char *Str = DIE.getName(DINameKind::LinkageName)) {<br>
+      if (Result.empty() || Result[0] != Str)<br>
+        Result.emplace_back(Str);<br>
+    }<br>
   }<br>
<br>
   return Result;<br>
@@ -1211,7 +1214,9 @@ unsigned DWARFVerifier::verifyNameIndexC<br>
   // "If a subprogram or inlined subroutine is included, and has a<br>
   // DW_AT_linkage_name attribute, there will be an additional index entry for<br>
   // the linkage name."<br>
-  auto EntryNames = getNames(Die);<br>
+  auto IncludeLinkageName = Die.getTag() == DW_TAG_subprogram ||<br>
+                            Die.getTag() == DW_TAG_inlined_subroutine;<br>
+  auto EntryNames = getNames(Die, IncludeLinkageName);<br>
   if (EntryNames.empty())<br>
     return 0;<br>
<br>
<br>
Added: llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_no_linkage_name.s<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_no_linkage_name.s?rev=341311&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_no_linkage_name.s?rev=341311&view=auto</a><br>
==============================================================================<br>
--- llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_no_linkage_name.s (added)<br>
+++ llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_no_linkage_name.s Mon Sep  3 05:12:17 2018<br>
@@ -0,0 +1,646 @@<br>
+# This test generates a DW_TAG_structure_type with a linkage name. This linkage<br>
+# name will not be part of the accelerator table and the verifier should not<br>
+# complain about this.<br>
+#<br>
+# DW_TAG_structure_type<br>
+#   DW_AT_name    ("C")<br>
+#   DW_AT_linkage_name    ("$S4main1CCD")<br>
+#<br>
+# RUN: llvm-mc %s -filetype obj -triple x86_64-unknown-linux-gnu -o %t.o<br>
+# RUN: llvm-dwarfdump -debug-info %t.o | FileCheck %s<br>
+# RUN: llvm-dwarfdump -debug-names %t.o | FileCheck %s --check-prefix ACCEL<br>
+# RUN: llvm-dwarfdump -verify -debug-names %t.o<br>
+<br>
+# CHECK: DW_AT_name    ("Bool")<br>
+# CHECK-NEXT: DW_AT_linkage_name    ("$SSbD")<br>
+<br>
+# ACCEL-NOT: String: {{.*}} "$SSbD"<br>
+# ACCEL: String: {{.*}} "Bool"<br>
+# ACCEL-NOT: String: {{.*}} "$SSbD"<br>
+<br>
+       .text<br>
+       .file   "local-vars.swift.gyb.tmp.s"<br>
+       .protected      main<br>
+       .globl  main<br>
+       .p2align        4, 0x90<br>
+       .type   main,@function<br>
+main:<br>
+.Lfunc_begin0:<br>
+.Ltmp0:<br>
+.Ltmp1:<br>
+.Lfunc_end0:<br>
+.Lfunc_begin1:<br>
+.Ltmp2:<br>
+.Ltmp3:<br>
+.Ltmp4:<br>
+.Lfunc_end1:<br>
+.Lfunc_begin2:<br>
+.Ltmp5:<br>
+.Ltmp6:<br>
+.Ltmp7:<br>
+.Lfunc_end2:<br>
+.Lfunc_begin3:<br>
+.Ltmp8:<br>
+.Ltmp9:<br>
+.Ltmp10:<br>
+.Lfunc_end3:<br>
+.Lfunc_begin4:<br>
+.Ltmp11:<br>
+.Ltmp12:<br>
+.Lfunc_end4:<br>
+.Lfunc_begin5:<br>
+.Ltmp13:<br>
+.LBB5_2:<br>
+.Ltmp14:<br>
+.Lfunc_end5:<br>
+.L__unnamed_1:<br>
+.L__unnamed_2:<br>
+.L__unnamed_3:<br>
+       .section        .swift1_autolink_entries,"a",@progbits<br>
+       .p2align        3<br>
+.L_swift1_autolink_entries:<br>
+       .asciz  "-lswiftSwiftOnoneSupport\000-lswiftCore"<br>
+       .size   .L_swift1_autolink_entries, 37<br>
+<br>
+       .section        ".linker-options","e",@llvm_linker_options<br>
+       .section        .debug_str,"MS",@progbits,1<br>
+.Linfo_string0:<br>
+       .asciz  "Swift version 4.2-dev effective-4.1.50 (LLVM a4b1bcaa22, Clang 257fa19143, Swift 836ad071bd)"<br>
+.Linfo_string1:<br>
+       .asciz  "/home/jonas/swift/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/test-linux-x86_64/DebugInfo/Output/local-vars.swift.gyb.tmp.swift"<br>
+.Linfo_string2:<br>
+       .asciz  "/home/jonas/swift/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/test-linux-x86_64/DebugInfo"<br>
+.Linfo_string3:<br>
+       .asciz  "main"<br>
+.Linfo_string4:<br>
+       .asciz  "/home/jonas/swift/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/test-linux-x86_64/DebugInfo/Output"<br>
+.Linfo_string5:<br>
+       .asciz  "Swift"<br>
+.Linfo_string6:<br>
+       .asciz  "/home/jonas/swift/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/lib/swift/linux/x86_64/Swift.swiftmodule"<br>
+.Linfo_string7:<br>
+       .asciz  "SwiftOnoneSupport"<br>
+.Linfo_string8:<br>
+       .asciz  "/home/jonas/swift/build/Ninja-RelWithDebInfoAssert/swift-linux-x86_64/lib/swift/linux/x86_64/SwiftOnoneSupport.swiftmodule"<br>
+.Linfo_string9:<br>
+       .asciz  "C"<br>
+.Linfo_string10:<br>
+       .asciz  "$S4main1CCD"<br>
+.Linfo_string11:<br>
+       .asciz  "init"<br>
+.Linfo_string12:<br>
+       .asciz  "$S4main1CCyACSicfc"<br>
+.Linfo_string13:<br>
+       .asciz  "isZero"<br>
+.Linfo_string14:<br>
+       .asciz  "$S4main1CC6isZeroSbyF"<br>
+.Linfo_string15:<br>
+       .asciz  "deinit"<br>
+.Linfo_string16:<br>
+       .asciz  "$S4main1CCfd"<br>
+.Linfo_string17:<br>
+       .asciz  "$S4main1CCfD"<br>
+.Linfo_string18:<br>
+       .asciz  "$S4main1CCMa"<br>
+.Linfo_string19:<br>
+       .asciz  "Int32"<br>
+.Linfo_string20:<br>
+       .asciz  "$Ss5Int32VD"<br>
+.Linfo_string21:<br>
+       .asciz  "Bool"<br>
+.Linfo_string22:<br>
+       .asciz  "$SSbD"<br>
+.Linfo_string23:<br>
+       .asciz  "$SBoD"<br>
+.Linfo_string24:<br>
+       .asciz  "$SytD"<br>
+.Linfo_string25:<br>
+       .asciz  "i"<br>
+.Linfo_string26:<br>
+       .asciz  "Int"<br>
+.Linfo_string27:<br>
+       .asciz  "$SSiD"<br>
+.Linfo_string28:<br>
+       .asciz  "self"<br>
+       .section        .debug_abbrev,"",@progbits<br>
+       .byte   1<br>
+       .byte   17<br>
+       .byte   1<br>
+       .byte   37<br>
+       .byte   14<br>
+       .byte   19<br>
+       .byte   5<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   16<br>
+       .byte   23<br>
+       .byte   27<br>
+       .byte   14<br>
+       .ascii  "\345\177"<br>
+       .byte   11<br>
+       .byte   17<br>
+       .byte   1<br>
+       .byte   18<br>
+       .byte   6<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   2<br>
+       .byte   30<br>
+       .byte   1<br>
+       .byte   3<br>
+       .byte   14<br>
+       .ascii  "\200|"<br>
+       .byte   14<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   3<br>
+       .byte   46<br>
+       .byte   0<br>
+       .byte   17<br>
+       .byte   1<br>
+       .byte   18<br>
+       .byte   6<br>
+       .byte   64<br>
+       .byte   24<br>
+       .byte   110<br>
+       .byte   14<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   58<br>
+       .byte   11<br>
+       .byte   59<br>
+       .byte   11<br>
+       .byte   73<br>
+       .byte   19<br>
+       .byte   63<br>
+       .byte   25<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   4<br>
+       .byte   19<br>
+       .byte   1<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   110<br>
+       .byte   14<br>
+       .byte   11<br>
+       .byte   11<br>
+       .byte   58<br>
+       .byte   11<br>
+       .byte   59<br>
+       .byte   11<br>
+       .ascii  "\346\177"<br>
+       .byte   11<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   5<br>
+       .byte   46<br>
+       .byte   1<br>
+       .byte   17<br>
+       .byte   1<br>
+       .byte   18<br>
+       .byte   6<br>
+       .byte   64<br>
+       .byte   24<br>
+       .byte   110<br>
+       .byte   14<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   58<br>
+       .byte   11<br>
+       .byte   59<br>
+       .byte   11<br>
+       .byte   73<br>
+       .byte   19<br>
+       .byte   63<br>
+       .byte   25<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   6<br>
+       .byte   5<br>
+       .byte   0<br>
+       .byte   2<br>
+       .byte   24<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   58<br>
+       .byte   11<br>
+       .byte   59<br>
+       .byte   11<br>
+       .byte   73<br>
+       .byte   19<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   7<br>
+       .byte   5<br>
+       .byte   0<br>
+       .byte   2<br>
+       .byte   24<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   58<br>
+       .byte   11<br>
+       .byte   59<br>
+       .byte   11<br>
+       .byte   73<br>
+       .byte   19<br>
+       .byte   52<br>
+       .byte   25<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   8<br>
+       .byte   46<br>
+       .byte   0<br>
+       .byte   17<br>
+       .byte   1<br>
+       .byte   18<br>
+       .byte   6<br>
+       .byte   64<br>
+       .byte   24<br>
+       .byte   110<br>
+       .byte   14<br>
+       .byte   52<br>
+       .byte   25<br>
+       .byte   63<br>
+       .byte   25<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   9<br>
+       .byte   58<br>
+       .byte   0<br>
+       .byte   24<br>
+       .byte   19<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   10<br>
+       .byte   19<br>
+       .byte   0<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   110<br>
+       .byte   14<br>
+       .byte   11<br>
+       .byte   11<br>
+       .ascii  "\346\177"<br>
+       .byte   11<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   11<br>
+       .byte   30<br>
+       .byte   0<br>
+       .byte   3<br>
+       .byte   14<br>
+       .ascii  "\200|"<br>
+       .byte   14<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   12<br>
+       .byte   15<br>
+       .byte   0<br>
+       .byte   3<br>
+       .byte   14<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   0<br>
+       .section        .debug_info,"",@progbits<br>
+.Lcu_begin0:<br>
+       .long   385<br>
+       .short  4<br>
+       .long   .debug_abbrev<br>
+       .byte   8<br>
+       .byte   1<br>
+       .long   .Linfo_string0<br>
+       .short  30<br>
+       .long   .Linfo_string1<br>
+       .long   .Lline_table_start0<br>
+       .long   .Linfo_string2<br>
+       .byte   4<br>
+       .quad   .Lfunc_begin0<br>
+       .long   .Lfunc_end5-.Lfunc_begin0<br>
+       .byte   2<br>
+       .long   .Linfo_string3<br>
+       .long   .Linfo_string4<br>
+       .byte   3<br>
+       .quad   .Lfunc_begin0<br>
+       .long   .Lfunc_end0-.Lfunc_begin0<br>
+       .byte   1<br>
+       .byte   86<br>
+       .long   .Linfo_string3<br>
+       .long   .Linfo_string3<br>
+       .byte   1<br>
+       .byte   1<br>
+       .long   319<br>
+<br>
+       .byte   4<br>
+       .long   .Linfo_string9<br>
+       .long   .Linfo_string10<br>
+       .byte   8<br>
+       .byte   1<br>
+       .byte   9<br>
+       .byte   30<br>
+       .byte   5<br>
+       .quad   .Lfunc_begin1<br>
+       .long   .Lfunc_end1-.Lfunc_begin1<br>
+       .byte   1<br>
+       .byte   86<br>
+       .long   .Linfo_string12<br>
+       .long   .Linfo_string11<br>
+       .byte   1<br>
+       .byte   11<br>
+       .long   81<br>
+<br>
+       .byte   6<br>
+       .byte   2<br>
+       .byte   145<br>
+       .byte   120<br>
+       .long   .Linfo_string25<br>
+       .byte   1<br>
+       .byte   11<br>
+       .long   341<br>
+       .byte   7<br>
+       .byte   2<br>
+       .byte   145<br>
+       .byte   112<br>
+       .long   .Linfo_string28<br>
+       .byte   1<br>
+       .byte   11<br>
+       .long   81<br>
+<br>
+       .byte   0<br>
+       .byte   5<br>
+       .quad   .Lfunc_begin2<br>
+       .long   .Lfunc_end2-.Lfunc_begin2<br>
+       .byte   1<br>
+       .byte   86<br>
+       .long   .Linfo_string14<br>
+       .long   .Linfo_string13<br>
+       .byte   1<br>
+       .byte   12<br>
+       .long   330<br>
+<br>
+       .byte   7<br>
+       .byte   2<br>
+       .byte   145<br>
+       .byte   112<br>
+       .long   .Linfo_string28<br>
+       .byte   1<br>
+       .byte   12<br>
+       .long   81<br>
+<br>
+       .byte   0<br>
+       .byte   5<br>
+       .quad   .Lfunc_begin3<br>
+       .long   .Lfunc_end3-.Lfunc_begin3<br>
+       .byte   1<br>
+       .byte   86<br>
+       .long   .Linfo_string16<br>
+       .long   .Linfo_string15<br>
+       .byte   1<br>
+       .byte   9<br>
+       .long   372<br>
+<br>
+       .byte   7<br>
+       .byte   2<br>
+       .byte   145<br>
+       .byte   120<br>
+       .long   .Linfo_string28<br>
+       .byte   1<br>
+       .byte   9<br>
+       .long   81<br>
+<br>
+       .byte   0<br>
+       .byte   5<br>
+       .quad   .Lfunc_begin4<br>
+       .long   .Lfunc_end4-.Lfunc_begin4<br>
+       .byte   1<br>
+       .byte   86<br>
+       .long   .Linfo_string17<br>
+       .long   .Linfo_string15<br>
+       .byte   1<br>
+       .byte   9<br>
+       .long   377<br>
+<br>
+       .byte   7<br>
+       .byte   2<br>
+       .byte   145<br>
+       .byte   120<br>
+       .long   .Linfo_string28<br>
+       .byte   1<br>
+       .byte   9<br>
+       .long   81<br>
+<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   8<br>
+       .quad   .Lfunc_begin5<br>
+       .long   .Lfunc_end5-.Lfunc_begin5<br>
+       .byte   1<br>
+       .byte   86<br>
+       .long   .Linfo_string18<br>
+<br>
+<br>
+       .byte   0<br>
+       .byte   9<br>
+       .long   43<br>
+       .byte   2<br>
+       .long   .Linfo_string5<br>
+       .long   .Linfo_string6<br>
+       .byte   10<br>
+       .long   .Linfo_string19<br>
+       .long   .Linfo_string20<br>
+       .byte   4<br>
+       .byte   30<br>
+       .byte   10<br>
+       .long   .Linfo_string21<br>
+       .long   .Linfo_string22<br>
+       .byte   1<br>
+       .byte   30<br>
+       .byte   10<br>
+       .long   .Linfo_string26<br>
+       .long   .Linfo_string27<br>
+       .byte   8<br>
+       .byte   30<br>
+       .byte   0<br>
+       .byte   9<br>
+       .long   310<br>
+       .byte   11<br>
+       .long   .Linfo_string7<br>
+       .long   .Linfo_string8<br>
+       .byte   9<br>
+       .long   358<br>
+       .byte   12<br>
+       .long   .Linfo_string23<br>
+       .byte   10<br>
+       .long   .Linfo_string24<br>
+       .long   .Linfo_string24<br>
+       .byte   0<br>
+       .byte   30<br>
+       .byte   0<br>
+       .section        .debug_ranges,"",@progbits<br>
+       .section        .debug_macinfo,"",@progbits<br>
+       .byte   0<br>
+       .section        .debug_names,"",@progbits<br>
+       .long   .Lnames_end0-.Lnames_start0<br>
+.Lnames_start0:<br>
+       .short  5<br>
+       .short  0<br>
+       .long   1<br>
+       .long   0<br>
+       .long   0<br>
+       .long   14<br>
+       .long   15<br>
+       .long   .Lnames_abbrev_end0-.Lnames_abbrev_start0<br>
+       .long   8<br>
+       .ascii  "LLVM0700"<br>
+       .long   .Lcu_begin0<br>
+       .long   0<br>
+       .long   0<br>
+       .long   1<br>
+       .long   0<br>
+       .long   2<br>
+       .long   0<br>
+       .long   0<br>
+       .long   4<br>
+       .long   6<br>
+       .long   7<br>
+       .long   11<br>
+       .long   14<br>
+       .long   15<br>
+       .long   0<br>
+       .long   -125696958<br>
+       .long   -1434607370<br>
+       .long   -1434607370<br>
+       .long   87184321<br>
+       .long   2090120081<br>
+       .long   -1434607142<br>
+       .long   181113837<br>
+       .long   262755061<br>
+       .long   2090370361<br>
+       .long   -1008003439<br>
+       .long   193495088<br>
+       .long   2090499946<br>
+       .long   -1294887406<br>
+       .long   181088625<br>
+       .long   177672<br>
+       .long   .Linfo_string15<br>
+       .long   .Linfo_string16<br>
+       .long   .Linfo_string17<br>
+       .long   .Linfo_string13<br>
+       .long   .Linfo_string21<br>
+       .long   .Linfo_string18<br>
+       .long   .Linfo_string24<br>
+       .long   .Linfo_string19<br>
+       .long   .Linfo_string11<br>
+       .long   .Linfo_string12<br>
+       .long   .Linfo_string26<br>
+       .long   .Linfo_string3<br>
+       .long   .Linfo_string14<br>
+       .long   .Linfo_string23<br>
+       .long   .Linfo_string9<br>
+       .long   .Lnames14-.Lnames_entries0<br>
+       .long   .Lnames9-.Lnames_entries0<br>
+       .long   .Lnames10-.Lnames_entries0<br>
+       .long   .Lnames13-.Lnames_entries0<br>
+       .long   .Lnames7-.Lnames_entries0<br>
+       .long   .Lnames12-.Lnames_entries0<br>
+       .long   .Lnames2-.Lnames_entries0<br>
+       .long   .Lnames8-.Lnames_entries0<br>
+       .long   .Lnames11-.Lnames_entries0<br>
+       .long   .Lnames5-.Lnames_entries0<br>
+       .long   .Lnames3-.Lnames_entries0<br>
+       .long   .Lnames1-.Lnames_entries0<br>
+       .long   .Lnames6-.Lnames_entries0<br>
+       .long   .Lnames4-.Lnames_entries0<br>
+       .long   .Lnames0-.Lnames_entries0<br>
+.Lnames_abbrev_start0:<br>
+       .byte   46<br>
+       .byte   46<br>
+       .byte   3<br>
+       .byte   19<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   15<br>
+       .byte   15<br>
+       .byte   3<br>
+       .byte   19<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   19<br>
+       .byte   19<br>
+       .byte   3<br>
+       .byte   19<br>
+       .byte   0<br>
+       .byte   0<br>
+       .byte   0<br>
+.Lnames_abbrev_end0:<br>
+.Lnames_entries0:<br>
+.Lnames14:<br>
+       .byte   46<br>
+       .long   196<br>
+       .byte   46<br>
+       .long   240<br>
+       .long   0<br>
+.Lnames9:<br>
+       .byte   46<br>
+       .long   196<br>
+       .long   0<br>
+.Lnames10:<br>
+       .byte   46<br>
+       .long   240<br>
+       .long   0<br>
+.Lnames13:<br>
+       .byte   46<br>
+       .long   152<br>
+       .long   0<br>
+.Lnames7:<br>
+       .byte   19<br>
+       .long   330<br>
+       .long   0<br>
+.Lnames12:<br>
+       .byte   46<br>
+       .long   285<br>
+       .long   0<br>
+.Lnames2:<br>
+       .byte   19<br>
+       .long   377<br>
+       .long   0<br>
+.Lnames8:<br>
+       .byte   19<br>
+       .long   319<br>
+       .long   0<br>
+.Lnames11:<br>
+       .byte   46<br>
+       .long   94<br>
+       .long   0<br>
+.Lnames5:<br>
+       .byte   46<br>
+       .long   94<br>
+       .long   0<br>
+.Lnames3:<br>
+       .byte   19<br>
+       .long   341<br>
+       .long   0<br>
+.Lnames1:<br>
+       .byte   46<br>
+       .long   52<br>
+       .long   0<br>
+.Lnames6:<br>
+       .byte   46<br>
+       .long   152<br>
+       .long   0<br>
+.Lnames4:<br>
+       .byte   15<br>
+       .long   372<br>
+       .long   0<br>
+.Lnames0:<br>
+       .byte   19<br>
+       .long   81<br>
+       .long   0<br>
+       .p2align        2<br>
+.Lnames_end0:<br>
+<br>
+       .globl  $S4main1CCN<br>
+       .protected      $S4main1CCN<br>
+.set $S4main1CCN, ($S4main1CCMf)+16<br>
+       .section        .debug_line,"",@progbits<br>
+.Lline_table_start0:<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div>