aboutsummaryrefslogtreecommitdiff
path: root/test/COFF/gfids-export.s
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-01-19 10:05:49 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-01-19 10:05:49 +0000
commite2fd426bdafe9f5c10066d3926ece6e342184a67 (patch)
treebfbbb5fd38554e6b8988b7a217e9fd0623728d7d /test/COFF/gfids-export.s
parent84c4061b34e048f47e5eb4fbabc1558495e8157c (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.s44
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