From 707e27bb921177a401896074ac94ea0cc3b93017 Mon Sep 17 00:00:00 2001 From: Hans Wennborg <hans@hanshq.net> Date: Sat, 23 Aug 2014 23:00:29 +0000 Subject: [PATCH] Add another test for DLL attribute inheritance to partial specializations git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216337 91177308-0d34-0410-b5e6-96231b3b80d8 --- test/CodeGenCXX/dllexport.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/test/CodeGenCXX/dllexport.cpp b/test/CodeGenCXX/dllexport.cpp index f2e0c3b251..c46401239d 100644 --- a/test/CodeGenCXX/dllexport.cpp +++ b/test/CodeGenCXX/dllexport.cpp @@ -593,6 +593,14 @@ USEMEMFUNC(PartiallySpecializedExportedClassTemplate<void*>, f); // M32-DAG: define weak_odr dllexport x86_thiscallcc void @"\01?f@?$PartiallySpecializedExportedClassTemplate@PAX@@QAEXXZ" // G32-DAG: define linkonce_odr x86_thiscallcc void @_ZN41PartiallySpecializedExportedClassTemplateIPvE1fEv +// MS ignores DLL attributes on partial specializations; inheritance still works though. +template <typename T> struct __declspec(dllexport) PartiallySpecializedExportedClassTemplate2 {}; +template <typename T> struct __declspec(dllimport) PartiallySpecializedExportedClassTemplate2<T*> { void f() {} }; +USEMEMFUNC(PartiallySpecializedExportedClassTemplate2<void*>, f); +// M32-DAG: define weak_odr dllexport x86_thiscallcc void @"\01?f@?$PartiallySpecializedExportedClassTemplate2@PAX@@QAEXXZ" +// G32-DAG: declare dllimport x86_thiscallcc void @_ZN42PartiallySpecializedExportedClassTemplate2IPvE1fEv + + //===----------------------------------------------------------------------===// // Classes with template base classes //===----------------------------------------------------------------------===// -- 2.40.0