<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>