# REQUIRES: x86
# 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
# RUN: llvm-readobj -file-headers -coff-load-config %t.exe | FileCheck %s

# CHECK: ImageBase: 0x140000000
# CHECK: LoadConfig [
# CHECK:   SEHandlerTable: 0x0
# CHECK:   SEHandlerCount: 0
# CHECK:   GuardCFCheckFunction: 0x0
# CHECK:   GuardCFCheckDispatch: 0x0
# CHECK:   GuardCFFunctionTable: 0x14000{{.*}}
# CHECK:   GuardCFFunctionCount: 1
# CHECK:   GuardFlags: 0x10500
# CHECK:   GuardAddressTakenIatEntryTable: 0x0
# CHECK:   GuardAddressTakenIatEntryCount: 0
# CHECK:   GuardLongJumpTargetTable: 0x14000{{.*}}
# CHECK:   GuardLongJumpTargetCount: 1
# CHECK: ]
# CHECK:      GuardLJmpTable [
# CHECK-NEXT:   0x14000{{.*}}
# CHECK-NEXT: ]


# This assembly is reduced from C code like:
# #include <setjmp.h>
# jmp_buf buf;
# void g() { longjmp(buf, 1); }
# void f() {
#   if (setjmp(buf))
#     return;
#   g();
# }
# int main() { f(); }

# We need @feat.00 to have 0x800 to indicate /guard:cf.
        .def     @feat.00;
        .scl    3;
        .type   0;
        .endef
        .globl  @feat.00
@feat.00 = 0x801
        .def     f; .scl    2; .type   32; .endef
        .globl  f
f:
        pushq   %rbp
        subq    $32, %rsp
        leaq    32(%rsp), %rbp
        leaq    buf(%rip), %rcx
        leaq    -32(%rbp), %rdx
        callq   _setjmp
.Lljmp1:
        testl   %eax, %eax
        je      .LBB1_1
        addq    $32, %rsp
        popq    %rbp
        retq
.LBB1_1:                                # %if.end
        leaq    buf(%rip), %rcx
        movl    $1, %edx
        callq   longjmp
        ud2

        # Record the longjmp target.
        .section        .gljmp$y,"dr"
        .symidx .Lljmp1
        .text

        # Provide setjmp/longjmp stubs.
        .def     _setjmp; .scl    2; .type   32; .endef
        .globl  _setjmp
_setjmp:
        retq

        .def     longjmp; .scl    2; .type   32; .endef
        .globl  longjmp
longjmp:
        retq

        .def     main; .scl    2; .type   32; .endef
        .globl  main                    # -- Begin function main
main:                                   # @main
        subq    $40, %rsp
        callq   f
        xorl    %eax, %eax
        addq    $40, %rsp
        retq

        .comm   buf,256,4               # @buf

        .section .rdata,"dr"
.globl _load_config_used
_load_config_used:
        .long 256
        .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_fids_count
        .fill 84, 1, 0
