111 lines · plain
1# REQUIRES: x862# RUN: llvm-mc -filetype=obj -triple=x86_64-unknown-linux %s -o %t3# RUN: echo "SECTIONS { \4# RUN: .aaa 0x2000 : { *(.aaa) } \5# RUN: .bbb 0x1 ? 0x3000 : 0x4000 : { *(.bbb) } \6# RUN: .ccc ALIGN(CONSTANT(MAXPAGESIZE)) + (. & (CONSTANT(MAXPAGESIZE) - 1)) : { *(.ccc) } \7# RUN: .ddd 0x5001 : { *(.ddd) } \8# RUN: }" > %t.script9# RUN: ld.lld %t --script %t.script -o %tout10# RUN: llvm-readobj -S %tout | FileCheck %s11 12## Check:13## 1) Simple constant as address.14## 2) That something that contains ":" character, like ternary15## operator works as expression.16## 3) That complex expressions work.17## 4) That section alignment still applied to explicitly specified address.18 19#CHECK:Sections [20#CHECK: Section {21#CHECK: Index: 022#CHECK: Name:23#CHECK: Type: SHT_NULL24#CHECK: Flags [25#CHECK: ]26#CHECK: Address: 0x027#CHECK: Offset: 0x028#CHECK: Size: 029#CHECK: Link: 030#CHECK: Info: 031#CHECK: AddressAlignment: 032#CHECK: EntrySize: 033#CHECK: }34#CHECK: Section {35#CHECK: Index: 136#CHECK: Name: .aaa37#CHECK: Type: SHT_PROGBITS38#CHECK: Flags [39#CHECK: SHF_ALLOC40#CHECK: ]41#CHECK: Address: 0x200042#CHECK: Offset: 0x100043#CHECK: Size: 844#CHECK: Link: 045#CHECK: Info: 046#CHECK: AddressAlignment: 147#CHECK: EntrySize: 048#CHECK: }49#CHECK: Section {50#CHECK: Index: 251#CHECK: Name: .bbb52#CHECK: Type: SHT_PROGBITS53#CHECK: Flags [54#CHECK: SHF_ALLOC55#CHECK: ]56#CHECK: Address: 0x300057#CHECK: Offset: 0x200058#CHECK: Size: 859#CHECK: Link: 060#CHECK: Info: 061#CHECK: AddressAlignment: 162#CHECK: EntrySize: 063#CHECK: }64#CHECK: Section {65#CHECK: Index: 366#CHECK: Name: .ccc67#CHECK: Type: SHT_PROGBITS68#CHECK: Flags [69#CHECK: SHF_ALLOC70#CHECK: ]71#CHECK: Address: 0x400872#CHECK: Offset: 0x300873#CHECK: Size: 874#CHECK: Link: 075#CHECK: Info: 076#CHECK: AddressAlignment: 177#CHECK: EntrySize: 078#CHECK: }79#CHECK: Section {80#CHECK: Index: 481#CHECK: Name: .ddd82#CHECK: Type: SHT_PROGBITS83#CHECK: Flags [84#CHECK: SHF_ALLOC85#CHECK: ]86#CHECK: Address: 0x500187#CHECK: Offset: 0x400188#CHECK: Size: 2389#CHECK: Link: 090#CHECK: Info: 091#CHECK: AddressAlignment: 1692#CHECK: EntrySize: 093#CHECK: }94 95.globl _start96_start:97nop98 99.section .aaa, "a"100.quad 0101 102.section .bbb, "a"103.quad 0104 105.section .ccc, "a"106.quad 0107 108.section .ddd, "a"109.align 16110.quad 0111