diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:05:49 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:05:49 +0000 |
commit | e2fd426bdafe9f5c10066d3926ece6e342184a67 (patch) | |
tree | bfbbb5fd38554e6b8988b7a217e9fd0623728d7d /test/COFF/gfids-export.s | |
parent | 84c4061b34e048f47e5eb4fbabc1558495e8157c (diff) |
Vendor import of lld trunk r351319 (just before the release_80 branchvendor/lld/lld-trunk-r351319
Notes
Notes:
svn path=/vendor/lld/dist/; revision=343179
svn path=/vendor/lld/lld-trunk-r351319/; revision=343180; tag=vendor/lld/lld-trunk-r351319
Diffstat (limited to 'test/COFF/gfids-export.s')
-rw-r--r-- | test/COFF/gfids-export.s | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/COFF/gfids-export.s b/test/COFF/gfids-export.s new file mode 100644 index 000000000000..87a4f4b47fa3 --- /dev/null +++ b/test/COFF/gfids-export.s @@ -0,0 +1,44 @@ +# REQUIRES: x86 +# RUN: llvm-mc -triple x86_64-pc-win32 %s -filetype=obj -o %t.obj +# RUN: lld-link %t.obj -guard:cf -dll -out:%t.dll -noentry +# RUN: llvm-readobj -coff-load-config %t.dll | FileCheck %s --check-prefix=CHECK + +# There should be a single entry in the table for the exported symbol. +# +# CHECK: GuardFidTable [ +# CHECK-NEXT: 0x180001000 +# CHECK-NEXT: ] + + .def func_export; .scl 2; .type 32; .endef + .globl func_export + .section .text,"xr",one_only,func_export + .p2align 4 +func_export: + movl $1, %eax + .globl label_export +label_export: + movl $2, %eax + ret + + .data + .globl data_export +data_export: + .long 42 + + .section .drectve,"dr" + .ascii " /EXPORT:func_export" + .ascii " /EXPORT:label_export" + .ascii " /EXPORT:data_export" + + +# Load configuration directory entry (winnt.h _IMAGE_LOAD_CONFIG_DIRECTORY64). +# The linker will define the __guard_* symbols. + .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 128, 1, 0 |