#include "llvm/ADT/SmallString.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCObjectWriter.h"
+#include "llvm/MC/StringTableBuilder.h"
#include "llvm/Support/DataTypes.h"
#include "llvm/Support/MachO.h"
#include <vector>
/// @name Symbol Table Data
/// @{
- SmallString<256> StringTable;
+ StringTableBuilder StringTable;
std::vector<MachSymbolData> LocalSymbolData;
std::vector<MachSymbolData> ExternalSymbolData;
std::vector<MachSymbolData> UndefinedSymbolData;
/// ComputeSymbolTable - Compute the symbol table data
///
- /// \param StringTable [out] - The string table data.
- void ComputeSymbolTable(MCAssembler &Asm, SmallString<256> &StringTable,
+ void ComputeSymbolTable(MCAssembler &Asm,
std::vector<MachSymbolData> &LocalSymbolData,
std::vector<MachSymbolData> &ExternalSymbolData,
std::vector<MachSymbolData> &UndefinedSymbolData);
enum Kind {
ELF,
- WinCOFF
+ WinCOFF,
+ MachO
};
/// \brief Analyze the strings and build the final table. No more strings can
}
/// ComputeSymbolTable - Compute the symbol table data
-///
-/// \param StringTable [out] - The string table data.
-/// \param StringIndexMap [out] - Map from symbol names to offsets in the
-/// string table.
-void MachObjectWriter::
-ComputeSymbolTable(MCAssembler &Asm, SmallString<256> &StringTable,
- std::vector<MachSymbolData> &LocalSymbolData,
- std::vector<MachSymbolData> &ExternalSymbolData,
- std::vector<MachSymbolData> &UndefinedSymbolData) {
+void MachObjectWriter::ComputeSymbolTable(
+ MCAssembler &Asm, std::vector<MachSymbolData> &LocalSymbolData,
+ std::vector<MachSymbolData> &ExternalSymbolData,
+ std::vector<MachSymbolData> &UndefinedSymbolData) {
// Build section lookup table.
DenseMap<const MCSection*, uint8_t> SectionIndexMap;
unsigned Index = 1;
SectionIndexMap[&it->getSection()] = Index;
assert(Index <= 256 && "Too many sections!");
- // Index 0 is always the empty string.
- StringMap<uint64_t> StringIndexMap;
- StringTable += '\x00';
+ // Build the string table.
+ for (MCSymbolData &SD : Asm.symbols()) {
+ const MCSymbol &Symbol = SD.getSymbol();
+ if (!Asm.isSymbolLinkerVisible(Symbol))
+ continue;
+
+ StringTable.add(Symbol.getName());
+ }
+ StringTable.finalize(StringTableBuilder::MachO);
- // Build the symbol arrays and the string table, but only for non-local
- // symbols.
+ // Build the symbol arrays but only for non-local symbols.
//
- // The particular order that we collect the symbols and create the string
- // table, then sort the symbols is chosen to match 'as'. Even though it
- // doesn't matter for correctness, this is important for letting us diff .o
- // files.
+ // The particular order that we collect and then sort the symbols is chosen to
+ // match 'as'. Even though it doesn't matter for correctness, this is
+ // important for letting us diff .o files.
for (MCSymbolData &SD : Asm.symbols()) {
const MCSymbol &Symbol = SD.getSymbol();
// Ignore non-linker visible symbols.
- if (!Asm.isSymbolLinkerVisible(SD.getSymbol()))
+ if (!Asm.isSymbolLinkerVisible(Symbol))
continue;
if (!SD.isExternal() && !Symbol.isUndefined())
continue;
- uint64_t &Entry = StringIndexMap[Symbol.getName()];
- if (!Entry) {
- Entry = StringTable.size();
- StringTable += Symbol.getName();
- StringTable += '\x00';
- }
-
MachSymbolData MSD;
MSD.SymbolData = &SD;
- MSD.StringIndex = Entry;
+ MSD.StringIndex = StringTable.getOffset(Symbol.getName());
if (Symbol.isUndefined()) {
MSD.SectionIndex = 0;
const MCSymbol &Symbol = SD.getSymbol();
// Ignore non-linker visible symbols.
- if (!Asm.isSymbolLinkerVisible(SD.getSymbol()))
+ if (!Asm.isSymbolLinkerVisible(Symbol))
continue;
if (SD.isExternal() || Symbol.isUndefined())
continue;
- uint64_t &Entry = StringIndexMap[Symbol.getName()];
- if (!Entry) {
- Entry = StringTable.size();
- StringTable += Symbol.getName();
- StringTable += '\x00';
- }
-
MachSymbolData MSD;
MSD.SymbolData = &SD;
- MSD.StringIndex = Entry;
+ MSD.StringIndex = StringTable.getOffset(Symbol.getName());
if (Symbol.isAbsolute()) {
MSD.SectionIndex = 0;
ExternalSymbolData[i].SymbolData->setIndex(Index++);
for (unsigned i = 0, e = UndefinedSymbolData.size(); i != e; ++i)
UndefinedSymbolData[i].SymbolData->setIndex(Index++);
-
- // The string table is padded to a multiple of 4.
- while (StringTable.size() % 4)
- StringTable += '\x00';
}
void MachObjectWriter::computeSectionAddresses(const MCAssembler &Asm,
markAbsoluteVariableSymbols(Asm, Layout);
// Compute symbol table information and bind symbol indices.
- ComputeSymbolTable(Asm, StringTable, LocalSymbolData, ExternalSymbolData,
+ ComputeSymbolTable(Asm, LocalSymbolData, ExternalSymbolData,
UndefinedSymbolData);
}
sizeof(MachO::nlist_64) :
sizeof(MachO::nlist));
WriteSymtabLoadCommand(SymbolTableOffset, NumSymTabSymbols,
- StringTableOffset, StringTable.size());
+ StringTableOffset, StringTable.data().size());
WriteDysymtabLoadCommand(FirstLocalSymbol, NumLocalSymbols,
FirstExternalSymbol, NumExternalSymbols,
WriteNlist(UndefinedSymbolData[i], Layout);
// Write the string table.
- OS << StringTable.str();
+ OS << StringTable.data();
}
}
std::sort(Strings.begin(), Strings.end(), compareBySuffix);
- if (kind == ELF) {
+ switch (kind) {
+ case ELF:
+ case MachO:
// Start the table with a NUL byte.
StringTable += '\x00';
- } else if (kind == WinCOFF) {
+ break;
+ case WinCOFF:
// Make room to write the table size later.
StringTable.append(4, '\x00');
+ break;
}
StringRef Previous;
Previous = s;
}
- if (kind == WinCOFF) {
+ switch (kind) {
+ case ELF:
+ break;
+ case MachO:
+ // Pad to multiple of 4.
+ while (StringTable.size() % 4)
+ StringTable += '\x00';
+ break;
+ case WinCOFF:
+ // Write the table size in the first word.
assert(StringTable.size() <= std::numeric_limits<uint32_t>::max());
uint32_t size = static_cast<uint32_t>(StringTable.size());
support::endian::write<uint32_t, support::little, support::unaligned>(
StringTable.data(), size);
+ break;
}
}
// alias_to_local is an alias, but what it points to has no
// MachO representation. We must resolve it.
// CHECK: Symbol {
-// CHECK-NEXT: Name: alias_to_local (37)
+// CHECK-NEXT: Name: alias_to_local (42)
// CHECK-NEXT: Type: Section (0xE)
// CHECK-NEXT: Section: (0x0)
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
// var1 was another alias to an unknown variable. Not extern this time.
// CHECK: Symbol {
-// CHECK-NEXT: Name: var1 (1)
+// CHECK-NEXT: Name: var1 (89)
// CHECK-NEXT: Type: Indirect (0xA)
// CHECK-NEXT: Section: (0x0)
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
@ CHECK: ('nsyms', 4)
@ CHECK: ('stroff', 488)
@ CHECK: ('strsize', 24)
-@ CHECK: ('_string_data', '\x00_printf\x00_f0\x00_f1\x00_d0\x00\x00\x00\x00')
+@ CHECK: ('_string_data', '\x00_printf\x00_f1\x00_f0\x00_d0\x00\x00\x00\x00')
@ CHECK: ('_symbols', [
@ CHECK: # Symbol 0
-@ CHECK: (('n_strx', 9)
+@ CHECK: (('n_strx', 13)
@ CHECK: ('n_type', 0xe)
@ CHECK: ('n_sect', 1)
@ CHECK: ('n_desc', 0)
@ CHECK: ('_string', '_f0')
@ CHECK: ),
@ CHECK: # Symbol 1
-@ CHECK: (('n_strx', 13)
+@ CHECK: (('n_strx', 9)
@ CHECK: ('n_type', 0xe)
@ CHECK: ('n_sect', 1)
@ CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 8)
// CHECK: ('stroff', 420)
// CHECK: ('strsize', 84)
-// CHECK: ('_string_data', '\x00foo_set1_global\x00foo_set2_global\x00_bar\x00_foo\x00foo_set1\x00foo_set2\x00foo_equals\x00foo_equals2\x00')
+// CHECK: ('_string_data', '\x00foo_equals\x00_bar\x00_foo\x00foo_set2_global\x00foo_set1_global\x00foo_set2\x00foo_equals2\x00foo_set1\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 33)
+// CHECK: (('n_strx', 12)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_bar')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 38)
+// CHECK: (('n_strx', 17)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_foo')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 43)
+// CHECK: (('n_strx', 75)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'foo_set1')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 52)
+// CHECK: (('n_strx', 54)
// CHECK: ('n_type', 0x2)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'foo_set2')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 61)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'foo_equals')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 72)
+// CHECK: (('n_strx', 63)
// CHECK: ('n_type', 0x2)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'foo_equals2')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 38)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'foo_set1_global')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 17)
+// CHECK: (('n_strx', 22)
// CHECK: ('n_type', 0x3)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 32)
// CHECK: ('nsyms', 4)
// CHECK: ('stroff', 572)
// CHECK: ('strsize', 36)
-// CHECK: ('_string_data', '\x00_text_a\x00_text_b\x00_data_a\x00_data_b\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00_text_b\x00_data_b\x00_text_a\x00_data_a\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 17)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_text_a')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 9)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_text_b')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 17)
+// CHECK: (('n_strx', 25)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_data_a')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 25)
+// CHECK: (('n_strx', 9)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 4)
// CHECK: ('stroff', 304)
// CHECK: ('strsize', 48)
-// CHECK: ('_string_data', '\x00sym_comm_B\x00sym_comm_A\x00sym_comm_C\x00sym_comm_D\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00sym_comm_D\x00sym_comm_C\x00sym_comm_B\x00sym_comm_A\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 12)
+// CHECK: (('n_strx', 34)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_comm_A')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 23)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_comm_B')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 23)
+// CHECK: (('n_strx', 12)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 544)
// CHECK: ('_string', 'sym_comm_C')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 34)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 768)
// CHECK: ('nsyms', 3)
// CHECK: ('stroff', 392)
// CHECK: ('strsize', 12)
-// CHECK: ('_string_data', '\x00_a\x00_c\x00_d\x00\x00\x00')
+// CHECK: ('_string_data', '\x00_d\x00_c\x00_a\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 7)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_c')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 7)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 5)
// CHECK: ('stroff', 908)
// CHECK: ('strsize', 24)
-// CHECK: ('_string_data', '\x00_foo\x00_g0\x00_g1\x00_g2\x00_g3\x00\x00\x00')
+// CHECK: ('_string_data', '\x00_foo\x00_g3\x00_g2\x00_g1\x00_g0\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
// CHECK: (('n_strx', 1)
// CHECK: ('_string', '_foo')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 6)
+// CHECK: (('n_strx', 18)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_g0')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 10)
+// CHECK: (('n_strx', 14)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_g1')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 14)
+// CHECK: (('n_strx', 10)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_g2')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 18)
+// CHECK: (('n_strx', 6)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('symoff', 1152)
// CHECK: ('nsyms', 9)
// CHECK: ('stroff', 1296)
-// CHECK: ('strsize', 52)
-// CHECK: ('_string_data', '\x00_foobar\x00_ext_foo\x00_foo\x00_baz\x00_bar\x00_prev\x00_f2\x00_f3\x00f6\x00\x00\x00')
+// CHECK: ('strsize', 48)
+// CHECK: ('_string_data', '\x00_baz\x00_prev\x00_foobar\x00_bar\x00_ext_foo\x00f6\x00_f3\x00_f2\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 18)
+// CHECK: (('n_strx', 29)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_foo')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 23)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_baz')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 28)
+// CHECK: (('n_strx', 20)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_bar')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 33)
+// CHECK: (('n_strx', 6)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_prev')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 39)
+// CHECK: (('n_strx', 41)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_f2')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 43)
+// CHECK: (('n_strx', 37)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_f3')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 47)
+// CHECK: (('n_strx', 34)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'f6')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 9)
+// CHECK: (('n_strx', 25)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_ext_foo')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 12)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 6)
// CHECK: ('stroff', 516)
// CHECK: ('strsize', 20)
-// CHECK: ('_string_data', '\x00_d\x00_a\x00_b\x00_c\x00_e\x00_f\x00\x00')
+// CHECK: ('_string_data', '\x00_f\x00_e\x00_d\x00_c\x00_b\x00_a\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 7)
+// CHECK: (('n_strx', 13)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_c')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 13)
+// CHECK: (('n_strx', 4)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_e')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 16)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0x2)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_f')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 4)
+// CHECK: (('n_strx', 16)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 1)
// CHECK: ('_string', '_a')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 7)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 4)
// CHECK: ('stroff', 372)
// CHECK: ('strsize', 68)
-// CHECK: ('_string_data', '\x00sym_lcomm_ext_A\x00sym_lcomm_ext_B\x00sym_zfill_ext_A\x00sym_zfill_ext_B\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00sym_lcomm_ext_B\x00sym_zfill_ext_B\x00sym_lcomm_ext_A\x00sym_zfill_ext_A\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 33)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lcomm_ext_A')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 17)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lcomm_ext_B')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 33)
+// CHECK: (('n_strx', 49)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_zfill_ext_A')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 49)
+// CHECK: (('n_strx', 17)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 10)
// CHECK: ('stroff', 724)
// CHECK: ('strsize', 88)
-// CHECK: ('_string_data', '\x00undef\x00local_a_ext\x00.objc_class_name_A\x00_f1\x00local_a\x00local_a_elt\x00local_b\x00local_c\x00bar\x00_f0\x00\x00\x00')
+// CHECK: ('_string_data', '\x00local_a_ext\x00local_a_elt\x00bar\x00undef\x00local_c\x00local_b\x00local_a\x00.objc_class_name_A\x00_f1\x00_f0\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 42)
+// CHECK: (('n_strx', 51)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'local_a')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 50)
+// CHECK: (('n_strx', 13)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'local_a_elt')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 62)
+// CHECK: (('n_strx', 43)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'local_b')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 70)
+// CHECK: (('n_strx', 35)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'local_c')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 78)
+// CHECK: (('n_strx', 25)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_f0')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 19)
+// CHECK: (('n_strx', 59)
// CHECK: ('n_type', 0x3)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '.objc_class_name_A')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 38)
+// CHECK: (('n_strx', 78)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 128)
// CHECK: ('_string', '_f1')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 7)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'local_a_ext')
// CHECK: ),
// CHECK: # Symbol 9
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 29)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 3)
// CHECK: ('stroff', 444)
// CHECK: ('strsize', 16)
-// CHECK: ('_string_data', '\x00foo\x00bar\x00baz\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00baz\x00bar\x00foo\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 9)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'bar')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 9)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 2)
// CHECK: ('stroff', 308)
// CHECK: ('strsize', 8)
-// CHECK: ('_string_data', '\x00a\x00b\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00b\x00a\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 3)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'a')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 3)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK-NEXT: ('nsyms', 2)
// CHECK-NEXT: ('stroff', 424)
// CHECK-NEXT: ('strsize', 12)
-// CHECK-NEXT: ('_string_data', '\x00_g\x00_g.eh\x00\x00\x00')
+// CHECK-NEXT: ('_string_data', '\x00_g.eh\x00_g\x00\x00\x00')
// CHECK-NEXT: ('_symbols', [
// CHECK-NEXT: # Symbol 0
-// CHECK-NEXT: (('n_strx', 1)
+// CHECK-NEXT: (('n_strx', 7)
// CHECK-NEXT: ('n_type', 0xe)
// CHECK-NEXT: ('n_sect', 1)
// CHECK-NEXT: ('n_desc', 0)
// CHECK-NEXT: ('_string', '_g')
// CHECK-NEXT: ),
// CHECK-NEXT: # Symbol 1
-// CHECK-NEXT: (('n_strx', 4)
+// CHECK-NEXT: (('n_strx', 1)
// CHECK-NEXT: ('n_type', 0xe)
// CHECK-NEXT: ('n_sect', 2)
// CHECK-NEXT: ('n_desc', 0)
// CHECK: ('nsyms', 24)
// CHECK: ('stroff', 612)
// CHECK: ('strsize', 388)
-// CHECK: ('_string_data', '\x00sym_ref_A\x00sym_ref_def_D\x00sym_ref_def_E\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_weak_def_B\x00sym_weak_def_C\x00sym_lazy_ref_A\x00sym_lazy_ref_D\x00sym_lazy_ref_E\x00sym_private_ext_A\x00sym_private_ext_B\x00sym_private_ext_C\x00sym_private_ext_D\x00sym_private_ext_E\x00sym_no_dead_strip_A\x00sym_ref_def_A\x00sym_ref_def_C\x00sym_weak_ref_def_A\x00sym_weak_ref_def_B\x00sym_lazy_ref_B\x00sym_lazy_ref_C\x00sym_symbol_resolver_A\x00sym_desc_flags\x00\x00')
+// CHECK: ('_string_data', '\x00sym_desc_flags\x00sym_private_ext_E\x00sym_lazy_ref_E\x00sym_ref_def_E\x00sym_private_ext_D\x00sym_lazy_ref_D\x00sym_ref_def_D\x00sym_private_ext_C\x00sym_lazy_ref_C\x00sym_weak_def_C\x00sym_ref_def_C\x00sym_private_ext_B\x00sym_lazy_ref_B\x00sym_weak_def_B\x00sym_weak_ref_def_B\x00sym_private_ext_A\x00sym_symbol_resolver_A\x00sym_no_dead_strip_A\x00sym_lazy_ref_A\x00sym_ref_A\x00sym_weak_ref_A\x00sym_weak_def_A\x00sym_ref_def_A\x00sym_weak_ref_def_A\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 254)
+// CHECK: (('n_strx', 354)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_ref_def_A')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 268)
+// CHECK: (('n_strx', 158)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_ref_def_C')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 282)
+// CHECK: (('n_strx', 368)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 64)
// CHECK: ('_string', 'sym_weak_ref_def_A')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 301)
+// CHECK: (('n_strx', 220)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_weak_ref_def_B')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 320)
+// CHECK: (('n_strx', 190)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_lazy_ref_B')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 335)
+// CHECK: (('n_strx', 128)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_lazy_ref_C')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 350)
+// CHECK: (('n_strx', 257)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 256)
// CHECK: ('_string', 'sym_symbol_resolver_A')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 372)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 64)
// CHECK: ('_string', 'sym_desc_flags')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 162)
+// CHECK: (('n_strx', 172)
// CHECK: ('n_type', 0x1f)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_private_ext_B')
// CHECK: ),
// CHECK: # Symbol 9
-// CHECK: (('n_strx', 180)
+// CHECK: (('n_strx', 110)
// CHECK: ('n_type', 0x1f)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_private_ext_C')
// CHECK: ),
// CHECK: # Symbol 10
-// CHECK: (('n_strx', 54)
+// CHECK: (('n_strx', 339)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 128)
// CHECK: ('_string', 'sym_weak_def_A')
// CHECK: ),
// CHECK: # Symbol 11
-// CHECK: (('n_strx', 69)
+// CHECK: (('n_strx', 205)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 128)
// CHECK: ('_string', 'sym_weak_def_B')
// CHECK: ),
// CHECK: # Symbol 12
-// CHECK: (('n_strx', 84)
+// CHECK: (('n_strx', 143)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 128)
// CHECK: ('_string', 'sym_weak_def_C')
// CHECK: ),
// CHECK: # Symbol 13
-// CHECK: (('n_strx', 99)
+// CHECK: (('n_strx', 299)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 33)
// CHECK: ('_string', 'sym_lazy_ref_A')
// CHECK: ),
// CHECK: # Symbol 14
-// CHECK: (('n_strx', 114)
+// CHECK: (('n_strx', 81)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_lazy_ref_D')
// CHECK: ),
// CHECK: # Symbol 15
-// CHECK: (('n_strx', 129)
+// CHECK: (('n_strx', 34)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 33)
// CHECK: ('_string', 'sym_lazy_ref_E')
// CHECK: ),
// CHECK: # Symbol 16
-// CHECK: (('n_strx', 234)
+// CHECK: (('n_strx', 279)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_no_dead_strip_A')
// CHECK: ),
// CHECK: # Symbol 17
-// CHECK: (('n_strx', 144)
+// CHECK: (('n_strx', 239)
// CHECK: ('n_type', 0x11)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_private_ext_A')
// CHECK: ),
// CHECK: # Symbol 18
-// CHECK: (('n_strx', 198)
+// CHECK: (('n_strx', 63)
// CHECK: ('n_type', 0x11)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_private_ext_D')
// CHECK: ),
// CHECK: # Symbol 19
-// CHECK: (('n_strx', 216)
+// CHECK: (('n_strx', 16)
// CHECK: ('n_type', 0x11)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_private_ext_E')
// CHECK: ),
// CHECK: # Symbol 20
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 314)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 4660)
// CHECK: ('_string', 'sym_ref_A')
// CHECK: ),
// CHECK: # Symbol 21
-// CHECK: (('n_strx', 11)
+// CHECK: (('n_strx', 96)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_ref_def_D')
// CHECK: ),
// CHECK: # Symbol 22
-// CHECK: (('n_strx', 25)
+// CHECK: (('n_strx', 49)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 32)
// CHECK: ('_string', 'sym_ref_def_E')
// CHECK: ),
// CHECK: # Symbol 23
-// CHECK: (('n_strx', 39)
+// CHECK: (('n_strx', 324)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 64)
// CHECK: ('nsyms', 10)
// CHECK: ('stroff', 592)
// CHECK: ('strsize', 104)
-// CHECK: ('_string_data', '\x00sym_lsp_A\x00sym_lsp_G\x00sym_nlp_A\x00sym_nlp_G\x00sym_nlp_B\x00sym_nlp_E\x00sym_lsp_B\x00sym_lsp_E\x00sym_lsp_C\x00sym_nlp_C\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00sym_lsp_G\x00sym_nlp_G\x00sym_lsp_E\x00sym_nlp_E\x00sym_lsp_C\x00sym_nlp_C\x00sym_lsp_B\x00sym_nlp_B\x00sym_lsp_A\x00sym_nlp_A\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 81)
+// CHECK: (('n_strx', 41)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lsp_C')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 91)
+// CHECK: (('n_strx', 51)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_nlp_C')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 11)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lsp_G')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 31)
+// CHECK: (('n_strx', 11)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_nlp_G')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 81)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lsp_B')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 71)
+// CHECK: (('n_strx', 21)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 1)
// CHECK: ('_string', 'sym_lsp_E')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 21)
+// CHECK: (('n_strx', 91)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_nlp_A')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 41)
+// CHECK: (('n_strx', 71)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_nlp_B')
// CHECK: ),
// CHECK: # Symbol 9
-// CHECK: (('n_strx', 51)
+// CHECK: (('n_strx', 31)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK-X86_32: ('nsyms', 9)
// CHECK-X86_32: ('stroff', 368)
// CHECK-X86_32: ('strsize', 140)
-// CHECK-X86_32: ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00')
+// CHECK-X86_32: ('_string_data', '\x00sym_local_C\x00sym_globl_undef_C\x00sym_globl_def_C\x00sym_local_B\x00sym_globl_undef_B\x00sym_globl_def_B\x00sym_local_A\x00sym_globl_undef_A\x00sym_globl_def_A\x00\x00')
// CHECK-X86_32: ('_symbols', [
// CHECK-X86_32: # Symbol 0
-// CHECK-X86_32: (('n_strx', 103)
+// CHECK-X86_32: (('n_strx', 47)
// CHECK-X86_32: ('n_type', 0xe)
// CHECK-X86_32: ('n_sect', 1)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_local_B')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 1
-// CHECK-X86_32: (('n_strx', 115)
+// CHECK-X86_32: (('n_strx', 93)
// CHECK-X86_32: ('n_type', 0xe)
// CHECK-X86_32: ('n_sect', 1)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_local_A')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 2
-// CHECK-X86_32: (('n_strx', 127)
+// CHECK-X86_32: (('n_strx', 1)
// CHECK-X86_32: ('n_type', 0xe)
// CHECK-X86_32: ('n_sect', 1)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_local_C')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 3
-// CHECK-X86_32: (('n_strx', 35)
+// CHECK-X86_32: (('n_strx', 123)
// CHECK-X86_32: ('n_type', 0xf)
// CHECK-X86_32: ('n_sect', 1)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_globl_def_A')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 4
-// CHECK-X86_32: (('n_strx', 1)
+// CHECK-X86_32: (('n_strx', 77)
// CHECK-X86_32: ('n_type', 0xf)
// CHECK-X86_32: ('n_sect', 1)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_globl_def_B')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 5
-// CHECK-X86_32: (('n_strx', 69)
+// CHECK-X86_32: (('n_strx', 31)
// CHECK-X86_32: ('n_type', 0xf)
// CHECK-X86_32: ('n_sect', 1)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_globl_def_C')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 6
-// CHECK-X86_32: (('n_strx', 51)
+// CHECK-X86_32: (('n_strx', 105)
// CHECK-X86_32: ('n_type', 0x1)
// CHECK-X86_32: ('n_sect', 0)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_globl_undef_A')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 7
-// CHECK-X86_32: (('n_strx', 17)
+// CHECK-X86_32: (('n_strx', 59)
// CHECK-X86_32: ('n_type', 0x1)
// CHECK-X86_32: ('n_sect', 0)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_32: ('_string', 'sym_globl_undef_B')
// CHECK-X86_32: ),
// CHECK-X86_32: # Symbol 8
-// CHECK-X86_32: (('n_strx', 85)
+// CHECK-X86_32: (('n_strx', 13)
// CHECK-X86_32: ('n_type', 0x1)
// CHECK-X86_32: ('n_sect', 0)
// CHECK-X86_32: ('n_desc', 0)
// CHECK-X86_64: ('nsyms', 9)
// CHECK-X86_64: ('stroff', 436)
// CHECK-X86_64: ('strsize', 140)
-// CHECK-X86_64: ('_string_data', '\x00sym_globl_def_B\x00sym_globl_undef_B\x00sym_globl_def_A\x00sym_globl_undef_A\x00sym_globl_def_C\x00sym_globl_undef_C\x00sym_local_B\x00sym_local_A\x00sym_local_C\x00\x00')
+// CHECK-X86_64: ('_string_data', '\x00sym_local_C\x00sym_globl_undef_C\x00sym_globl_def_C\x00sym_local_B\x00sym_globl_undef_B\x00sym_globl_def_B\x00sym_local_A\x00sym_globl_undef_A\x00sym_globl_def_A\x00\x00')
// CHECK-X86_64: ('_symbols', [
// CHECK-X86_64: # Symbol 0
-// CHECK-X86_64: (('n_strx', 103)
+// CHECK-X86_64: (('n_strx', 47)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 1)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_local_B')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 1
-// CHECK-X86_64: (('n_strx', 115)
+// CHECK-X86_64: (('n_strx', 93)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 1)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_local_A')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 2
-// CHECK-X86_64: (('n_strx', 127)
+// CHECK-X86_64: (('n_strx', 1)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 1)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_local_C')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 3
-// CHECK-X86_64: (('n_strx', 35)
+// CHECK-X86_64: (('n_strx', 123)
// CHECK-X86_64: ('n_type', 0xf)
// CHECK-X86_64: ('n_sect', 1)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_globl_def_A')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 4
-// CHECK-X86_64: (('n_strx', 1)
+// CHECK-X86_64: (('n_strx', 77)
// CHECK-X86_64: ('n_type', 0xf)
// CHECK-X86_64: ('n_sect', 1)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_globl_def_B')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 5
-// CHECK-X86_64: (('n_strx', 69)
+// CHECK-X86_64: (('n_strx', 31)
// CHECK-X86_64: ('n_type', 0xf)
// CHECK-X86_64: ('n_sect', 1)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_globl_def_C')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 6
-// CHECK-X86_64: (('n_strx', 51)
+// CHECK-X86_64: (('n_strx', 105)
// CHECK-X86_64: ('n_type', 0x1)
// CHECK-X86_64: ('n_sect', 0)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_globl_undef_A')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 7
-// CHECK-X86_64: (('n_strx', 17)
+// CHECK-X86_64: (('n_strx', 59)
// CHECK-X86_64: ('n_type', 0x1)
// CHECK-X86_64: ('n_sect', 0)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'sym_globl_undef_B')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 8
-// CHECK-X86_64: (('n_strx', 85)
+// CHECK-X86_64: (('n_strx', 13)
// CHECK-X86_64: ('n_type', 0x1)
// CHECK-X86_64: ('n_sect', 0)
// CHECK-X86_64: ('n_desc', 0)
// CHECK: ('nsyms', 2)
// CHECK: ('stroff', 400)
// CHECK: ('strsize', 28)
-// CHECK: ('_string_data', '\x00_a$tlv$init\x00_b$tlv$init\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00_b$tlv$init\x00_a$tlv$init\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 13)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_a$tlv$init')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 13)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 9)
// CHECK: ('stroff', 840)
// CHECK: ('strsize', 80)
-// CHECK: ('_string_data', '\x00_c$tlv$init\x00_c\x00___tlv_bootstrap\x00_d$tlv$init\x00_d\x00_a\x00_b\x00_a$tlv$init\x00_b$tlv$init\x00\x00\x00')
+// CHECK: ('_string_data', '\x00_d$tlv$init\x00_c$tlv$init\x00_b$tlv$init\x00_a$tlv$init\x00___tlv_bootstrap\x00_d\x00_c\x00_b\x00_a\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 54)
+// CHECK: (('n_strx', 37)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_a$tlv$init')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 66)
+// CHECK: (('n_strx', 25)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_b$tlv$init')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 48)
+// CHECK: (('n_strx', 75)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_a')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 51)
+// CHECK: (('n_strx', 72)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_b')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 13)
+// CHECK: (('n_strx', 69)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_c')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 13)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_c$tlv$init')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 45)
+// CHECK: (('n_strx', 66)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_d')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 33)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_d$tlv$init')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 16)
+// CHECK: (('n_strx', 49)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 4)
// CHECK: ('stroff', 576)
// CHECK: ('strsize', 40)
-// CHECK: ('_string_data', '\x00_a\x00__tlv_bootstrap\x00_foo\x00_a$tlv$init\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00_a$tlv$init\x00__tlv_bootstrap\x00_foo\x00_a\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 25)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_a$tlv$init')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 34)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_a')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 20)
+// CHECK: (('n_strx', 29)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', '_foo')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 4)
+// CHECK: (('n_strx', 13)
// CHECK: ('n_type', 0x1)
// CHECK: ('n_sect', 0)
// CHECK: ('n_desc', 0)
// CHECK-I386: ('nsyms', 10)
// CHECK-I386: ('stroff', 576)
// CHECK-I386: ('strsize', 24)
-// CHECK-I386: ('_string_data', '\x00d2\x00d\x00d3\x00a\x00b\x00c\x00e\x00g\x00f\x00t0\x00')
+// CHECK-I386: ('_string_data', '\x00g\x00f\x00e\x00d\x00c\x00b\x00a\x00d3\x00d2\x00t0\x00')
// CHECK-I386: ('_symbols', [
// CHECK-I386: # Symbol 0
-// CHECK-I386: (('n_strx', 9)
+// CHECK-I386: (('n_strx', 13)
// CHECK-I386: ('n_type', 0xe)
// CHECK-I386: ('n_sect', 2)
// CHECK-I386: ('n_desc', 0)
// CHECK-I386: ('_string', 'b')
// CHECK-I386: ),
// CHECK-I386: # Symbol 2
-// CHECK-I386: (('n_strx', 13)
+// CHECK-I386: (('n_strx', 9)
// CHECK-I386: ('n_type', 0xe)
// CHECK-I386: ('n_sect', 2)
// CHECK-I386: ('n_desc', 0)
// CHECK-I386: ('_string', 'c')
// CHECK-I386: ),
// CHECK-I386: # Symbol 3
-// CHECK-I386: (('n_strx', 15)
+// CHECK-I386: (('n_strx', 5)
// CHECK-I386: ('n_type', 0xe)
// CHECK-I386: ('n_sect', 2)
// CHECK-I386: ('n_desc', 0)
// CHECK-I386: ('_string', 'e')
// CHECK-I386: ),
// CHECK-I386: # Symbol 4
-// CHECK-I386: (('n_strx', 17)
+// CHECK-I386: (('n_strx', 1)
// CHECK-I386: ('n_type', 0xe)
// CHECK-I386: ('n_sect', 2)
// CHECK-I386: ('n_desc', 0)
// CHECK-I386: ('_string', 'g')
// CHECK-I386: ),
// CHECK-I386: # Symbol 5
-// CHECK-I386: (('n_strx', 19)
+// CHECK-I386: (('n_strx', 3)
// CHECK-I386: ('n_type', 0xe)
// CHECK-I386: ('n_sect', 2)
// CHECK-I386: ('n_desc', 0)
// CHECK-I386: ('_string', 't0')
// CHECK-I386: ),
// CHECK-I386: # Symbol 7
-// CHECK-I386: (('n_strx', 4)
+// CHECK-I386: (('n_strx', 7)
// CHECK-I386: ('n_type', 0x1)
// CHECK-I386: ('n_sect', 0)
// CHECK-I386: ('n_desc', 0)
// CHECK-I386: ('_string', 'd')
// CHECK-I386: ),
// CHECK-I386: # Symbol 8
-// CHECK-I386: (('n_strx', 1)
+// CHECK-I386: (('n_strx', 18)
// CHECK-I386: ('n_type', 0xb)
// CHECK-I386: ('n_sect', 0)
// CHECK-I386: ('n_desc', 0)
-// CHECK-I386: ('n_value', 4)
+// CHECK-I386: ('n_value', 7)
// CHECK-I386: ('_string', 'd2')
// CHECK-I386: ),
// CHECK-I386: # Symbol 9
-// CHECK-I386: (('n_strx', 6)
+// CHECK-I386: (('n_strx', 15)
// CHECK-I386: ('n_type', 0x1)
// CHECK-I386: ('n_sect', 0)
// CHECK-I386: ('n_desc', 0)
// CHECK-X86_64: ('nsyms', 10)
// CHECK-X86_64: ('stroff', 660)
// CHECK-X86_64: ('strsize', 24)
-// CHECK-X86_64: ('_string_data', '\x00d2\x00d\x00d3\x00a\x00b\x00c\x00e\x00g\x00f\x00t0\x00')
+// CHECK-X86_64: ('_string_data', '\x00g\x00f\x00e\x00d\x00c\x00b\x00a\x00d3\x00d2\x00t0\x00')
// CHECK-X86_64: ('_symbols', [
// CHECK-X86_64: # Symbol 0
-// CHECK-X86_64: (('n_strx', 9)
+// CHECK-X86_64: (('n_strx', 13)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 2)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'b')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 2
-// CHECK-X86_64: (('n_strx', 13)
+// CHECK-X86_64: (('n_strx', 9)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 2)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'c')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 3
-// CHECK-X86_64: (('n_strx', 15)
+// CHECK-X86_64: (('n_strx', 5)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 2)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'e')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 4
-// CHECK-X86_64: (('n_strx', 17)
+// CHECK-X86_64: (('n_strx', 1)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 2)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'g')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 5
-// CHECK-X86_64: (('n_strx', 19)
+// CHECK-X86_64: (('n_strx', 3)
// CHECK-X86_64: ('n_type', 0xe)
// CHECK-X86_64: ('n_sect', 2)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 't0')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 7
-// CHECK-X86_64: (('n_strx', 4)
+// CHECK-X86_64: (('n_strx', 7)
// CHECK-X86_64: ('n_type', 0x1)
// CHECK-X86_64: ('n_sect', 0)
// CHECK-X86_64: ('n_desc', 0)
// CHECK-X86_64: ('_string', 'd')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 8
-// CHECK-X86_64: (('n_strx', 1)
+// CHECK-X86_64: (('n_strx', 18)
// CHECK-X86_64: ('n_type', 0xb)
// CHECK-X86_64: ('n_sect', 0)
// CHECK-X86_64: ('n_desc', 0)
-// CHECK-X86_64: ('n_value', 4)
+// CHECK-X86_64: ('n_value', 7)
// CHECK-X86_64: ('_string', 'd2')
// CHECK-X86_64: ),
// CHECK-X86_64: # Symbol 9
-// CHECK-X86_64: (('n_strx', 6)
+// CHECK-X86_64: (('n_strx', 15)
// CHECK-X86_64: ('n_type', 0x1)
// CHECK-X86_64: ('n_sect', 0)
// CHECK-X86_64: ('n_desc', 0)
// CHECK: ('nsyms', 40)
// CHECK: ('stroff', 3116)
// CHECK: ('strsize', 152)
-// CHECK: ('_string_data', '\x00D0\x00D1\x00D2\x00D3\x00D4\x00D5\x00D6\x00D7\x00D8\x00D9\x00D10\x00D11\x00D12\x00D13\x00D14\x00D15\x00D16\x00D17\x00D18\x00D19\x00D20\x00D21\x00D22\x00D23\x00D24\x00D25\x00D26\x00D27\x00D28\x00D29\x00D30\x00D31\x00D32\x00D33\x00D34\x00D35\x00D36\x00D37\x00D38\x00D39\x00\x00')
+// CHECK: ('_string_data', '\x00D9\x00D39\x00D29\x00D19\x00D8\x00D38\x00D28\x00D18\x00D7\x00D37\x00D27\x00D17\x00D6\x00D36\x00D26\x00D16\x00D5\x00D35\x00D25\x00D15\x00D4\x00D34\x00D24\x00D14\x00D3\x00D33\x00D23\x00D13\x00D2\x00D32\x00D22\x00D12\x00D1\x00D31\x00D21\x00D11\x00D0\x00D30\x00D20\x00D10\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 136)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D0')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 4)
+// CHECK: (('n_strx', 121)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D1')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 7)
+// CHECK: (('n_strx', 106)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D2')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 10)
+// CHECK: (('n_strx', 91)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D3')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 13)
+// CHECK: (('n_strx', 76)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D4')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 16)
+// CHECK: (('n_strx', 61)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 5)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D5')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 19)
+// CHECK: (('n_strx', 46)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 6)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D6')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 22)
+// CHECK: (('n_strx', 31)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 7)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D7')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 25)
+// CHECK: (('n_strx', 16)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 8)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D8')
// CHECK: ),
// CHECK: # Symbol 9
-// CHECK: (('n_strx', 28)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 9)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D9')
// CHECK: ),
// CHECK: # Symbol 10
-// CHECK: (('n_strx', 31)
+// CHECK: (('n_strx', 147)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 10)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D10')
// CHECK: ),
// CHECK: # Symbol 11
-// CHECK: (('n_strx', 35)
+// CHECK: (('n_strx', 132)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 11)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D11')
// CHECK: ),
// CHECK: # Symbol 12
-// CHECK: (('n_strx', 39)
+// CHECK: (('n_strx', 117)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 12)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D12')
// CHECK: ),
// CHECK: # Symbol 13
-// CHECK: (('n_strx', 43)
+// CHECK: (('n_strx', 102)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 13)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D13')
// CHECK: ),
// CHECK: # Symbol 14
-// CHECK: (('n_strx', 47)
+// CHECK: (('n_strx', 87)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 14)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D14')
// CHECK: ),
// CHECK: # Symbol 15
-// CHECK: (('n_strx', 51)
+// CHECK: (('n_strx', 72)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 15)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D15')
// CHECK: ),
// CHECK: # Symbol 16
-// CHECK: (('n_strx', 55)
+// CHECK: (('n_strx', 57)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 16)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D16')
// CHECK: ),
// CHECK: # Symbol 17
-// CHECK: (('n_strx', 59)
+// CHECK: (('n_strx', 42)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 17)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D17')
// CHECK: ),
// CHECK: # Symbol 18
-// CHECK: (('n_strx', 63)
+// CHECK: (('n_strx', 27)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 18)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D18')
// CHECK: ),
// CHECK: # Symbol 19
-// CHECK: (('n_strx', 67)
+// CHECK: (('n_strx', 12)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 19)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D19')
// CHECK: ),
// CHECK: # Symbol 20
-// CHECK: (('n_strx', 71)
+// CHECK: (('n_strx', 143)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 20)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D20')
// CHECK: ),
// CHECK: # Symbol 21
-// CHECK: (('n_strx', 75)
+// CHECK: (('n_strx', 128)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 21)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D21')
// CHECK: ),
// CHECK: # Symbol 22
-// CHECK: (('n_strx', 79)
+// CHECK: (('n_strx', 113)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 22)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D22')
// CHECK: ),
// CHECK: # Symbol 23
-// CHECK: (('n_strx', 83)
+// CHECK: (('n_strx', 98)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 23)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D23')
// CHECK: ),
// CHECK: # Symbol 24
-// CHECK: (('n_strx', 87)
+// CHECK: (('n_strx', 83)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 24)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D24')
// CHECK: ),
// CHECK: # Symbol 25
-// CHECK: (('n_strx', 91)
+// CHECK: (('n_strx', 68)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 25)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D25')
// CHECK: ),
// CHECK: # Symbol 26
-// CHECK: (('n_strx', 95)
+// CHECK: (('n_strx', 53)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 26)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D26')
// CHECK: ),
// CHECK: # Symbol 27
-// CHECK: (('n_strx', 99)
+// CHECK: (('n_strx', 38)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 27)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D27')
// CHECK: ),
// CHECK: # Symbol 28
-// CHECK: (('n_strx', 103)
+// CHECK: (('n_strx', 23)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 28)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D28')
// CHECK: ),
// CHECK: # Symbol 29
-// CHECK: (('n_strx', 107)
+// CHECK: (('n_strx', 8)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 29)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D29')
// CHECK: ),
// CHECK: # Symbol 30
-// CHECK: (('n_strx', 111)
+// CHECK: (('n_strx', 139)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 30)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D30')
// CHECK: ),
// CHECK: # Symbol 31
-// CHECK: (('n_strx', 115)
+// CHECK: (('n_strx', 124)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 31)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D31')
// CHECK: ),
// CHECK: # Symbol 32
-// CHECK: (('n_strx', 119)
+// CHECK: (('n_strx', 109)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 32)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D32')
// CHECK: ),
// CHECK: # Symbol 33
-// CHECK: (('n_strx', 123)
+// CHECK: (('n_strx', 94)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 33)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D33')
// CHECK: ),
// CHECK: # Symbol 34
-// CHECK: (('n_strx', 127)
+// CHECK: (('n_strx', 79)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 34)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D34')
// CHECK: ),
// CHECK: # Symbol 35
-// CHECK: (('n_strx', 131)
+// CHECK: (('n_strx', 64)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D35')
// CHECK: ),
// CHECK: # Symbol 36
-// CHECK: (('n_strx', 135)
+// CHECK: (('n_strx', 49)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D36')
// CHECK: ),
// CHECK: # Symbol 37
-// CHECK: (('n_strx', 139)
+// CHECK: (('n_strx', 34)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D37')
// CHECK: ),
// CHECK: # Symbol 38
-// CHECK: (('n_strx', 143)
+// CHECK: (('n_strx', 19)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 35)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D38')
// CHECK: ),
// CHECK: # Symbol 39
-// CHECK: (('n_strx', 147)
+// CHECK: (('n_strx', 4)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 36)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 40)
// CHECK: ('stroff', 3328)
// CHECK: ('strsize', 152)
-// CHECK: ('_string_data', '\x00D0\x00D1\x00D2\x00D3\x00L4\x00D4\x00D5\x00D6\x00D7\x00D8\x00D9\x00D12\x00D13\x00D16\x00D17\x00D18\x00D19\x00D20\x00D21\x00D22\x00D23\x00D24\x00D25\x00D26\x00D27\x00D28\x00D29\x00D30\x00D31\x00D32\x00D33\x00D34\x00L35\x00D35\x00L36\x00D36\x00L37\x00D37\x00L38\x00D38\x00\x00\x00')
+// CHECK: ('_string_data', '\x00D9\x00D29\x00D19\x00D8\x00L38\x00D38\x00D28\x00D18\x00D7\x00L37\x00D37\x00D27\x00D17\x00D6\x00L36\x00D36\x00D26\x00D16\x00D5\x00L35\x00D35\x00D25\x00L4\x00D4\x00D34\x00D24\x00D3\x00D33\x00D23\x00D13\x00D2\x00D32\x00D22\x00D12\x00D1\x00D31\x00D21\x00D0\x00D30\x00D20\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 139)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D0')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 4)
+// CHECK: (('n_strx', 128)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 1)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D1')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 7)
+// CHECK: (('n_strx', 113)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D2')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 10)
+// CHECK: (('n_strx', 98)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 3)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D3')
// CHECK: ),
// CHECK: # Symbol 4
-// CHECK: (('n_strx', 13)
+// CHECK: (('n_strx', 84)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'L4')
// CHECK: ),
// CHECK: # Symbol 5
-// CHECK: (('n_strx', 16)
+// CHECK: (('n_strx', 87)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D4')
// CHECK: ),
// CHECK: # Symbol 6
-// CHECK: (('n_strx', 19)
+// CHECK: (('n_strx', 69)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 5)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D5')
// CHECK: ),
// CHECK: # Symbol 7
-// CHECK: (('n_strx', 22)
+// CHECK: (('n_strx', 50)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 6)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D6')
// CHECK: ),
// CHECK: # Symbol 8
-// CHECK: (('n_strx', 25)
+// CHECK: (('n_strx', 31)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 7)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D7')
// CHECK: ),
// CHECK: # Symbol 9
-// CHECK: (('n_strx', 28)
+// CHECK: (('n_strx', 12)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 8)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D8')
// CHECK: ),
// CHECK: # Symbol 10
-// CHECK: (('n_strx', 31)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 9)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D9')
// CHECK: ),
// CHECK: # Symbol 11
-// CHECK: (('n_strx', 34)
+// CHECK: (('n_strx', 124)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 10)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D12')
// CHECK: ),
// CHECK: # Symbol 12
-// CHECK: (('n_strx', 38)
+// CHECK: (('n_strx', 109)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 11)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D13')
// CHECK: ),
// CHECK: # Symbol 13
-// CHECK: (('n_strx', 42)
+// CHECK: (('n_strx', 65)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 12)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D17')
// CHECK: ),
// CHECK: # Symbol 15
-// CHECK: (('n_strx', 50)
+// CHECK: (('n_strx', 27)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 14)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D18')
// CHECK: ),
// CHECK: # Symbol 16
-// CHECK: (('n_strx', 54)
+// CHECK: (('n_strx', 8)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 15)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D19')
// CHECK: ),
// CHECK: # Symbol 17
-// CHECK: (('n_strx', 58)
+// CHECK: (('n_strx', 146)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 16)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D20')
// CHECK: ),
// CHECK: # Symbol 18
-// CHECK: (('n_strx', 62)
+// CHECK: (('n_strx', 135)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 17)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D21')
// CHECK: ),
// CHECK: # Symbol 19
-// CHECK: (('n_strx', 66)
+// CHECK: (('n_strx', 120)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 18)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D22')
// CHECK: ),
// CHECK: # Symbol 20
-// CHECK: (('n_strx', 70)
+// CHECK: (('n_strx', 105)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 19)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D23')
// CHECK: ),
// CHECK: # Symbol 21
-// CHECK: (('n_strx', 74)
+// CHECK: (('n_strx', 94)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 20)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D24')
// CHECK: ),
// CHECK: # Symbol 22
-// CHECK: (('n_strx', 78)
+// CHECK: (('n_strx', 80)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 21)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D25')
// CHECK: ),
// CHECK: # Symbol 23
-// CHECK: (('n_strx', 82)
+// CHECK: (('n_strx', 61)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 22)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D26')
// CHECK: ),
// CHECK: # Symbol 24
-// CHECK: (('n_strx', 86)
+// CHECK: (('n_strx', 42)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 23)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D27')
// CHECK: ),
// CHECK: # Symbol 25
-// CHECK: (('n_strx', 90)
+// CHECK: (('n_strx', 23)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 24)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D28')
// CHECK: ),
// CHECK: # Symbol 26
-// CHECK: (('n_strx', 94)
+// CHECK: (('n_strx', 4)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 25)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D29')
// CHECK: ),
// CHECK: # Symbol 27
-// CHECK: (('n_strx', 98)
+// CHECK: (('n_strx', 142)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 26)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D30')
// CHECK: ),
// CHECK: # Symbol 28
-// CHECK: (('n_strx', 102)
+// CHECK: (('n_strx', 131)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 27)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D31')
// CHECK: ),
// CHECK: # Symbol 29
-// CHECK: (('n_strx', 106)
+// CHECK: (('n_strx', 116)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 28)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D32')
// CHECK: ),
// CHECK: # Symbol 30
-// CHECK: (('n_strx', 110)
+// CHECK: (('n_strx', 101)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 29)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D33')
// CHECK: ),
// CHECK: # Symbol 31
-// CHECK: (('n_strx', 114)
+// CHECK: (('n_strx', 90)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 30)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D34')
// CHECK: ),
// CHECK: # Symbol 32
-// CHECK: (('n_strx', 118)
+// CHECK: (('n_strx', 72)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'L35')
// CHECK: ),
// CHECK: # Symbol 33
-// CHECK: (('n_strx', 122)
+// CHECK: (('n_strx', 76)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D35')
// CHECK: ),
// CHECK: # Symbol 34
-// CHECK: (('n_strx', 126)
+// CHECK: (('n_strx', 53)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'L36')
// CHECK: ),
// CHECK: # Symbol 35
-// CHECK: (('n_strx', 130)
+// CHECK: (('n_strx', 57)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D36')
// CHECK: ),
// CHECK: # Symbol 36
-// CHECK: (('n_strx', 134)
+// CHECK: (('n_strx', 34)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'L37')
// CHECK: ),
// CHECK: # Symbol 37
-// CHECK: (('n_strx', 138)
+// CHECK: (('n_strx', 38)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 4)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'D37')
// CHECK: ),
// CHECK: # Symbol 38
-// CHECK: (('n_strx', 142)
+// CHECK: (('n_strx', 15)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 31)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'L38')
// CHECK: ),
// CHECK: # Symbol 39
-// CHECK: (('n_strx', 146)
+// CHECK: (('n_strx', 19)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 31)
// CHECK: ('n_desc', 0)
// CHECK: ('nsyms', 4)
// CHECK: ('stroff', 372)
// CHECK: ('strsize', 52)
-// CHECK: ('_string_data', '\x00sym_lcomm_C\x00sym_lcomm_D\x00sym_lcomm_A\x00sym_lcomm_B\x00\x00\x00\x00')
+// CHECK: ('_string_data', '\x00sym_lcomm_D\x00sym_lcomm_C\x00sym_lcomm_B\x00sym_lcomm_A\x00\x00\x00\x00')
// CHECK: ('_symbols', [
// CHECK: # Symbol 0
-// CHECK: (('n_strx', 25)
+// CHECK: (('n_strx', 37)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lcomm_A')
// CHECK: ),
// CHECK: # Symbol 1
-// CHECK: (('n_strx', 37)
+// CHECK: (('n_strx', 25)
// CHECK: ('n_type', 0xe)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lcomm_B')
// CHECK: ),
// CHECK: # Symbol 2
-// CHECK: (('n_strx', 1)
+// CHECK: (('n_strx', 13)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)
// CHECK: ('_string', 'sym_lcomm_C')
// CHECK: ),
// CHECK: # Symbol 3
-// CHECK: (('n_strx', 13)
+// CHECK: (('n_strx', 1)
// CHECK: ('n_type', 0xf)
// CHECK: ('n_sect', 2)
// CHECK: ('n_desc', 0)