mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-21 21:29:41 +00:00
Revert 240130, it caused crashes (repro in PR23900).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@240193 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
30c3b2a4c2
commit
7081f6fc99
@ -208,7 +208,8 @@ namespace llvm {
|
|||||||
|
|
||||||
MCSymbol *createSymbolImpl(const StringMapEntry<bool> *Name,
|
MCSymbol *createSymbolImpl(const StringMapEntry<bool> *Name,
|
||||||
bool CanBeUnnamed);
|
bool CanBeUnnamed);
|
||||||
MCSymbol *createSymbol(StringRef Name, bool AlwaysAddSuffix);
|
MCSymbol *createSymbol(StringRef Name, bool AlwaysAddSuffix,
|
||||||
|
bool IsTemporary);
|
||||||
|
|
||||||
MCSymbol *getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal,
|
MCSymbol *getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal,
|
||||||
unsigned Instance);
|
unsigned Instance);
|
||||||
@ -248,9 +249,10 @@ namespace llvm {
|
|||||||
|
|
||||||
/// Create and return a new assembler temporary symbol with a unique but
|
/// Create and return a new assembler temporary symbol with a unique but
|
||||||
/// unspecified name.
|
/// 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
|
/// Create the definition of a directional local symbol for numbered label
|
||||||
/// (used for "1:" definitions).
|
/// (used for "1:" definitions).
|
||||||
|
@ -786,15 +786,10 @@ void ELFObjectWriter::computeSymbolTable(
|
|||||||
Renames.count(&Symbol)))
|
Renames.count(&Symbol)))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (Symbol.isTemporary() && Symbol.isUndefined())
|
|
||||||
Ctx.reportFatalError(SMLoc(), "Undefined temporary");
|
|
||||||
|
|
||||||
ELFSymbolData MSD;
|
ELFSymbolData MSD;
|
||||||
MSD.Symbol = cast<MCSymbolELF>(&Symbol);
|
MSD.Symbol = cast<MCSymbolELF>(&Symbol);
|
||||||
|
|
||||||
bool Local = Symbol.getBinding() == ELF::STB_LOCAL;
|
bool Local = Symbol.getBinding() == ELF::STB_LOCAL;
|
||||||
assert(Local || !Symbol.isTemporary());
|
|
||||||
|
|
||||||
if (Symbol.isAbsolute()) {
|
if (Symbol.isAbsolute()) {
|
||||||
MSD.SectionIndex = ELF::SHN_ABS;
|
MSD.SectionIndex = ELF::SHN_ABS;
|
||||||
} else if (Symbol.isCommon()) {
|
} else if (Symbol.isCommon()) {
|
||||||
@ -893,11 +888,9 @@ void ELFObjectWriter::computeSymbolTable(
|
|||||||
unsigned Index = FileNames.size() + 1;
|
unsigned Index = FileNames.size() + 1;
|
||||||
|
|
||||||
for (ELFSymbolData &MSD : LocalSymbolData) {
|
for (ELFSymbolData &MSD : LocalSymbolData) {
|
||||||
unsigned StringIndex;
|
unsigned StringIndex = MSD.Symbol->getType() == ELF::STT_SECTION
|
||||||
if (MSD.Symbol->getType() == ELF::STT_SECTION || MSD.Name.empty())
|
? 0
|
||||||
StringIndex = 0;
|
: StrTabBuilder.getOffset(MSD.Name);
|
||||||
else
|
|
||||||
StringIndex = StrTabBuilder.getOffset(MSD.Name);
|
|
||||||
MSD.Symbol->setIndex(Index++);
|
MSD.Symbol->setIndex(Index++);
|
||||||
writeSymbol(Writer, StringIndex, MSD, Layout);
|
writeSymbol(Writer, StringIndex, MSD, Layout);
|
||||||
}
|
}
|
||||||
|
@ -116,7 +116,7 @@ MCSymbol *MCContext::getOrCreateSymbol(const Twine &Name) {
|
|||||||
|
|
||||||
MCSymbol *&Sym = Symbols[NameRef];
|
MCSymbol *&Sym = Symbols[NameRef];
|
||||||
if (!Sym)
|
if (!Sym)
|
||||||
Sym = createSymbol(NameRef, false);
|
Sym = createSymbol(NameRef, false, false);
|
||||||
|
|
||||||
return Sym;
|
return Sym;
|
||||||
}
|
}
|
||||||
@ -175,16 +175,17 @@ MCSymbol *MCContext::createSymbolImpl(const StringMapEntry<bool> *Name,
|
|||||||
IsTemporary);
|
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
|
// Determine whether this is an user writter assembler temporary or normal
|
||||||
// label, if used.
|
// label, if used.
|
||||||
bool IsTemporary = false;
|
bool IsTemporary = CanBeUnnamed;
|
||||||
if (AllowTemporaryLabels)
|
if (AllowTemporaryLabels && !IsTemporary)
|
||||||
IsTemporary = Name.startswith(MAI->getPrivateGlobalPrefix());
|
IsTemporary = Name.startswith(MAI->getPrivateGlobalPrefix());
|
||||||
|
|
||||||
if (IsTemporary && !UseNamesOnTempLabels)
|
|
||||||
return createSymbolImpl(nullptr, true);
|
|
||||||
|
|
||||||
SmallString<128> NewName = Name;
|
SmallString<128> NewName = Name;
|
||||||
bool AddSuffix = AlwaysAddSuffix;
|
bool AddSuffix = AlwaysAddSuffix;
|
||||||
unsigned &NextUniqueID = NextID[Name];
|
unsigned &NextUniqueID = NextID[Name];
|
||||||
@ -205,20 +206,21 @@ MCSymbol *MCContext::createSymbol(StringRef Name, bool AlwaysAddSuffix) {
|
|||||||
llvm_unreachable("Infinite loop");
|
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;
|
SmallString<128> NameSV;
|
||||||
raw_svector_ostream(NameSV) << MAI->getPrivateGlobalPrefix() << Name;
|
raw_svector_ostream(NameSV) << MAI->getPrivateGlobalPrefix() << Name;
|
||||||
return createSymbol(NameSV, AlwaysAddSuffix);
|
return createSymbol(NameSV, AlwaysAddSuffix, CanBeUnnamed);
|
||||||
}
|
}
|
||||||
|
|
||||||
MCSymbol *MCContext::createLinkerPrivateTempSymbol() {
|
MCSymbol *MCContext::createLinkerPrivateTempSymbol() {
|
||||||
SmallString<128> NameSV;
|
SmallString<128> NameSV;
|
||||||
raw_svector_ostream(NameSV) << MAI->getLinkerPrivateGlobalPrefix() << "tmp";
|
raw_svector_ostream(NameSV) << MAI->getLinkerPrivateGlobalPrefix() << "tmp";
|
||||||
return createSymbol(NameSV, true);
|
return createSymbol(NameSV, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
MCSymbol *MCContext::createTempSymbol() {
|
MCSymbol *MCContext::createTempSymbol(bool CanBeUnnamed) {
|
||||||
return createTempSymbol("tmp", true);
|
return createTempSymbol("tmp", true, CanBeUnnamed);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned MCContext::NextInstance(unsigned LocalLabelVal) {
|
unsigned MCContext::NextInstance(unsigned LocalLabelVal) {
|
||||||
@ -239,7 +241,7 @@ MCSymbol *MCContext::getOrCreateDirectionalLocalSymbol(unsigned LocalLabelVal,
|
|||||||
unsigned Instance) {
|
unsigned Instance) {
|
||||||
MCSymbol *&Sym = LocalSymbols[std::make_pair(LocalLabelVal, Instance)];
|
MCSymbol *&Sym = LocalSymbols[std::make_pair(LocalLabelVal, Instance)];
|
||||||
if (!Sym)
|
if (!Sym)
|
||||||
Sym = createTempSymbol();
|
Sym = createTempSymbol(false);
|
||||||
return Sym;
|
return Sym;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1306,8 +1306,10 @@ bool AsmParser::parseStatement(ParseStatementInfo &Info,
|
|||||||
MCSymbol *Sym;
|
MCSymbol *Sym;
|
||||||
if (LocalLabelVal == -1) {
|
if (LocalLabelVal == -1) {
|
||||||
if (ParsingInlineAsm && SI) {
|
if (ParsingInlineAsm && SI) {
|
||||||
StringRef RewrittenLabel = SI->LookupInlineAsmLabel(IDVal, getSourceManager(), IDLoc, true);
|
StringRef RewrittenLabel =
|
||||||
assert(RewrittenLabel.size() && "We should have an internal name here.");
|
SI->LookupInlineAsmLabel(IDVal, getSourceManager(), IDLoc, true);
|
||||||
|
assert(RewrittenLabel.size() &&
|
||||||
|
"We should have an internal name here.");
|
||||||
Info.AsmRewrites->push_back(AsmRewrite(AOK_Label, IDLoc,
|
Info.AsmRewrites->push_back(AsmRewrite(AOK_Label, IDLoc,
|
||||||
IDVal.size(), RewrittenLabel));
|
IDVal.size(), RewrittenLabel));
|
||||||
IDVal = RewrittenLabel;
|
IDVal = RewrittenLabel;
|
||||||
|
@ -565,8 +565,7 @@ void MachObjectWriter::computeSymbolTable(
|
|||||||
|
|
||||||
MachSymbolData MSD;
|
MachSymbolData MSD;
|
||||||
MSD.Symbol = &Symbol;
|
MSD.Symbol = &Symbol;
|
||||||
StringRef Name = Symbol.getName();
|
MSD.StringIndex = StringTable.getOffset(Symbol.getName());
|
||||||
MSD.StringIndex = Name.empty() ? 0 : StringTable.getOffset(Name);
|
|
||||||
|
|
||||||
if (Symbol.isAbsolute()) {
|
if (Symbol.isAbsolute()) {
|
||||||
MSD.SectionIndex = 0;
|
MSD.SectionIndex = 0;
|
||||||
|
@ -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_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_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_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_GOT22 .L.mystr 0x0
|
||||||
; CHECK-PIC-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 - 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-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0
|
||||||
; CHECK-PIC: ]
|
; CHECK-PIC: ]
|
||||||
|
|
||||||
|
@ -22,6 +22,6 @@
|
|||||||
|
|
||||||
// OBJ: Relocations [
|
// OBJ: Relocations [
|
||||||
// OBJ: Section {{.*}} .rel.text {
|
// 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: }
|
||||||
// OBJ: ]
|
// OBJ: ]
|
||||||
|
@ -46,9 +46,9 @@ main: # @main
|
|||||||
|
|
||||||
// CHECK: Relocations [
|
// CHECK: Relocations [
|
||||||
// CHECK: Section {{.*}} .rel.text {
|
// CHECK: Section {{.*}} .rel.text {
|
||||||
// CHECK: 0x6 R_386_32 -
|
// CHECK: 0x6 R_386_32 .L.str1
|
||||||
// CHECK: 0xB R_386_PC32 puts
|
// 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: 0x17 R_386_PC32 puts
|
||||||
// CHECK: }
|
// CHECK: }
|
||||||
// CHECK: ]
|
// CHECK: ]
|
||||||
|
@ -28,24 +28,9 @@
|
|||||||
|
|
||||||
// In x86 32 bit named symbols are used for temporary symbols in merge
|
// In x86 32 bit named symbols are used for temporary symbols in merge
|
||||||
// sections, so make sure we handle symbols inside compressed sections
|
// sections, so make sure we handle symbols inside compressed sections
|
||||||
// 386-SYMBOLS: Symbol {
|
// 386-SYMBOLS: Name: .Linfo_string0
|
||||||
// 386-SYMBOLS-NEXT: Name: (0)
|
// 386-SYMBOLS-NOT: }
|
||||||
// 386-SYMBOLS-NEXT: Value: 0x0
|
// 386-SYMBOLS: Section: .zdebug_str
|
||||||
// 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
|
.section .debug_line,"",@progbits
|
||||||
|
|
||||||
|
@ -19,12 +19,12 @@ foo:
|
|||||||
.long .L.debug_abbrev_begin # Offset Into Abbrev. Section
|
.long .L.debug_abbrev_begin # Offset Into Abbrev. Section
|
||||||
.byte 8 # Address Size (in bytes)
|
.byte 8 # Address Size (in bytes)
|
||||||
.byte 1 # Abbrev [1] 0xb:0x1b DW_TAG_compile_unit
|
.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
|
.short 12 # DW_AT_language
|
||||||
.long info_string1 # DW_AT_name
|
.long .Linfo_string1 # DW_AT_name
|
||||||
.quad 0 # DW_AT_low_pc
|
.quad 0 # DW_AT_low_pc
|
||||||
.long 0 # DW_AT_stmt_list
|
.long 0 # DW_AT_stmt_list
|
||||||
.long info_string2 # DW_AT_comp_dir
|
.long .Linfo_string2 # DW_AT_comp_dir
|
||||||
# DW_AT_APPLE_optimized
|
# DW_AT_APPLE_optimized
|
||||||
.section .debug_abbrev,"",@progbits
|
.section .debug_abbrev,"",@progbits
|
||||||
.L.debug_abbrev_begin:
|
.L.debug_abbrev_begin:
|
||||||
|
@ -22,9 +22,9 @@ foo:
|
|||||||
|
|
||||||
// CHECK: Relocations [
|
// CHECK: Relocations [
|
||||||
// CHECK-NEXT: Section {{.*}} .rela.text {
|
// 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 .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_PLT32 foo 0x{{[^ ]+}}
|
||||||
// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_GOTPCREL foo 0x{{[^ ]+}}
|
// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_GOTPCREL foo 0x{{[^ ]+}}
|
||||||
// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32S zed 0x{{[^ ]+}}
|
// CHECK-NEXT: 0x{{[^ ]+}} R_X86_64_32S zed 0x{{[^ ]+}}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
// CHECK: Relocations [
|
// CHECK: Relocations [
|
||||||
// CHECK-NEXT: Section {{.*}} .rel.text {
|
// 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_PLT32 bar2 0x0
|
||||||
// CHECK-NEXT: 0x{{[^ ]+}} R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0
|
// CHECK-NEXT: 0x{{[^ ]+}} R_386_GOTPC _GLOBAL_OFFSET_TABLE_ 0x0
|
||||||
// Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss)
|
// Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss)
|
||||||
|
@ -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
|
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
// Test which symbols should be in the symbol table
|
// Test which symbols should be in the symbol table
|
||||||
|
|
||||||
|
.long .Lsym1
|
||||||
.Lsym2:
|
.Lsym2:
|
||||||
.Lsym3:
|
.Lsym3:
|
||||||
.Lsym4 = .Lsym2 - .Lsym3
|
.Lsym4 = .Lsym2 - .Lsym3
|
||||||
@ -32,7 +33,7 @@ test2_b = undef + 1
|
|||||||
// CHECK-NEXT: Section: Undefined
|
// CHECK-NEXT: Section: Undefined
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: (0)
|
// CHECK-NEXT: Name: .Lsym8
|
||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: Size: 0
|
// CHECK-NEXT: Size: 0
|
||||||
// CHECK-NEXT: Binding: Local
|
// CHECK-NEXT: Binding: Local
|
||||||
@ -41,6 +42,15 @@ test2_b = undef + 1
|
|||||||
// CHECK-NEXT: Section: .rodata.str1.1
|
// CHECK-NEXT: Section: .rodata.str1.1
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// 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: Name: sym6
|
||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: Size: 0
|
// CHECK-NEXT: Size: 0
|
||||||
|
18
test/MC/ELF/undef2.s
Normal file
18
test/MC/ELF/undef2.s
Normal file
@ -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: }
|
@ -10,7 +10,7 @@
|
|||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: Lbar
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: ]
|
// CHECK-NEXT: ]
|
||||||
|
@ -41,7 +41,7 @@ L_.str:
|
|||||||
; CHECK-NEXT: PCRel: 1
|
; CHECK-NEXT: PCRel: 1
|
||||||
; CHECK-NEXT: Length: 2
|
; CHECK-NEXT: Length: 2
|
||||||
; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)
|
; CHECK-NEXT: Type: ARM64_RELOC_PAGE21 (3)
|
||||||
; CHECK-NEXT: Symbol: -
|
; CHECK-NEXT: Symbol: L_.str
|
||||||
; CHECK-NEXT: }
|
; CHECK-NEXT: }
|
||||||
; CHECK-NEXT: Relocation {
|
; CHECK-NEXT: Relocation {
|
||||||
; CHECK-NEXT: Offset: 0x20
|
; CHECK-NEXT: Offset: 0x20
|
||||||
|
@ -11,28 +11,28 @@
|
|||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: Llit16
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x10
|
// CHECK-NEXT: Offset: 0x10
|
||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: Llit8
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x8
|
// CHECK-NEXT: Offset: 0x8
|
||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: Llit4
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x0
|
// CHECK-NEXT: Offset: 0x0
|
||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: Lcfstring
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: ]
|
// CHECK-NEXT: ]
|
||||||
|
@ -26,28 +26,28 @@ L1:
|
|||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: L1
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x10
|
// CHECK-NEXT: Offset: 0x10
|
||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: L1
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x8
|
// CHECK-NEXT: Offset: 0x8
|
||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: L0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x0
|
// CHECK-NEXT: Offset: 0x0
|
||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: L0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: ]
|
// CHECK-NEXT: ]
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
; CHECK-NEXT: PCRel: 0
|
; CHECK-NEXT: PCRel: 0
|
||||||
; CHECK-NEXT: Length: 3
|
; CHECK-NEXT: Length: 3
|
||||||
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
; CHECK-NEXT: Type: ARM64_RELOC_UNSIGNED (0)
|
||||||
; CHECK-NEXT: Symbol: -
|
; CHECK-NEXT: Symbol: Lbar
|
||||||
; CHECK-NEXT: }
|
; CHECK-NEXT: }
|
||||||
; CHECK-NEXT: }
|
; CHECK-NEXT: }
|
||||||
; CHECK-NEXT: ]
|
; CHECK-NEXT: ]
|
||||||
|
@ -24,7 +24,7 @@ L1:
|
|||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: L1
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x10
|
// CHECK-NEXT: Offset: 0x10
|
||||||
@ -38,7 +38,7 @@ L1:
|
|||||||
// CHECK-NEXT: PCRel: 0
|
// CHECK-NEXT: PCRel: 0
|
||||||
// CHECK-NEXT: Length: 3
|
// CHECK-NEXT: Length: 3
|
||||||
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
|
// CHECK-NEXT: Type: X86_64_RELOC_UNSIGNED (0)
|
||||||
// CHECK-NEXT: Symbol: -
|
// CHECK-NEXT: Symbol: L0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Relocation {
|
// CHECK-NEXT: Relocation {
|
||||||
// CHECK-NEXT: Offset: 0x0
|
// CHECK-NEXT: Offset: 0x0
|
||||||
|
@ -130,7 +130,7 @@ D38:
|
|||||||
|
|
||||||
// CHECK: Symbols [
|
// CHECK: Symbols [
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D0 ({{.*}})
|
// CHECK-NEXT: Name: D0 (139)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __text (0x1)
|
// CHECK-NEXT: Section: __text (0x1)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -139,7 +139,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D1 ({{.*}})
|
// CHECK-NEXT: Name: D1 (128)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __text (0x1)
|
// CHECK-NEXT: Section: __text (0x1)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -148,7 +148,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D2 ({{.*}})
|
// CHECK-NEXT: Name: D2 (113)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __const (0x2)
|
// CHECK-NEXT: Section: __const (0x2)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -157,7 +157,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D3 ({{.*}})
|
// CHECK-NEXT: Name: D3 (98)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __static_const (0x3)
|
// CHECK-NEXT: Section: __static_const (0x3)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -166,7 +166,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: (0)
|
// CHECK-NEXT: Name: L4 (84)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -175,7 +175,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D4 ({{.*}})
|
// CHECK-NEXT: Name: D4 (87)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -184,7 +184,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D5 ({{.*}})
|
// CHECK-NEXT: Name: D5 (69)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __literal4 (0x5)
|
// CHECK-NEXT: Section: __literal4 (0x5)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -193,7 +193,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D6 ({{.*}})
|
// CHECK-NEXT: Name: D6 (50)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __literal8 (0x6)
|
// CHECK-NEXT: Section: __literal8 (0x6)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -202,7 +202,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D7 ({{.*}})
|
// CHECK-NEXT: Name: D7 (31)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __literal16 (0x7)
|
// CHECK-NEXT: Section: __literal16 (0x7)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -211,7 +211,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D8 ({{.*}})
|
// CHECK-NEXT: Name: D8 (12)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __constructor (0x8)
|
// CHECK-NEXT: Section: __constructor (0x8)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -220,7 +220,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D9 ({{.*}})
|
// CHECK-NEXT: Name: D9 (1)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __destructor (0x9)
|
// CHECK-NEXT: Section: __destructor (0x9)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -229,7 +229,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D12 ({{.*}})
|
// CHECK-NEXT: Name: D12 (124)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __data (0xA)
|
// CHECK-NEXT: Section: __data (0xA)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -238,7 +238,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D13 ({{.*}})
|
// CHECK-NEXT: Name: D13 (109)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __static_data (0xB)
|
// CHECK-NEXT: Section: __static_data (0xB)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -247,7 +247,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D16 ({{.*}})
|
// CHECK-NEXT: Name: D16 (65)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __dyld (0xC)
|
// CHECK-NEXT: Section: __dyld (0xC)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -256,7 +256,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D17 ({{.*}})
|
// CHECK-NEXT: Name: D17 (46)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __mod_init_func (0xD)
|
// CHECK-NEXT: Section: __mod_init_func (0xD)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -265,7 +265,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D18 ({{.*}})
|
// CHECK-NEXT: Name: D18 (27)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __mod_term_func (0xE)
|
// CHECK-NEXT: Section: __mod_term_func (0xE)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -283,7 +283,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D20 ({{.*}})
|
// CHECK-NEXT: Name: D20 (146)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __class (0x10)
|
// CHECK-NEXT: Section: __class (0x10)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -292,7 +292,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D21 ({{.*}})
|
// CHECK-NEXT: Name: D21 (135)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __meta_class (0x11)
|
// CHECK-NEXT: Section: __meta_class (0x11)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -301,7 +301,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D22 ({{.*}})
|
// CHECK-NEXT: Name: D22 (120)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cat_cls_meth (0x12)
|
// CHECK-NEXT: Section: __cat_cls_meth (0x12)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -310,7 +310,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D23 ({{.*}})
|
// CHECK-NEXT: Name: D23 (105)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cat_inst_meth (0x13)
|
// CHECK-NEXT: Section: __cat_inst_meth (0x13)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -319,7 +319,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D24 ({{.*}})
|
// CHECK-NEXT: Name: D24 (94)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __protocol (0x14)
|
// CHECK-NEXT: Section: __protocol (0x14)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -328,7 +328,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D25 ({{.*}})
|
// CHECK-NEXT: Name: D25 (80)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __string_object (0x15)
|
// CHECK-NEXT: Section: __string_object (0x15)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -337,7 +337,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D26 ({{.*}})
|
// CHECK-NEXT: Name: D26 (61)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cls_meth (0x16)
|
// CHECK-NEXT: Section: __cls_meth (0x16)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -346,7 +346,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D27 ({{.*}})
|
// CHECK-NEXT: Name: D27 (42)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __inst_meth (0x17)
|
// CHECK-NEXT: Section: __inst_meth (0x17)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -355,7 +355,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D28 ({{.*}})
|
// CHECK-NEXT: Name: D28 (23)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cls_refs (0x18)
|
// CHECK-NEXT: Section: __cls_refs (0x18)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -364,7 +364,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D29 ({{.*}})
|
// CHECK-NEXT: Name: D29 (4)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __message_refs (0x19)
|
// CHECK-NEXT: Section: __message_refs (0x19)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -373,7 +373,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D30 ({{.*}})
|
// CHECK-NEXT: Name: D30 (142)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __symbols (0x1A)
|
// CHECK-NEXT: Section: __symbols (0x1A)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -382,7 +382,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D31 ({{.*}})
|
// CHECK-NEXT: Name: D31 (131)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __category (0x1B)
|
// CHECK-NEXT: Section: __category (0x1B)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -391,7 +391,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D32 ({{.*}})
|
// CHECK-NEXT: Name: D32 (116)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __class_vars (0x1C)
|
// CHECK-NEXT: Section: __class_vars (0x1C)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -400,7 +400,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D33 ({{.*}})
|
// CHECK-NEXT: Name: D33 (101)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __instance_vars (0x1D)
|
// CHECK-NEXT: Section: __instance_vars (0x1D)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -409,7 +409,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D34 ({{.*}})
|
// CHECK-NEXT: Name: D34 (90)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __module_info (0x1E)
|
// CHECK-NEXT: Section: __module_info (0x1E)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -418,7 +418,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: (0)
|
// CHECK-NEXT: Name: L35 (72)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -427,7 +427,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D35 ({{.*}})
|
// CHECK-NEXT: Name: D35 (76)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -436,7 +436,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: (0)
|
// CHECK-NEXT: Name: L36 (53)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -445,7 +445,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D36 ({{.*}})
|
// CHECK-NEXT: Name: D36 (57)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -454,7 +454,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: (0)
|
// CHECK-NEXT: Name: L37 (34)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -463,7 +463,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D37 ({{.*}})
|
// CHECK-NEXT: Name: D37 (38)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __cstring (0x4)
|
// CHECK-NEXT: Section: __cstring (0x4)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -472,7 +472,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: (0)
|
// CHECK-NEXT: Name: L38 (15)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __selector_strs (0x1F)
|
// CHECK-NEXT: Section: __selector_strs (0x1F)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
@ -481,7 +481,7 @@ D38:
|
|||||||
// CHECK-NEXT: Value: 0x0
|
// CHECK-NEXT: Value: 0x0
|
||||||
// CHECK-NEXT: }
|
// CHECK-NEXT: }
|
||||||
// CHECK-NEXT: Symbol {
|
// CHECK-NEXT: Symbol {
|
||||||
// CHECK-NEXT: Name: D38 ({{.*}})
|
// CHECK-NEXT: Name: D38 (19)
|
||||||
// CHECK-NEXT: Type: Section (0xE)
|
// CHECK-NEXT: Type: Section (0xE)
|
||||||
// CHECK-NEXT: Section: __selector_strs (0x1F)
|
// CHECK-NEXT: Section: __selector_strs (0x1F)
|
||||||
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
// CHECK-NEXT: RefType: UndefinedNonLazy (0x0)
|
||||||
|
@ -79,9 +79,9 @@ t2:
|
|||||||
|
|
||||||
# NXX: move $2, $gp
|
# NXX: move $2, $gp
|
||||||
# NXX: lui $gp, 0
|
# 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: 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
|
# N32: addu $gp, $gp, $25
|
||||||
# N64: daddu $gp, $gp, $25
|
# N64: daddu $gp, $gp, $25
|
||||||
# NXX: nop
|
# NXX: nop
|
||||||
@ -108,4 +108,4 @@ t3:
|
|||||||
|
|
||||||
# For .cpsetup with local labels, we need to check if $tmp0 is in the symbol
|
# For .cpsetup with local labels, we need to check if $tmp0 is in the symbol
|
||||||
# table:
|
# table:
|
||||||
# NXX: .text 00000000 {{$}}
|
# NXX: .text 00000000 $tmp0
|
||||||
|
@ -4,16 +4,16 @@
|
|||||||
|
|
||||||
// CHECK: Symbols [
|
// CHECK: Symbols [
|
||||||
// CHECK: Symbol {
|
// CHECK: Symbol {
|
||||||
// CHECK: Name: (0)
|
// CHECK: Name: $.str
|
||||||
// CHECK: }
|
// CHECK: }
|
||||||
// CHECK: Symbol {
|
// CHECK: Symbol {
|
||||||
// CHECK: Name: (0)
|
// CHECK: Name: $.str1
|
||||||
// CHECK: }
|
// CHECK: }
|
||||||
// CHECK: Symbol {
|
// CHECK: Symbol {
|
||||||
// CHECK: Name: (0)
|
// CHECK: Name: $CPI0_0
|
||||||
// CHECK: }
|
// CHECK: }
|
||||||
// CHECK: Symbol {
|
// CHECK: Symbol {
|
||||||
// CHECK: Name: (0)
|
// CHECK: Name: $CPI0_1
|
||||||
// CHECK: }
|
// CHECK: }
|
||||||
// CHECK: ]
|
// CHECK: ]
|
||||||
|
|
||||||
|
@ -10,8 +10,8 @@
|
|||||||
// CHECK: 0x1C R_MIPS_GOT_LO16 ext_1
|
// CHECK: 0x1C R_MIPS_GOT_LO16 ext_1
|
||||||
// CHECK: 0x24 R_MIPS_CALL_HI16 printf
|
// CHECK: 0x24 R_MIPS_CALL_HI16 printf
|
||||||
// CHECK: 0x30 R_MIPS_CALL_LO16 printf
|
// CHECK: 0x30 R_MIPS_CALL_LO16 printf
|
||||||
// CHECK: 0x2C R_MIPS_GOT16 -
|
// CHECK: 0x2C R_MIPS_GOT16 $.str
|
||||||
// CHECK: 0x38 R_MIPS_LO16 -
|
// CHECK: 0x38 R_MIPS_LO16 $.str
|
||||||
// CHECK: ]
|
// CHECK: ]
|
||||||
|
|
||||||
.text
|
.text
|
||||||
|
@ -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_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_GOT22 AGlobalVar 0x0
|
||||||
! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 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_GOT22 .LC0 0x0
|
||||||
! CHECK-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_GOT10 - 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-NEXT: 0x{{[0-9,A-F]+}} R_SPARC_WPLT30 bar 0x0
|
||||||
! CHECK: ]
|
! CHECK: ]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user