forked from OSchip/llvm-project
36 lines
1.1 KiB
ArmAsm
36 lines
1.1 KiB
ArmAsm
# REQUIRES: x86
|
|
|
|
# RUN: llvm-mc -triple=x86_64-windows-gnu %s -filetype=obj -o %t1.obj
|
|
# RUN: llvm-mc -triple=x86_64-windows-gnu %S/Inputs/common-replacement.s -filetype=obj -o %t2.obj
|
|
|
|
# RUN: lld-link -lldmingw -entry:main %t1.obj %t2.obj -out:%t.exe -verbose 2>&1 \
|
|
# RUN: | FileCheck -check-prefix VERBOSE %s
|
|
# RUN: llvm-readobj -S %t.exe | FileCheck -check-prefix SECTIONS %s
|
|
|
|
# VERBOSE: -aligncomm:"foo",2
|
|
|
|
# As long as the .comm symbol is replaced with actual data, RawDataSize
|
|
# below should be nonzero.
|
|
|
|
# SECTIONS: Name: .data (2E 64 61 74 61 00 00 00)
|
|
# SECTIONS-NEXT: VirtualSize: 0x8
|
|
# SECTIONS-NEXT: VirtualAddress: 0x3000
|
|
# SECTIONS-NEXT: RawDataSize: 512
|
|
|
|
|
|
.text
|
|
.def main;
|
|
.scl 2;
|
|
.type 32;
|
|
.endef
|
|
.globl main
|
|
.p2align 4, 0x90
|
|
main:
|
|
movl foo(%rip), %eax
|
|
retq
|
|
|
|
# This produces an aligncomm directive, but when linking in
|
|
# Inputs/common-replacement.s, this symbol is replaced by a normal defined
|
|
# symbol instead.
|
|
.comm foo, 4, 2
|