diff --git a/clang/test/CodeGenCXX/dllexport.cpp b/clang/test/CodeGenCXX/dllexport.cpp index f2e0c3b2519e..c46401239d50 100644 --- a/clang/test/CodeGenCXX/dllexport.cpp +++ b/clang/test/CodeGenCXX/dllexport.cpp @@ -593,6 +593,14 @@ USEMEMFUNC(PartiallySpecializedExportedClassTemplate, 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 struct __declspec(dllexport) PartiallySpecializedExportedClassTemplate2 {}; +template struct __declspec(dllimport) PartiallySpecializedExportedClassTemplate2 { void f() {} }; +USEMEMFUNC(PartiallySpecializedExportedClassTemplate2, 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 //===----------------------------------------------------------------------===//