# REQUIRES: x86
# The __guard_fids_table is a DefinedSynthetic when control flow guard is
# enabled and there are entries to be added to the fids table. This test uses
# this to check that DefinedSynthetic symbols are being written to the COFF
# symbol table.
# RUN: llvm-mc -triple x86_64-windows-msvc %s -filetype=obj -o %t.obj
# RUN: lld-link %t.obj -guard:cf -out:%t.exe -entry:main -debug:symtab
# RUN: llvm-readobj --symbols %t.exe | FileCheck --check-prefix=CHECK %s
# CHECK: Name: __guard_fids_table
# CHECK-NEXT: Value:
# CHECK-NEXT: Section: .rdata (2)
# We need @feat.00 to have 0x800 to indicate /guard:cf.
.def @feat.00;
.scl 3;
.type 0;
.endef
.globl @feat.00
@feat.00 = 0x800
.def main; .scl 2; .type 32; .endef
.globl main # -- Begin function main
.p2align 4, 0x90
main:
retq
# -- End function
.section .gfids$y,"dr"
.symidx main
.section .giats$y,"dr"
.section .gljmp$y,"dr"
.addrsig_sym main
.section .rdata,"dr"
.globl _load_config_used
.p2align 3
_load_config_used:
.long 312
.fill 124, 1, 0
.quad __guard_fids_table
.quad __guard_fids_count
.long __guard_flags
.fill 12, 1, 0
.quad __guard_iat_table
.quad __guard_iat_count
.quad __guard_longjmp_table
.quad __guard_longjmp_count
.fill 72, 1, 0
.quad __guard_eh_cont_table
.quad __guard_eh_cont_count
.fill 32, 1, 0