# 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"); }