# REQUIRES: aarch64 # RUN: llvm-mc -triple=aarch64-windows-gnu %s -filetype=obj -o %t-arm64.obj # RUN: llvm-mc -triple=arm64ec-windows-gnu %s -filetype=obj -o %t-arm64ec.obj # RUN: lld-link -machine:arm64x -lldmingw -out:%t.exe -opt:ref -entry:main %t-arm64.obj %t-arm64ec.obj -verbose 2>&1 | FileCheck %s # CHECK: Discarded unused # Check that __gxx_personality_v0 is not discarded and is present in the output. # RUN: llvm-objdump -d %t.exe | FileCheck --check-prefix=DISASM %s # DISASM: 0000000140001000 <.text>: # DISASM-NEXT: 140001000: 52800000 mov w0, #0x0 // =0 # DISASM-NEXT: 140001004: d65f03c0 ret # DISASM-NEXT: 140001008: 52800020 mov w0, #0x1 // =1 # DISASM-NEXT: 14000100c: d65f03c0 ret # DISASM-NEXT: ... # DISASM-NEXT: 140002000: 52800000 mov w0, #0x0 // =0 # DISASM-NEXT: 140002004: d65f03c0 ret # DISASM-NEXT: 140002008: 52800020 mov w0, #0x1 // =1 # DISASM-NEXT: 14000200c: d65f03c0 ret .def main; .scl 2; .type 32; .endef .section .text,"xr",one_only,main .globl main main: .cfi_startproc .cfi_personality 0, __gxx_personality_v0 mov w0, #0 ret .cfi_endproc .def __gxx_personality_v0; .scl 2; .type 32; .endef .section .text,"xr",one_only,__gxx_personality_v0 .globl __gxx_personality_v0 __gxx_personality_v0: mov w0, #1 ret .def unused; .scl 2; .type 32; .endef .section .text,"xr",one_only,unused .globl unused unused: .cfi_startproc .cfi_personality 0, __gxx_personality_v0 mov w0, #2 ret .cfi_endproc