blob: 92cca24442874717a27675ce1d2c64c5db943c62 [file] [log] [blame]
Saleem Abdulrasool8bbc3152016-10-14 22:25:46 +00001// RUN: %clang_cc1 -emit-llvm -triple i686-windows-itanium -fdeclspec %s -o - | FileCheck %s
2
3struct __declspec(dllexport) s {
4 void f() {}
5};
6
7// CHECK: define {{.*}} dllexport {{.*}} @_ZN1saSERKS_
8// CHECK: define {{.*}} dllexport {{.*}} @_ZN1s1fEv
9
Shoaib Meenaiab3f96c2016-11-09 23:52:20 +000010template <class T>
11class c {
12 void f() {}
13};
14
15template class __declspec(dllexport) c<int>;
16
17// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIiEaSERKS0_
18// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIiE1fEv
19
20extern template class c<char>;
21template class __declspec(dllexport) c<char>;
22
23// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIcEaSERKS0_
24// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIcE1fEv
25
Shoaib Meenaifc78d7c2016-12-05 18:01:35 +000026c<double> g;
27template class __declspec(dllexport) c<double>;
28
29// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIdEaSERKS0_
30// CHECK: define {{.*}} dllexport {{.*}} @_ZN1cIdE1fEv