From afd779f72d74282192665f649007c33a75de9f16 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Mon, 22 Jun 2015 17:52:52 +0000 Subject: [PATCH] Bring r240130 back. Now that pr23900 is fixed, we can bring it back with no changes. Original message: Make all temporary symbols unnamed. What this does is make all symbols that would otherwise start with a .L (or L on MachO) unnamed. Some of these symbols still show up in the symbol table, but we can just make them unnamed. In order to make sure we produce identical results when going thought assembly, all .L (not just the compiler produced ones), are now unnamed. Running llc on llvm-as.opt.bc, the peak memory usage goes from 208.24MB to 205.57MB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240302 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCContext.h | 8 +-- lib/MC/ELFObjectWriter.cpp | 13 +++- lib/MC/MCContext.cpp | 28 ++++---- lib/MC/MachObjectWriter.cpp | 3 +- test/CodeGen/SPARC/obj-relocs.ll | 4 +- test/MC/ARM/elf-reloc-02.s | 2 +- test/MC/ELF/basic-elf-32.s | 4 +- test/MC/ELF/compression.s | 21 +++++- test/MC/ELF/discriminator.s | 6 +- test/MC/ELF/merge.s | 4 +- test/MC/ELF/relocation-386.s | 2 +- test/MC/ELF/undef-temp.s | 4 ++ test/MC/ELF/undef.s | 12 +--- test/MC/ELF/undef2.s | 18 ----- test/MC/MachO/AArch64/classrefs.s | 2 +- test/MC/MachO/AArch64/darwin-ARM64-reloc.s | 2 +- test/MC/MachO/AArch64/ld64-workaround.s | 8 +-- test/MC/MachO/AArch64/mergeable.s | 8 +-- test/MC/MachO/AArch64/reloc-crash.s | 2 +- test/MC/MachO/x86_64-mergeable.s | 4 +- test/MC/MachO/x86_64-symbols.s | 78 +++++++++++----------- test/MC/Mips/cpsetup.s | 6 +- test/MC/Mips/elf-relsym.s | 8 +-- test/MC/Mips/xgot.s | 4 +- test/MC/Sparc/sparc-pic.s | 4 +- 25 files changed, 125 insertions(+), 130 deletions(-) create mode 100644 test/MC/ELF/undef-temp.s delete mode 100644 test/MC/ELF/undef2.s diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 52017fda189..99b8a5c6327 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -208,8 +208,7 @@ namespace llvm { MCSymbol *createSymbolImpl(const StringMapEntry *Name, bool CanBeUnnamed); - MCSymbol *createSymbol(StringRef Name, bool AlwaysAddSuffix, - bool IsTemporary); + MCSymbol *createSymbol(StringRef Name, bool AlwaysAddSuffix); MCSymbol *getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal, unsigned Instance); @@ -249,10 +248,9 @@ namespace llvm { /// Create and return a new assembler temporary symbol with a unique but /// unspecified name. - MCSymbol *createTempSymbol(bool CanBeUnnamed = true); + MCSymbol *createTempSymbol(); - MCSymbol *createTempSymbol(const Twine &Name, bool AlwaysAddSuffix, - bool CanBeUnnamed = true); + MCSymbol *createTempSymbol(const Twine &Name, bool AlwaysAddSuffix); /// Create the definition of a directional local symbol for numbered label /// (used for "1:" definitions). diff --git a/lib/MC/ELFObjectWriter.cpp b/lib/MC/ELFObjectWriter.cpp index c9df8fcf441..e7f5265384b 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -787,10 +787,15 @@ void ELFObjectWriter::computeSymbolTable( Renames.count(&Symbol))) continue; + if (Symbol.isTemporary() && Symbol.isUndefined()) + Ctx.reportFatalError(SMLoc(), "Undefined temporary"); + ELFSymbolData MSD; MSD.Symbol = cast(&Symbol); bool Local = Symbol.getBinding() == ELF::STB_LOCAL; + assert(Local || !Symbol.isTemporary()); + if (Symbol.isAbsolute()) { MSD.SectionIndex = ELF::SHN_ABS; } else if (Symbol.isCommon()) { @@ -889,9 +894,11 @@ void ELFObjectWriter::computeSymbolTable( unsigned Index = FileNames.size() + 1; for (ELFSymbolData &MSD : LocalSymbolData) { - unsigned StringIndex = MSD.Symbol->getType() == ELF::STT_SECTION - ? 0 - : StrTabBuilder.getOffset(MSD.Name); + unsigned StringIndex; + if (MSD.Symbol->getType() == ELF::STT_SECTION || MSD.Name.empty()) + StringIndex = 0; + else + StringIndex = StrTabBuilder.getOffset(MSD.Name); MSD.Symbol->setIndex(Index++); writeSymbol(Writer, StringIndex, MSD, Layout); } diff --git a/lib/MC/MCContext.cpp b/lib/MC/MCContext.cpp index c601c56f395..01074eb5e79 100644 --- a/lib/MC/MCContext.cpp +++ b/lib/MC/MCContext.cpp @@ -116,7 +116,7 @@ MCSymbol *MCContext::getOrCreateSymbol(const Twine &Name) { MCSymbol *&Sym = Symbols[NameRef]; if (!Sym) - Sym = createSymbol(NameRef, false, false); + Sym = createSymbol(NameRef, false); return Sym; } @@ -175,17 +175,16 @@ MCSymbol *MCContext::createSymbolImpl(const StringMapEntry *Name, IsTemporary); } -MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix, - bool CanBeUnnamed) { - if (CanBeUnnamed && !UseNamesOnTempLabels) - return createSymbolImpl(nullptr, true); - +MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix) { // Determine whether this is an user writter assembler temporary or normal // label, if used. - bool IsTemporary = CanBeUnnamed; - if (AllowTemporaryLabels && !IsTemporary) + bool IsTemporary = false; + if (AllowTemporaryLabels) IsTemporary = Name.startswith(MAI->getPrivateGlobalPrefix()); + if (IsTemporary && !UseNamesOnTempLabels) + return createSymbolImpl(nullptr, true); + SmallString<128> NewName = Name; bool AddSuffix = AlwaysAddSuffix; unsigned &NextUniqueID = NextID[Name]; @@ -206,21 +205,20 @@ MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix, llvm_unreachable("Infinite loop"); } -MCSymbol *MCContext::createTempSymbol(const Twine &Name, bool AlwaysAddSuffix, - bool CanBeUnnamed) { +MCSymbol *MCContext::createTempSymbol(const Twine &Name, bool AlwaysAddSuffix) { SmallString<128> NameSV; raw_svector_ostream(NameSV) << MAI->getPrivateGlobalPrefix() << Name; - return createSymbol(NameSV, AlwaysAddSuffix, CanBeUnnamed); + return createSymbol(NameSV, AlwaysAddSuffix); } MCSymbol *MCContext::createLinkerPrivateTempSymbol() { SmallString<128> NameSV; raw_svector_ostream(NameSV) << MAI->getLinkerPrivateGlobalPrefix() << "tmp"; - return createSymbol(NameSV, true, false); + return createSymbol(NameSV, true); } -MCSymbol *MCContext::createTempSymbol(bool CanBeUnnamed) { - return createTempSymbol("tmp", true, CanBeUnnamed); +MCSymbol *MCContext::createTempSymbol() { + return createTempSymbol("tmp", true); } unsigned MCContext::NextInstance(unsigned LocalLabelVal) { @@ -241,7 +239,7 @@ MCSymbol *MCContext::getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal, unsigned Instance) { MCSymbol *&Sym = LocalSymbols[std::make_pair(LocalLabelVal, Instance)]; if (!Sym) - Sym = createTempSymbol(false); + Sym = createTempSymbol(); return Sym; } diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index 8ce6127e386..d7934ad80c6 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -565,7 +565,8 @@ void MachObjectWriter::computeSymbolTable( MachSymbolData MSD; MSD.Symbol = &Symbol; - MSD.StringIndex = StringTable.getOffset(Symbol.getName()); + StringRef Name = Symbol.getName(); + MSD.StringIndex = Name.empty() ? 0 : StringTable.getOffset(Name); if (Symbol.isAbsolute()) { MSD.SectionIndex = 0; diff --git a/test/CodeGen/SPARC/obj-relocs.ll b/test/CodeGen/SPARC/obj-relocs.ll index 0e7e04032be..17734f6e53e 100644 --- a/test/CodeGen/SPARC/obj-relocs.ll +++ b/test/CodeGen/SPARC/obj-relocs.ll @@ -16,8 +16,8 @@ ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x8 ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0 ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0 -; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 .L.mystr 0x0 -; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 .L.mystr 0x0 +; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 - 0x0 +; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 - 0x0 ; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0 ; CHECK-PIC: ] diff --git a/test/MC/ARM/elf-reloc-02.s b/test/MC/ARM/elf-reloc-02.s index 24e2bb3b6fd..a616f4617a5 100644 --- a/test/MC/ARM/elf-reloc-02.s +++ b/test/MC/ARM/elf-reloc-02.s @@ -22,6 +22,6 @@ // OBJ: Relocations [ // OBJ: Section {{.*}} .rel.text { -// OBJ-NEXT: 0x{{[0-9,A-F]+}} R_ARM_MOVW_ABS_NC .L.str +// OBJ-NEXT: 0x{{[0-9,A-F]+}} R_ARM_MOVW_ABS_NC - // OBJ: } // OBJ: ] diff --git a/test/MC/ELF/basic-elf-32.s b/test/MC/ELF/basic-elf-32.s index 1036b04a747..cc6b70c2bed 100644 --- a/test/MC/ELF/basic-elf-32.s +++ b/test/MC/ELF/basic-elf-32.s @@ -46,9 +46,9 @@ main: # @main // CHECK: Relocations [ // CHECK: Section {{.*}} .rel.text { -// CHECK: 0x6 R_386_32 .L.str1 +// CHECK: 0x6 R_386_32 - // CHECK: 0xB R_386_PC32 puts -// CHECK: 0x12 R_386_32 .L.str2 +// CHECK: 0x12 R_386_32 - // CHECK: 0x17 R_386_PC32 puts // CHECK: } // CHECK: ] diff --git a/test/MC/ELF/compression.s b/test/MC/ELF/compression.s index 5560ba78c68..12cab4bfc8f 100644 --- a/test/MC/ELF/compression.s +++ b/test/MC/ELF/compression.s @@ -28,9 +28,24 @@ // In x86 32 bit named symbols are used for temporary symbols in merge // sections, so make sure we handle symbols inside compressed sections -// 386-SYMBOLS: Name: .Linfo_string0 -// 386-SYMBOLS-NOT: } -// 386-SYMBOLS: Section: .zdebug_str +// 386-SYMBOLS: Symbol { +// 386-SYMBOLS-NEXT: Name: (0) +// 386-SYMBOLS-NEXT: Value: 0x0 +// 386-SYMBOLS-NEXT: Size: 0 +// 386-SYMBOLS-NEXT: Binding: Local (0x0) +// 386-SYMBOLS-NEXT: Type: None (0x0) +// 386-SYMBOLS-NEXT: Other: 0 +// 386-SYMBOLS-NEXT: Section: Undefined (0x0) +// 386-SYMBOLS-NEXT: } +// 386-SYMBOLS-NEXT: Symbol { +// 386-SYMBOLS-NEXT: Name: (0) +// 386-SYMBOLS-NEXT: Value: 0x0 +// 386-SYMBOLS-NEXT: Size: 0 +// 386-SYMBOLS-NEXT: Binding: Local (0x0) +// 386-SYMBOLS-NEXT: Type: None (0x0) +// 386-SYMBOLS-NEXT: Other: 0 +// 386-SYMBOLS-NEXT: Section: .zdebug_str (0xA) +// 386-SYMBOLS-NEXT: } .section .debug_line,"",@progbits diff --git a/test/MC/ELF/discriminator.s b/test/MC/ELF/discriminator.s index 8a695b96ede..75e4e86cee0 100644 --- a/test/MC/ELF/discriminator.s +++ b/test/MC/ELF/discriminator.s @@ -19,12 +19,12 @@ foo: .long .L.debug_abbrev_begin # Offset Into Abbrev. Section .byte 8 # Address Size (in bytes) .byte 1 # Abbrev [1] 0xb:0x1b DW_TAG_compile_unit - .long .Linfo_string0 # DW_AT_producer + .long info_string0 # DW_AT_producer .short 12 # DW_AT_language - .long .Linfo_string1 # DW_AT_name + .long info_string1 # DW_AT_name .quad 0 # DW_AT_low_pc .long 0 # DW_AT_stmt_list - .long .Linfo_string2 # DW_AT_comp_dir + .long info_string2 # DW_AT_comp_dir # DW_AT_APPLE_optimized .section .debug_abbrev,"",@progbits .L.debug_abbrev_begin: diff --git a/test/MC/ELF/merge.s b/test/MC/ELF/merge.s index e787728ae19..8fdb3a3a431 100644 --- a/test/MC/ELF/merge.s +++ b/test/MC/ELF/merge.s @@ -22,9 +22,9 @@ foo: // CHECK: Relocations [ // CHECK-NEXT: Section {{.*}} .rela.text { -// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_PC32 .Lfoo 0x{{[^ ]+}} +// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_PC32 - 0x{{[^ ]+}} // CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32 .sec1 0x{{[^ ]+}} -// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32 .Lfoo 0x{{[^ ]+}} +// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32 - 0x{{[^ ]+}} // CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_PLT32 foo 0x{{[^ ]+}} // CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_GOTPCREL foo 0x{{[^ ]+}} // CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32S zed 0x{{[^ ]+}} diff --git a/test/MC/ELF/relocation-386.s b/test/MC/ELF/relocation-386.s index 6b7e02f03ea..5ad1227b759 100644 --- a/test/MC/ELF/relocation-386.s +++ b/test/MC/ELF/relocation-386.s @@ -5,7 +5,7 @@ // CHECK: Relocations [ // CHECK-NEXT: Section {{.*}} .rel.text { -// CHECK-NEXT: 0x2 R_386_GOTOFF .Lfoo 0x0 +// CHECK-NEXT: 0x2 R_386_GOTOFF - 0x0 // CHECK-NEXT: 0x{{[^ ]+}} R_386_PLT32 bar2 0x0 // CHECK-NEXT: 0x{{[^ ]+}} R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0 // Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss) diff --git a/test/MC/ELF/undef-temp.s b/test/MC/ELF/undef-temp.s new file mode 100644 index 00000000000..45537a998e7 --- /dev/null +++ b/test/MC/ELF/undef-temp.s @@ -0,0 +1,4 @@ +// RUN: not llvm-mc -filetype=obj -triple x86_64-pc-linux %s -o - 2>&1 | FileCheck %s + +// CHECK: Undefined temporary + .long .Lfoo diff --git a/test/MC/ELF/undef.s b/test/MC/ELF/undef.s index 9577ea22875..b491ba1527b 100644 --- a/test/MC/ELF/undef.s +++ b/test/MC/ELF/undef.s @@ -2,7 +2,6 @@ // Test which symbols should be in the symbol table - .long .Lsym1 .Lsym2: .Lsym3: .Lsym4 = .Lsym2 - .Lsym3 @@ -33,7 +32,7 @@ test2_b = undef + 1 // CHECK-NEXT: Section: Undefined // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .Lsym8 +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local @@ -42,15 +41,6 @@ test2_b = undef + 1 // CHECK-NEXT: Section: .rodata.str1.1 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: .Lsym1 -// CHECK-NEXT: Value: 0x0 -// CHECK-NEXT: Size: 0 -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: None -// CHECK-NEXT: Other: 0 -// CHECK-NEXT: Section: Undefined -// CHECK-NEXT: } -// CHECK-NEXT: Symbol { // CHECK-NEXT: Name: sym6 // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 diff --git a/test/MC/ELF/undef2.s b/test/MC/ELF/undef2.s deleted file mode 100644 index 6aa66c05c4b..00000000000 --- a/test/MC/ELF/undef2.s +++ /dev/null @@ -1,18 +0,0 @@ -// RUN: llvm-mc -filetype=obj -triple x86_64-pc-linux-gnu %s -o - | llvm-readobj -s -t | FileCheck %s - -// Test that this produces an undefined reference to .Lfoo - - je .Lfoo - -// CHECK: Section { -// CHECK: Name: .strtab - -// CHECK: Symbol { -// CHECK: Name: .Lfoo -// CHECK-NEXT: Value: -// CHECK-NEXT: Size: -// CHECK-NEXT: Binding: Global -// CHECK-NEXT: Type: -// CHECK-NEXT: Other: -// CHECK-NEXT: Section: -// CHECK-NEXT: } diff --git a/test/MC/MachO/AArch64/classrefs.s b/test/MC/MachO/AArch64/classrefs.s index d92bbb4a57a..e02df13eb6b 100644 --- a/test/MC/MachO/AArch64/classrefs.s +++ b/test/MC/MachO/AArch64/classrefs.s @@ -10,7 +10,7 @@ // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: Lbar +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/test/MC/MachO/AArch64/darwin-ARM64-reloc.s b/test/MC/MachO/AArch64/darwin-ARM64-reloc.s index b4d0b082c8a..1f384f92067 100644 --- a/test/MC/MachO/AArch64/darwin-ARM64-reloc.s +++ b/test/MC/MachO/AArch64/darwin-ARM64-reloc.s @@ -41,7 +41,7 @@ L_.str: ; CHECK-NEXT: PCRel: 1 ; CHECK-NEXT: Length: 2 ; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3) -; CHECK-NEXT: Symbol: L_.str +; CHECK-NEXT: Symbol: - ; CHECK-NEXT: } ; CHECK-NEXT: Relocation { ; CHECK-NEXT: Offset: 0x20 diff --git a/test/MC/MachO/AArch64/ld64-workaround.s b/test/MC/MachO/AArch64/ld64-workaround.s index 63f91705599..b619fda0981 100644 --- a/test/MC/MachO/AArch64/ld64-workaround.s +++ b/test/MC/MachO/AArch64/ld64-workaround.s @@ -11,28 +11,28 @@ // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: Llit16 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x10 // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: Llit8 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: Llit4 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: Lcfstring +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/test/MC/MachO/AArch64/mergeable.s b/test/MC/MachO/AArch64/mergeable.s index 4fed04c9334..f710344a193 100644 --- a/test/MC/MachO/AArch64/mergeable.s +++ b/test/MC/MachO/AArch64/mergeable.s @@ -26,28 +26,28 @@ L1: // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: L1 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x10 // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: L1 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x8 // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: L0 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x0 // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: L0 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/test/MC/MachO/AArch64/reloc-crash.s b/test/MC/MachO/AArch64/reloc-crash.s index f8ad4c4f751..946a57c91f9 100644 --- a/test/MC/MachO/AArch64/reloc-crash.s +++ b/test/MC/MachO/AArch64/reloc-crash.s @@ -10,7 +10,7 @@ ; CHECK-NEXT: PCRel: 0 ; CHECK-NEXT: Length: 3 ; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0) -; CHECK-NEXT: Symbol: Lbar +; CHECK-NEXT: Symbol: - ; CHECK-NEXT: } ; CHECK-NEXT: } ; CHECK-NEXT: ] diff --git a/test/MC/MachO/x86_64-mergeable.s b/test/MC/MachO/x86_64-mergeable.s index b7933f92c0c..32f47146c67 100644 --- a/test/MC/MachO/x86_64-mergeable.s +++ b/test/MC/MachO/x86_64-mergeable.s @@ -24,7 +24,7 @@ L1: // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: L1 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x10 @@ -38,7 +38,7 @@ L1: // CHECK-NEXT: PCRel: 0 // CHECK-NEXT: Length: 3 // CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0) -// CHECK-NEXT: Symbol: L0 +// CHECK-NEXT: Symbol: - // CHECK-NEXT: } // CHECK-NEXT: Relocation { // CHECK-NEXT: Offset: 0x0 diff --git a/test/MC/MachO/x86_64-symbols.s b/test/MC/MachO/x86_64-symbols.s index f40183df853..7aba6b73d10 100644 --- a/test/MC/MachO/x86_64-symbols.s +++ b/test/MC/MachO/x86_64-symbols.s @@ -130,7 +130,7 @@ D38: // CHECK: Symbols [ // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D0 (139) +// CHECK-NEXT: Name: D0 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __text (0x1) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -139,7 +139,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D1 (128) +// CHECK-NEXT: Name: D1 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __text (0x1) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -148,7 +148,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D2 (113) +// CHECK-NEXT: Name: D2 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __const (0x2) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -157,7 +157,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D3 (98) +// CHECK-NEXT: Name: D3 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __static_const (0x3) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -166,7 +166,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: L4 (84) +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -175,7 +175,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D4 (87) +// CHECK-NEXT: Name: D4 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -184,7 +184,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D5 (69) +// CHECK-NEXT: Name: D5 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __literal4 (0x5) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -193,7 +193,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D6 (50) +// CHECK-NEXT: Name: D6 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __literal8 (0x6) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -202,7 +202,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D7 (31) +// CHECK-NEXT: Name: D7 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __literal16 (0x7) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -211,7 +211,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D8 (12) +// CHECK-NEXT: Name: D8 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __constructor (0x8) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -220,7 +220,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D9 (1) +// CHECK-NEXT: Name: D9 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __destructor (0x9) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -229,7 +229,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D12 (124) +// CHECK-NEXT: Name: D12 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __data (0xA) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -238,7 +238,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D13 (109) +// CHECK-NEXT: Name: D13 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __static_data (0xB) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -247,7 +247,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D16 (65) +// CHECK-NEXT: Name: D16 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __dyld (0xC) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -256,7 +256,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D17 (46) +// CHECK-NEXT: Name: D17 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __mod_init_func (0xD) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -265,7 +265,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D18 (27) +// CHECK-NEXT: Name: D18 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __mod_term_func (0xE) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -283,7 +283,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D20 (146) +// CHECK-NEXT: Name: D20 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __class (0x10) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -292,7 +292,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D21 (135) +// CHECK-NEXT: Name: D21 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __meta_class (0x11) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -301,7 +301,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D22 (120) +// CHECK-NEXT: Name: D22 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cat_cls_meth (0x12) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -310,7 +310,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D23 (105) +// CHECK-NEXT: Name: D23 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cat_inst_meth (0x13) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -319,7 +319,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D24 (94) +// CHECK-NEXT: Name: D24 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __protocol (0x14) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -328,7 +328,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D25 (80) +// CHECK-NEXT: Name: D25 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __string_object (0x15) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -337,7 +337,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D26 (61) +// CHECK-NEXT: Name: D26 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cls_meth (0x16) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -346,7 +346,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D27 (42) +// CHECK-NEXT: Name: D27 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __inst_meth (0x17) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -355,7 +355,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D28 (23) +// CHECK-NEXT: Name: D28 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cls_refs (0x18) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -364,7 +364,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D29 (4) +// CHECK-NEXT: Name: D29 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __message_refs (0x19) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -373,7 +373,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D30 (142) +// CHECK-NEXT: Name: D30 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __symbols (0x1A) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -382,7 +382,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D31 (131) +// CHECK-NEXT: Name: D31 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __category (0x1B) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -391,7 +391,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D32 (116) +// CHECK-NEXT: Name: D32 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __class_vars (0x1C) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -400,7 +400,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D33 (101) +// CHECK-NEXT: Name: D33 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __instance_vars (0x1D) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -409,7 +409,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D34 (90) +// CHECK-NEXT: Name: D34 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __module_info (0x1E) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -418,7 +418,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: L35 (72) +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -427,7 +427,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D35 (76) +// CHECK-NEXT: Name: D35 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -436,7 +436,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: L36 (53) +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -445,7 +445,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D36 (57) +// CHECK-NEXT: Name: D36 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -454,7 +454,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: L37 (34) +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -463,7 +463,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D37 (38) +// CHECK-NEXT: Name: D37 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __cstring (0x4) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -472,7 +472,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: L38 (15) +// CHECK-NEXT: Name: (0) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __selector_strs (0x1F) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) @@ -481,7 +481,7 @@ D38: // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: D38 (19) +// CHECK-NEXT: Name: D38 ({{.*}}) // CHECK-NEXT: Type: Section (0xE) // CHECK-NEXT: Section: __selector_strs (0x1F) // CHECK-NEXT: RefType: UndefinedNonLazy (0x0) diff --git a/test/MC/Mips/cpsetup.s b/test/MC/Mips/cpsetup.s index a3ffae67aae..f792ec8f1ef 100644 --- a/test/MC/Mips/cpsetup.s +++ b/test/MC/Mips/cpsetup.s @@ -79,9 +79,9 @@ t2: # NXX: move $2, $gp # NXX: lui $gp, 0 -# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 $tmp0 +# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 # NXX: addiu $gp, $gp, 0 -# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 $tmp0 +# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 # N32: addu $gp, $gp, $25 # N64: daddu $gp, $gp, $25 # NXX: nop @@ -108,4 +108,4 @@ t3: # For .cpsetup with local labels, we need to check if $tmp0 is in the symbol # table: -# NXX: .text 00000000 $tmp0 +# NXX: .text 00000000 {{$}} diff --git a/test/MC/Mips/elf-relsym.s b/test/MC/Mips/elf-relsym.s index d19065e0cd7..d0c61bc1dc5 100644 --- a/test/MC/Mips/elf-relsym.s +++ b/test/MC/Mips/elf-relsym.s @@ -4,16 +4,16 @@ // CHECK: Symbols [ // CHECK: Symbol { -// CHECK: Name: $.str +// CHECK: Name: (0) // CHECK: } // CHECK: Symbol { -// CHECK: Name: $.str1 +// CHECK: Name: (0) // CHECK: } // CHECK: Symbol { -// CHECK: Name: $CPI0_0 +// CHECK: Name: (0) // CHECK: } // CHECK: Symbol { -// CHECK: Name: $CPI0_1 +// CHECK: Name: (0) // CHECK: } // CHECK: ] diff --git a/test/MC/Mips/xgot.s b/test/MC/Mips/xgot.s index 3380a856375..d813c89231c 100644 --- a/test/MC/Mips/xgot.s +++ b/test/MC/Mips/xgot.s @@ -10,8 +10,8 @@ // CHECK: 0x1C R_MIPS_GOT_LO16 ext_1 // CHECK: 0x24 R_MIPS_CALL_HI16 printf // CHECK: 0x30 R_MIPS_CALL_LO16 printf -// CHECK: 0x2C R_MIPS_GOT16 $.str -// CHECK: 0x38 R_MIPS_LO16 $.str +// CHECK: 0x2C R_MIPS_GOT16 - +// CHECK: 0x38 R_MIPS_LO16 - // CHECK: ] .text diff --git a/test/MC/Sparc/sparc-pic.s b/test/MC/Sparc/sparc-pic.s index 5430d1fea10..6cf23db34df 100644 --- a/test/MC/Sparc/sparc-pic.s +++ b/test/MC/Sparc/sparc-pic.s @@ -7,8 +7,8 @@ ! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_PC10 _GLOBAL_OFFSET_TABLE_ 0x8 ! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 AGlobalVar 0x0 ! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 AGlobalVar 0x0 -! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 .LC0 0x0 -! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 .LC0 0x0 +! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT22 - 0x0 +! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 - 0x0 ! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0 ! CHECK: ] -- 2.34.1