[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