xref: /llvm-project/lld/test/ELF/defsym-reserved-syms.s (revision d4306e90cb18f663342068a4ad83ba42545dbf01)
1# REQUIRES: x86
2# RUN: llvm-mc -filetype=obj -triple=x86_64-pc-linux %s -o %t.o
3# RUN: ld.lld -o %t %t.o --defsym=foo2=etext
4# RUN: llvm-readobj --symbols -S %t | FileCheck %s
5
6## Check 'foo2' value is equal to value of 'etext'.
7# CHECK:     Symbol {
8# CHECK:      Name: foo2
9# CHECK-NEXT:  Value: 0x[[VAL:.*]]
10# CHECK:     Symbol {
11# CHECK:      Name: etext
12# CHECK-NEXT:  Value: 0x[[VAL]]
13
14## Check 'foo2' value set correctly when using
15## reserved symbol 'etext' in expression.
16# RUN: ld.lld -o %t %t.o --defsym=foo2=etext+2
17# RUN: llvm-readobj --symbols -S %t | FileCheck %s --check-prefix=EXPR
18# EXPR:     Symbol {
19# EXPR:      Name: foo2
20# EXPR-NEXT:  Value: 0x201127
21# EXPR:     Symbol {
22# EXPR:      Name: etext
23# EXPR-NEXT:  Value: 0x201125
24
25.globl foo1
26 foo1 = 0x123
27
28.global _start
29_start:
30  movl $foo2, %edx
31