diff --git a/lld/ELF/OutputSections.cpp b/lld/ELF/OutputSections.cpp --- a/lld/ELF/OutputSections.cpp +++ b/lld/ELF/OutputSections.cpp @@ -217,7 +217,7 @@ }); if (i == mergeSections.end()) { MergeSyntheticSection *syn = - createMergeSynthetic(name, ms->type, ms->flags, ms->addralign); + createMergeSynthetic(s->name, ms->type, ms->flags, ms->addralign); mergeSections.push_back(syn); i = std::prev(mergeSections.end()); syn->entsize = ms->entsize; diff --git a/lld/test/ELF/merge-entsize.s b/lld/test/ELF/merge-entsize.s --- a/lld/test/ELF/merge-entsize.s +++ b/lld/test/ELF/merge-entsize.s @@ -1,8 +1,12 @@ // REQUIRES: x86 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -// RUN: ld.lld %t.o -o %t +// RUN: ld.lld %t.o -o %t -M | FileCheck %s --check-prefix=MAP // RUN: llvm-readobj -S %t | FileCheck %s +// MAP: .rodata{{$}} +// MAP-NEXT: :(.rodata.1) +// MAP-NEXT: :(.rodata.2) + .section .rodata.1,"aM",@progbits,1 .p2align 2 .byte 0x42 diff --git a/lld/test/ELF/merge-string-align.s b/lld/test/ELF/merge-string-align.s --- a/lld/test/ELF/merge-string-align.s +++ b/lld/test/ELF/merge-string-align.s @@ -1,8 +1,13 @@ // REQUIRES: x86 // RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o -// RUN: ld.lld %t.o -o %t.so -shared +// RUN: ld.lld %t.o -o %t.so -shared -M | FileCheck %s --check-prefix=MAP // RUN: llvm-readobj -S --section-data %t.so | FileCheck %s +// MAP: .rodata{{$}} +// MAP-NEXT: :(.rodata.foo) +// MAP-NEXT: .rodata2 +// MAP-NEXT: :(.rodata2) + .section .rodata.foo,"aMS",@progbits,1 .align 16 .asciz "foo"