1 // RUN: %clang_cc1 -emit-llvm -triple i686-windows-itanium -fdeclspec %s -o - | FileCheck %s 2 3 struct __declspec(dllexport) s { 4 void f() {} 5 }; 6 7 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1saSERKS_ 8 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1s1fEv 9 10 template <class T> 11 class c { 12 void f() {} 13 }; 14 15 template class __declspec(dllexport) c<int>; 16 17 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIiEaSERKS0_ 18 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIiE1fEv 19 20 extern template class c<char>; 21 template class __declspec(dllexport) c<char>; 22 23 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIcEaSERKS0_ 24 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIcE1fEv 25 26 c<double> g; 27 template class __declspec(dllexport) c<double>; 28 29 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIdEaSERKS0_ 30 // CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIdE1fEv 31