From: Daniel Jasper Date: Tue, 23 Jun 2015 11:31:32 +0000 (+0000) Subject: Revert r240302 ("Bring r240130 back."). X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=b7f5b8b4b288b43859c4ed32f439812896167cac;p=oota-llvm.git Revert r240302 ("Bring r240130 back."). This causes errors like: ld: error: blah.o: requires dynamic R_X86_64_PC32 reloc against '' which may overflow at runtime; recompile with -fPIC blah.cc:function f(): error: undefined reference to '' blah.o:g(): error: undefined reference to '' I have not yet come up with an appropriate reproduction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240394 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/MC/MCContext.h b/include/llvm/MC/MCContext.h index 99b8a5c6327..52017fda189 100644 --- a/include/llvm/MC/MCContext.h +++ b/include/llvm/MC/MCContext.h @@ -208,7 +208,8 @@ namespace llvm { MCSymbol *createSymbolImpl(const StringMapEntry *Name, bool CanBeUnnamed); - MCSymbol *createSymbol(StringRef Name, bool AlwaysAddSuffix); + MCSymbol *createSymbol(StringRef Name, bool AlwaysAddSuffix, + bool IsTemporary); MCSymbol *getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal, unsigned Instance); @@ -248,9 +249,10 @@ namespace llvm { /// Create and return a new assembler temporary symbol with a unique but /// unspecified name. - MCSymbol *createTempSymbol(); + MCSymbol *createTempSymbol(bool CanBeUnnamed = true); - MCSymbol *createTempSymbol(const Twine &Name, bool AlwaysAddSuffix); + MCSymbol *createTempSymbol(const Twine &Name, bool AlwaysAddSuffix, + bool CanBeUnnamed = true); /// 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 71d3f86d9e6..db9c759f2b5 100644 --- a/lib/MC/ELFObjectWriter.cpp +++ b/lib/MC/ELFObjectWriter.cpp @@ -787,15 +787,10 @@ 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()) { @@ -894,11 +889,9 @@ void ELFObjectWriter::computeSymbolTable( unsigned Index = FileNames.size() + 1; for (ELFSymbolData &MSD : LocalSymbolData) { - unsigned StringIndex; - if (MSD.Symbol->getType() == ELF::STT_SECTION || MSD.Name.empty()) - StringIndex = 0; - else - StringIndex = StrTabBuilder.getOffset(MSD.Name); + unsigned StringIndex = MSD.Symbol->getType() == ELF::STT_SECTION + ? 0 + : 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 01074eb5e79..c601c56f395 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); + Sym = createSymbol(NameRef, false, false); return Sym; } @@ -175,16 +175,17 @@ MCSymbol *MCContext::createSymbolImpl(const StringMapEntry *Name, IsTemporary); } -MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix) { +MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix, + bool CanBeUnnamed) { + if (CanBeUnnamed && !UseNamesOnTempLabels) + return createSymbolImpl(nullptr, true); + // Determine whether this is an user writter assembler temporary or normal // label, if used. - bool IsTemporary = false; - if (AllowTemporaryLabels) + bool IsTemporary = CanBeUnnamed; + if (AllowTemporaryLabels && !IsTemporary) IsTemporary = Name.startswith(MAI->getPrivateGlobalPrefix()); - if (IsTemporary && !UseNamesOnTempLabels) - return createSymbolImpl(nullptr, true); - SmallString<128> NewName = Name; bool AddSuffix = AlwaysAddSuffix; unsigned &NextUniqueID = NextID[Name]; @@ -205,20 +206,21 @@ MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix) { llvm_unreachable("Infinite loop"); } -MCSymbol *MCContext::createTempSymbol(const Twine &Name, bool AlwaysAddSuffix) { +MCSymbol *MCContext::createTempSymbol(const Twine &Name, bool AlwaysAddSuffix, + bool CanBeUnnamed) { SmallString<128> NameSV; raw_svector_ostream(NameSV) << MAI->getPrivateGlobalPrefix() << Name; - return createSymbol(NameSV, AlwaysAddSuffix); + return createSymbol(NameSV, AlwaysAddSuffix, CanBeUnnamed); } MCSymbol *MCContext::createLinkerPrivateTempSymbol() { SmallString<128> NameSV; raw_svector_ostream(NameSV) << MAI->getLinkerPrivateGlobalPrefix() << "tmp"; - return createSymbol(NameSV, true); + return createSymbol(NameSV, true, false); } -MCSymbol *MCContext::createTempSymbol() { - return createTempSymbol("tmp", true); +MCSymbol *MCContext::createTempSymbol(bool CanBeUnnamed) { + return createTempSymbol("tmp", true, CanBeUnnamed); } unsigned MCContext::NextInstance(unsigned LocalLabelVal) { @@ -239,7 +241,7 @@ MCSymbol *MCContext::getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal, unsigned Instance) { MCSymbol *&Sym = LocalSymbols[std::make_pair(LocalLabelVal, Instance)]; if (!Sym) - Sym = createTempSymbol(); + Sym = createTempSymbol(false); return Sym; } diff --git a/lib/MC/MachObjectWriter.cpp b/lib/MC/MachObjectWriter.cpp index d7934ad80c6..8ce6127e386 100644 --- a/lib/MC/MachObjectWriter.cpp +++ b/lib/MC/MachObjectWriter.cpp @@ -565,8 +565,7 @@ void MachObjectWriter::computeSymbolTable( MachSymbolData MSD; MSD.Symbol = &Symbol; - StringRef Name = Symbol.getName(); - MSD.StringIndex = Name.empty() ? 0 : StringTable.getOffset(Name); + MSD.StringIndex = StringTable.getOffset(Symbol.getName()); if (Symbol.isAbsolute()) { MSD.SectionIndex = 0; diff --git a/test/CodeGen/SPARC/obj-relocs.ll b/test/CodeGen/SPARC/obj-relocs.ll index 17734f6e53e..0e7e04032be 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 - 0x0 -; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 - 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_WPLT30 bar 0x0 ; CHECK-PIC: ] diff --git a/test/MC/ARM/elf-reloc-02.s b/test/MC/ARM/elf-reloc-02.s index a616f4617a5..24e2bb3b6fd 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 - +// OBJ-NEXT: 0x{{[0-9,A-F]+}} R_ARM_MOVW_ABS_NC .L.str // OBJ: } // OBJ: ] diff --git a/test/MC/ELF/basic-elf-32.s b/test/MC/ELF/basic-elf-32.s index cc6b70c2bed..1036b04a747 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 - +// CHECK: 0x6 R_386_32 .L.str1 // CHECK: 0xB R_386_PC32 puts -// CHECK: 0x12 R_386_32 - +// CHECK: 0x12 R_386_32 .L.str2 // CHECK: 0x17 R_386_PC32 puts // CHECK: } // CHECK: ] diff --git a/test/MC/ELF/compression.s b/test/MC/ELF/compression.s index 12cab4bfc8f..5560ba78c68 100644 --- a/test/MC/ELF/compression.s +++ b/test/MC/ELF/compression.s @@ -28,24 +28,9 @@ // 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: 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: } +// 386-SYMBOLS: Name: .Linfo_string0 +// 386-SYMBOLS-NOT: } +// 386-SYMBOLS: Section: .zdebug_str .section .debug_line,"",@progbits diff --git a/test/MC/ELF/discriminator.s b/test/MC/ELF/discriminator.s index 75e4e86cee0..8a695b96ede 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 info_string0 # DW_AT_producer + .long .Linfo_string0 # DW_AT_producer .short 12 # DW_AT_language - .long info_string1 # DW_AT_name + .long .Linfo_string1 # DW_AT_name .quad 0 # DW_AT_low_pc .long 0 # DW_AT_stmt_list - .long info_string2 # DW_AT_comp_dir + .long .Linfo_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 8fdb3a3a431..e787728ae19 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 - 0x{{[^ ]+}} +// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_PC32 .Lfoo 0x{{[^ ]+}} // CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32 .sec1 0x{{[^ ]+}} -// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32 - 0x{{[^ ]+}} +// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32 .Lfoo 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 5ad1227b759..6b7e02f03ea 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 - 0x0 +// CHECK-NEXT: 0x2 R_386_GOTOFF .Lfoo 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 deleted file mode 100644 index 45537a998e7..00000000000 --- a/test/MC/ELF/undef-temp.s +++ /dev/null @@ -1,4 +0,0 @@ -// 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 b491ba1527b..9577ea22875 100644 --- a/test/MC/ELF/undef.s +++ b/test/MC/ELF/undef.s @@ -2,6 +2,7 @@ // Test which symbols should be in the symbol table + .long .Lsym1 .Lsym2: .Lsym3: .Lsym4 = .Lsym2 - .Lsym3 @@ -32,7 +33,7 @@ test2_b = undef + 1 // CHECK-NEXT: Section: Undefined // CHECK-NEXT: } // CHECK-NEXT: Symbol { -// CHECK-NEXT: Name: (0) +// CHECK-NEXT: Name: .Lsym8 // CHECK-NEXT: Value: 0x0 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local @@ -41,6 +42,15 @@ 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 new file mode 100644 index 00000000000..6aa66c05c4b --- /dev/null +++ b/test/MC/ELF/undef2.s @@ -0,0 +1,18 @@ +// 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 e02df13eb6b..d92bbb4a57a 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: - +// CHECK-NEXT: Symbol: Lbar // 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 1f384f92067..b4d0b082c8a 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: - +; CHECK-NEXT: Symbol: L_.str ; 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 b619fda0981..63f91705599 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: - +// CHECK-NEXT: Symbol: Llit16 // 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: - +// CHECK-NEXT: Symbol: Llit8 // 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: - +// CHECK-NEXT: Symbol: Llit4 // 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: - +// CHECK-NEXT: Symbol: Lcfstring // CHECK-NEXT: } // CHECK-NEXT: } // CHECK-NEXT: ] diff --git a/test/MC/MachO/AArch64/mergeable.s b/test/MC/MachO/AArch64/mergeable.s index f710344a193..4fed04c9334 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: - +// CHECK-NEXT: Symbol: L1 // 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: - +// CHECK-NEXT: Symbol: L1 // 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: - +// CHECK-NEXT: Symbol: L0 // 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: - +// CHECK-NEXT: Symbol: L0 // 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 946a57c91f9..f8ad4c4f751 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: - +; CHECK-NEXT: Symbol: Lbar ; 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 32f47146c67..b7933f92c0c 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: - +// CHECK-NEXT: Symbol: L1 // 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: - +// CHECK-NEXT: Symbol: L0 // 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 7aba6b73d10..f40183df853 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 ({{.*}}) +// CHECK-NEXT: Name: D0 (139) // 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 ({{.*}}) +// CHECK-NEXT: Name: D1 (128) // 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 ({{.*}}) +// CHECK-NEXT: Name: D2 (113) // 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 ({{.*}}) +// CHECK-NEXT: Name: D3 (98) // 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: (0) +// CHECK-NEXT: Name: L4 (84) // 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 ({{.*}}) +// CHECK-NEXT: Name: D4 (87) // 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 ({{.*}}) +// CHECK-NEXT: Name: D5 (69) // 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 ({{.*}}) +// CHECK-NEXT: Name: D6 (50) // 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 ({{.*}}) +// CHECK-NEXT: Name: D7 (31) // 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 ({{.*}}) +// CHECK-NEXT: Name: D8 (12) // 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 ({{.*}}) +// CHECK-NEXT: Name: D9 (1) // 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 ({{.*}}) +// CHECK-NEXT: Name: D12 (124) // 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 ({{.*}}) +// CHECK-NEXT: Name: D13 (109) // 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 ({{.*}}) +// CHECK-NEXT: Name: D16 (65) // 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 ({{.*}}) +// CHECK-NEXT: Name: D17 (46) // 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 ({{.*}}) +// CHECK-NEXT: Name: D18 (27) // 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 ({{.*}}) +// CHECK-NEXT: Name: D20 (146) // 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 ({{.*}}) +// CHECK-NEXT: Name: D21 (135) // 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 ({{.*}}) +// CHECK-NEXT: Name: D22 (120) // 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 ({{.*}}) +// CHECK-NEXT: Name: D23 (105) // 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 ({{.*}}) +// CHECK-NEXT: Name: D24 (94) // 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 ({{.*}}) +// CHECK-NEXT: Name: D25 (80) // 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 ({{.*}}) +// CHECK-NEXT: Name: D26 (61) // 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 ({{.*}}) +// CHECK-NEXT: Name: D27 (42) // 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 ({{.*}}) +// CHECK-NEXT: Name: D28 (23) // 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 ({{.*}}) +// CHECK-NEXT: Name: D29 (4) // 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 ({{.*}}) +// CHECK-NEXT: Name: D30 (142) // 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 ({{.*}}) +// CHECK-NEXT: Name: D31 (131) // 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 ({{.*}}) +// CHECK-NEXT: Name: D32 (116) // 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 ({{.*}}) +// CHECK-NEXT: Name: D33 (101) // 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 ({{.*}}) +// CHECK-NEXT: Name: D34 (90) // 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: (0) +// CHECK-NEXT: Name: L35 (72) // 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 ({{.*}}) +// CHECK-NEXT: Name: D35 (76) // 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: (0) +// CHECK-NEXT: Name: L36 (53) // 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 ({{.*}}) +// CHECK-NEXT: Name: D36 (57) // 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: (0) +// CHECK-NEXT: Name: L37 (34) // 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 ({{.*}}) +// CHECK-NEXT: Name: D37 (38) // 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: (0) +// CHECK-NEXT: Name: L38 (15) // 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 ({{.*}}) +// CHECK-NEXT: Name: D38 (19) // 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 f792ec8f1ef..a3ffae67aae 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 +# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_HI16 $tmp0 # NXX: addiu $gp, $gp, 0 -# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 +# NXX: R_MIPS_GPREL16/R_MIPS_SUB/R_MIPS_LO16 $tmp0 # 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 {{$}} +# NXX: .text 00000000 $tmp0 diff --git a/test/MC/Mips/elf-relsym.s b/test/MC/Mips/elf-relsym.s index d0c61bc1dc5..d19065e0cd7 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: (0) +// CHECK: Name: $.str // CHECK: } // CHECK: Symbol { -// CHECK: Name: (0) +// CHECK: Name: $.str1 // CHECK: } // CHECK: Symbol { -// CHECK: Name: (0) +// CHECK: Name: $CPI0_0 // CHECK: } // CHECK: Symbol { -// CHECK: Name: (0) +// CHECK: Name: $CPI0_1 // CHECK: } // CHECK: ] diff --git a/test/MC/Mips/xgot.s b/test/MC/Mips/xgot.s index d813c89231c..3380a856375 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 - -// CHECK: 0x38 R_MIPS_LO16 - +// CHECK: 0x2C R_MIPS_GOT16 $.str +// CHECK: 0x38 R_MIPS_LO16 $.str // CHECK: ] .text diff --git a/test/MC/Sparc/sparc-pic.s b/test/MC/Sparc/sparc-pic.s index 6cf23db34df..5430d1fea10 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 - 0x0 -! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 - 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_WPLT30 bar 0x0 ! CHECK: ]