# REQUIRES: x86
# RUN: rm -rf %t && split-file %s %t
# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a1.s -o %t/a1.o
# RUN: ld.lld -T %t/1.t %t/a1.o -o %t/a1 --print-memory-usage \
# RUN: | FileCheck %s --check-prefix=CHECK1 --match-full-lines --strict-whitespace
# RUN: ld.lld -T %t/2.t %t/a1.o -o %t/a2 --print-memory-usage \
# RUN: | FileCheck %s --check-prefix=CHECK2 --match-full-lines --strict-whitespace
# RUN: llvm-mc -filetype=obj -triple=x86_64 %t/a2.s -o %t/a2.o
# RUN: ld.lld -T %t/3.t %t/a2.o -o %t/a3 --print-memory-usage \
# RUN: | FileCheck %s --check-prefix=CHECK3 --match-full-lines --strict-whitespace
# CHECK1:Memory region Used Size Region Size %age Used
# CHECK1-NEXT: ROM: 4 B 1 KB 0.39%
# CHECK1-NEXT: RAM: 4 B 256 KB 0.00%
# CHECK1-NOT:{{.}}
# CHECK2:Memory region Used Size Region Size %age Used
# CHECK2-NOT:{{.}}
# CHECK3:Memory region Used Size Region Size %age Used
# CHECK3-NEXT: ROM: 256 KB 1 MB 25.00%
# CHECK3-NEXT: RAM: 32 B 2 GB 0.00%
# CHECK3-NOT:{{.}}
#--- a1.s
.text
.globl _start
_start:
.long 1
.data
.globl b
b:
.long 2
#--- a2.s
.text
.globl _start
_start:
.space 256*1024
.data
.globl b
b:
.space 32
#--- 1.t
MEMORY {
ROM (RX) : ORIGIN = 0x0, LENGTH = 1K
RAM (W) : ORIGIN = 0x100000, LENGTH = 256K
}
SECTIONS {
. = 0;
.text : { *(.text) }
.data : { *(.data) }
}
#--- 2.t
SECTIONS {
. = 0;
.text : { *(.text) }
.data : { *(.data) }
}
#--- 3.t
MEMORY {
ROM (RX) : ORIGIN = 0x0, LENGTH = 1M
RAM (W) : ORIGIN = 0x1000000, LENGTH = 2048M
}
SECTIONS {
. = 0;
.text : { *(.text) }
.data : { *(.data) }
}