[lld] r321790 - [COFF] Add a testcase for dllexported symbols via embedded directives
Martin Storsjo via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 4 00:06:34 PST 2018
Author: mstorsjo
Date: Thu Jan 4 00:06:34 2018
New Revision: 321790
URL: http://llvm.org/viewvc/llvm-project?rev=321790&view=rev
Log:
[COFF] Add a testcase for dllexported symbols via embedded directives
This is in preparation for fixing PR35733.
Differential Revision: https://reviews.llvm.org/D41630
Added:
lld/trunk/test/COFF/dllexport.s
Added: lld/trunk/test/COFF/dllexport.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/dllexport.s?rev=321790&view=auto
==============================================================================
--- lld/trunk/test/COFF/dllexport.s (added)
+++ lld/trunk/test/COFF/dllexport.s Thu Jan 4 00:06:34 2018
@@ -0,0 +1,60 @@
+# REQUIRES: x86
+# RUN: llvm-mc -filetype=obj -triple=i686-windows-msvc %s -o %t.obj
+
+# RUN: lld-link -entry:dllmain -dll %t.obj -out:%t.dll -implib:%t.lib
+# RUN: llvm-readobj %t.lib | FileCheck -check-prefix DECORATED-IMPLIB %s
+# RUN: llvm-readobj -coff-exports %t.dll | FileCheck -check-prefix DECORATED-EXPORTS %s
+
+# DECORATED-IMPLIB: Name type: name
+# DECORATED-IMPLIB-NEXT: __imp_ at fastcall@8
+# DECORATED-IMPLIB-NEXT: @fastcall at 8
+# DECORATED-IMPLIB: Name type: noprefix
+# DECORATED-IMPLIB-NEXT: __imp___underscored
+# DECORATED-IMPLIB-NEXT: __underscored
+# TODO: To match link.exe, this one should also be Name type: name.
+# DECORATED-IMPLIB: Name type: noprefix
+# DECORATED-IMPLIB-NEXT: __imp__stdcall at 8
+# DECORATED-IMPLIB-NEXT: _stdcall at 8
+# DECORATED-IMPLIB: Name type: name
+# DECORATED-IMPLIB-NEXT: __imp_vectorcall@@8
+# DECORATED-IMPLIB-NEXT: vectorcall@@8
+
+# DECORATED-EXPORTS: Name: @fastcall at 8
+# DECORATED-EXPORTS: Name: _underscored
+# TODO: To match link.exe, this one should actually be _stdcall at 8
+# DECORATED-EXPORTS: Name: stdcall at 8
+# DECORATED-EXPORTS: Name: vectorcall@@8
+
+ .def _stdcall at 8;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _stdcall at 8
+ .globl @fastcall at 8
+ .globl vectorcall@@8
+ .globl __underscored
+_stdcall at 8:
+ movl 8(%esp), %eax
+ addl 4(%esp), %eax
+ retl $8
+ at fastcall@8:
+ movl 8(%esp), %eax
+ addl 4(%esp), %eax
+ retl $8
+vectorcall@@8:
+ movl 8(%esp), %eax
+ addl 4(%esp), %eax
+ retl $8
+__underscored:
+ ret
+
+ .def _dllmain;
+ .scl 2;
+ .type 32;
+ .endef
+ .globl _dllmain
+_dllmain:
+ retl
+
+.section .drectve
+.ascii "-export:__underscored -export:_stdcall at 8 -export:@fastcall at 8 -export:vectorcall@@8"
More information about the llvm-commits
mailing list