summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--llvm/lib/MC/ELFObjectWriter.cpp2
-rw-r--r--llvm/test/MC/ELF/addrsig.s14
2 files changed, 9 insertions, 7 deletions
diff --git a/llvm/lib/MC/ELFObjectWriter.cpp b/llvm/lib/MC/ELFObjectWriter.cpp
index db531f75c87..358c036f2a7 100644
--- a/llvm/lib/MC/ELFObjectWriter.cpp
+++ b/llvm/lib/MC/ELFObjectWriter.cpp
@@ -1273,6 +1273,8 @@ void ELFObjectWriter::executePostLayoutBinding(MCAssembler &Asm,
for (const MCSymbol *&Sym : AddrsigSyms) {
if (const MCSymbol *R = Renames.lookup(cast<MCSymbolELF>(Sym)))
Sym = R;
+ if (Sym->isInSection() && Sym->getName().startswith(".L"))
+ Sym = Sym->getSection().getBeginSymbol();
Sym->setUsedInReloc();
}
}
diff --git a/llvm/test/MC/ELF/addrsig.s b/llvm/test/MC/ELF/addrsig.s
index 256d8089d35..0587ad302fd 100644
--- a/llvm/test/MC/ELF/addrsig.s
+++ b/llvm/test/MC/ELF/addrsig.s
@@ -16,29 +16,29 @@
// CHECK-NEXT: AddressAlignment: 1
// CHECK-NEXT: EntrySize: 0
// CHECK-NEXT: SectionData (
-// CHECK-NEXT: 0000: 03050201
+// CHECK-NEXT: 0000: 03050102
// CHECK-NEXT: )
// CHECK-NEXT: }
// CHECK-NEXT: Section {
// CHECK-NEXT: Index: 4
// CHECK-NEXT: Name: .symtab
-// CHECK: Name: .Llocal
+// CHECK: Name: local
// CHECK-NEXT: Value:
// CHECK-NEXT: Size:
// CHECK-NEXT: Binding:
// CHECK-NEXT: Type:
// CHECK-NEXT: Other:
-// CHECK-NEXT: Section:
+// CHECK-NEXT: Section: [[SEC:.*]]
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
-// CHECK-NEXT: Name: local
+// CHECK-NEXT: Name:
// CHECK-NEXT: Value:
// CHECK-NEXT: Size:
// CHECK-NEXT: Binding:
// CHECK-NEXT: Type:
// CHECK-NEXT: Other:
-// CHECK-NEXT: Section:
+// CHECK-NEXT: Section: [[SEC]]
// CHECK-NEXT: }
// CHECK-NEXT: Symbol {
// CHECK-NEXT: Name: g1
@@ -64,8 +64,8 @@
// CHECK: Addrsig [
// CHECK-NEXT: Sym: g1 (3)
// CHECK-NEXT: Sym: g3 (5)
-// CHECK-NEXT: Sym: local (2)
-// CHECK-NEXT: Sym: .Llocal (1)
+// CHECK-NEXT: Sym: local (1)
+// CHECK-NEXT: Sym: (2)
// CHECK-NEXT: ]
// ASM: .addrsig
OpenPOWER on IntegriCloud