forked from OSchip/llvm-project
[ELF] - Add a test case for relocation pointing to deduplicated COMDAT.
ELF spec doesn't allow a relocation to point to a deduplicated COMDAT section. Unfortunately this happens in practice (e.g. .eh_frame) We have a code in MarkLive.cpp for that and it was uncovered by any test case: https://github.com/llvm-mirror/lld/blob/master/ELF/MarkLive.cpp#L199 Patch adds a test. llvm-svn: 336259
This commit is contained in:
parent
bee9ca6568
commit
514ac22d8f
|
@ -0,0 +1,6 @@
|
|||
.section .text.bar1,"aG",@progbits,group,comdat
|
||||
|
||||
.section .text.bar2
|
||||
.global bar
|
||||
bar:
|
||||
.quad .text.bar1
|
|
@ -0,0 +1,17 @@
|
|||
# REQUIRES: x86
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
|
||||
# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %p/Inputs/comdat-discarded-reloc.s -o %t2.o
|
||||
# RUN: ld.lld -gc-sections %t.o %t2.o -o %t
|
||||
|
||||
## ELF spec doesn't allow a relocation to point to a deduplicated
|
||||
## COMDAT section. Unfortunately this happens in practice (e.g. .eh_frame)
|
||||
## Test case checks we do not crash.
|
||||
|
||||
.global bar, _start
|
||||
|
||||
.section .text.foo,"aG",@progbits,group,comdat
|
||||
|
||||
.section .text
|
||||
_start:
|
||||
.quad .text.foo
|
||||
.quad bar
|
Loading…
Reference in New Issue