brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.3 KiB · 3d0cd6d Raw
75 lines · plain
1REQUIRES: x862 3# RUN: rm -rf %t && split-file %s %t4# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a.s -o %t/a.o5 6## The error should be triggered only for the second test where the overflow really exists.7 8RUN: ld.lld %t/a.o -T %t/b.lds -o /dev/null 2>&19RUN: not ld.lld %t/a.o -T %t/c.lds -o /dev/null 2>&1 | FileCheck --check-prefix=ERROR %s10 11# ERROR: error: section '_abss' will not fit in region 'SRAM0': overflowed by 1024 bytes12# ERROR: error: section '.c.bss' will not fit in region 'SRAM0': overflowed by 1024 bytes13# ERROR: error: section '.text' will not fit in region 'SRAM0': overflowed by 1025 bytes14 15#--- a.s16.section .a.bss, "aw", %nobits17.globl abss18abss:19.zero 0xDF020.size abss, 0xDF021 22.section .c.bss, "aw", %nobits23.globl cbss24 25.text26.globl _start27_start:28nop29 30#--- b.lds31MEMORY32{33    SRAM0 (rw) : ORIGIN = 0x20000400, LENGTH = 10K34}35 36SECTIONS37{38    _abss ALIGN(REGION1__PRE_ALIGNMENT) :39    {40        REGION1__BEGIN = .; REGION1__ALIGNED_BEGIN = .; REGION1_ALIGNED_BEGIN = .;41        *(.a.bss)42        REGION1__END = .; . = ALIGN(REGION1__POST_ALIGNMENT); REGION1_ALIGNED_END = .;43    } > SRAM044}45 46REGION1__PRE_ALIGNMENT = 0x00000800;47REGION1__PADDED_XOR = ((ABSOLUTE(REGION1__ALIGNED_BEGIN) | (ABSOLUTE(REGION1__END) - 1)) & ~(ABSOLUTE(REGION1__ALIGNED_BEGIN) & (ABSOLUTE(REGION1__END) - 1)));48REGION1__PADDED_REGION_SHIFT = LOG2CEIL(REGION1__PADDED_XOR);49REGION1__PADDED_SR_SHIFT = REGION1__PADDED_REGION_SHIFT - 3;50REGION1__PADDED_SR_SIZE = MAX(1 << REGION1__PADDED_SR_SHIFT, 32);51REGION1__POST_ALIGNMENT = REGION1__PADDED_SR_SIZE;52 53#--- c.lds54MEMORY55{56    SRAM0 (rw) : ORIGIN = 0x20000400, LENGTH = 4K57}58 59SECTIONS60{61    _abss ALIGN(REGION1__PRE_ALIGNMENT) :62    {63        REGION1__BEGIN = .; REGION1__ALIGNED_BEGIN = .; REGION1_ALIGNED_BEGIN = .;64        *(.a.bss)65        REGION1__END = .; . = ALIGN(REGION1__POST_ALIGNMENT); REGION1_ALIGNED_END = .;66    } > SRAM067}68 69REGION1__PRE_ALIGNMENT = 0x00000800;70REGION1__PADDED_XOR = ((ABSOLUTE(REGION1__ALIGNED_BEGIN) | (ABSOLUTE(REGION1__END) - 1)) & ~(ABSOLUTE(REGION1__ALIGNED_BEGIN) & (ABSOLUTE(REGION1__END) - 1)));71REGION1__PADDED_REGION_SHIFT = LOG2CEIL(REGION1__PADDED_XOR);72REGION1__PADDED_SR_SHIFT = REGION1__PADDED_REGION_SHIFT - 3;73REGION1__PADDED_SR_SIZE = MAX(1 << REGION1__PADDED_SR_SHIFT, 32);74REGION1__POST_ALIGNMENT = REGION1__PADDED_SR_SIZE;75