2 # RUN: grep -B99999 [S]PLITMARKER %s | llvm-mc -triple x86_64-windows-msvc -filetype=obj -o %t1.obj
3 # RUN: grep -A99999 [S]PLITMARKER %s | llvm-mc -triple x86_64-windows-msvc -filetype=obj -o %t2.obj
4 # RUN: lld-link %t1.obj %t2.obj -guard:nolongjmp -out:%t.exe -entry:main -opt:noref
5 # RUN: llvm-readobj -file-headers -coff-load-config %t.exe | FileCheck %s
7 # CHECK: ImageBase: 0x140000000
9 # CHECK: SEHandlerTable: 0x0
10 # CHECK: SEHandlerCount: 0
11 # CHECK: GuardCFCheckFunction: 0x0
12 # CHECK: GuardCFCheckDispatch: 0x0
13 # CHECK: GuardCFFunctionTable: 0x14000{{.*}}
14 # CHECK: GuardCFFunctionCount: 3
15 # CHECK: GuardFlags: 0x500
16 # CHECK: GuardAddressTakenIatEntryTable: 0x0
17 # CHECK: GuardAddressTakenIatEntryCount: 0
18 # CHECK: GuardLongJumpTargetTable: 0x0
19 # CHECK: GuardLongJumpTargetCount: 0
21 # CHECK: GuardFidTable [
22 # CHECK-NEXT: 0x14000{{.*}}
23 # CHECK-NEXT: 0x14000{{.*}}
24 # CHECK-NEXT: 0x14000{{.*}}
28 # Indicate that no gfids are present. All symbols used by relocations in this
29 # file will be considered address-taken.
30 .def @feat.00; .scl 3; .type 0; .endef
34 .def main; .scl 2; .type 32; .endef
35 .section .text,"xr",one_only,main
45 # Should not appear in gfids table.
46 .def baz; .scl 2; .type 32; .endef
47 .section .text,"xr",one_only,baz
53 .def qux; .scl 2; .type 32; .endef
54 .section .text,"xr",one_only,qux
60 .def quxx; .scl 2; .type 32; .endef
61 .section .text,"xr",one_only,quxx
69 .globl _load_config_used
73 .quad __guard_fids_table
74 .quad __guard_fids_count
80 # Indicate that gfids are present. This file does not take any addresses.
81 .def @feat.00; .scl 3; .type 0; .endef
85 .def foo; .scl 2; .type 32; .endef
86 .section .text,"xr",one_only,foo
92 .def bar; .scl 2; .type 32; .endef
93 .section .text,"xr",one_only,bar