STB_GNU_UNIQUE should be treated in a way similar to STB_GLOBAL. This fixes an "Invalid Binding" failure in an LLVM_ENABLE_ASSERTIONS=on build for source files like glibc elf/tst-unique1mod1.c . This bug has been benign so far because (a) Clang does not produce %gnu_unique_object by itself (b) a non-assertion build likely picks the STB_GLOBAL code path anyway.
23 lines
660 B
ArmAsm
23 lines
660 B
ArmAsm
# RUN: llvm-mc -triple=x86_64 %s | FileCheck %s --check-prefix=ASM
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 %s -o %t
|
|
# RUN: llvm-readelf -h -s %t | FileCheck %s --check-prefix=OBJ
|
|
# RUN: llvm-objdump -d -r --no-show-raw-insn %t | FileCheck %s --check-prefix=DISASM
|
|
|
|
# ASM: .type unique,@gnu_unique_object
|
|
|
|
# OBJ: OS/ABI: UNIX - GNU
|
|
# OBJ: Type Bind Vis Ndx Name
|
|
# OBJ: OBJECT UNIQUE DEFAULT [[#]] unique
|
|
|
|
# DISASM-LABEL: <.text>:
|
|
# DISASM-NEXT: movl $1, 0
|
|
## unique has a non-local binding. Reference unique instead of .data
|
|
# DISASM-NEXT: R_X86_64_32S unique
|
|
|
|
movl $1, unique
|
|
|
|
.data
|
|
.globl unique
|
|
.type unique, @gnu_unique_object
|
|
unique:
|