47 lines
1.5 KiB
Text
47 lines
1.5 KiB
Text
# REQUIRES: x86
|
|
## Test quotation when specifying section names.
|
|
|
|
# RUN: rm -rf %t && split-file %s %t && cd %t
|
|
# RUN: llvm-mc -filetype=obj -triple=x86_64 a.s -o a.o
|
|
# RUN: ld.lld -T a.t a.o
|
|
# RUN: llvm-readelf -S -s a.out | FileCheck %s
|
|
|
|
# CHECK: Name Type Address Off Size ES Flg Lk Inf Al
|
|
# CHECK-NEXT: NULL 0000000000000000 000000 000000 00 0 0 0
|
|
# CHECK-NEXT: .text {{.*}}
|
|
# CHECK-NEXT: .data {{.*}}
|
|
# CHECK: Num: Value Size Type Bind Vis Ndx Name
|
|
# CHECK-NEXT: 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
|
|
# CHECK-NEXT: 1: 0000000000000009 0 NOTYPE GLOBAL DEFAULT ABS text_size
|
|
# CHECK-NEXT: 2: 0000000000000009 0 NOTYPE GLOBAL DEFAULT ABS data_size
|
|
|
|
#--- a.s
|
|
.text
|
|
nop
|
|
|
|
.data
|
|
.byte 0
|
|
|
|
#--- a.t
|
|
SECTIONS {
|
|
## Check quoted section names are accepted and quotes are removed in the
|
|
## output binary section name.
|
|
##
|
|
## Also check that functions taking a section name as parameter work correctly
|
|
## when quoted section names are provided as inputs.
|
|
".text" : AT(ADDR(".text")) {
|
|
LONG (ALIGNOF(".text"))
|
|
LONG (LOADADDR(".text"))
|
|
*(.text)
|
|
}
|
|
text_size = SIZEOF(".text");
|
|
|
|
## Check that functions that take a section name can correctly match a quoted
|
|
## section name input parameter against a non-quoted section definition.
|
|
.data : AT(ADDR(".data")) {
|
|
LONG (ALIGNOF(".data"))
|
|
LONG (LOADADDR(".data"))
|
|
*(.data)
|
|
}
|
|
data_size = SIZEOF(".data");
|
|
}
|