1 // RUN: %clang_cc1 -triple x86_64-windows-gnu -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS="dso_local dllexport" 2 // RUN: %clang_cc1 -triple x86_64-windows-itanium -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS="dso_local dllexport" 3 // RUN: %clang_cc1 -triple x86_64-scei-ps4 -fdeclspec -emit-llvm -o - %s | FileCheck %s -DDSO_ATTRS=dllexport 4 5 struct __declspec(dllexport) A { 6 virtual void m(); 7 }; 8 struct __declspec(dllexport) B { 9 virtual void m(); 10 }; 11 struct __declspec(dllexport) C : A, B { 12 virtual void m(); 13 }; 14 void C::m() {} 15 // CHECK: define{{.*}} [[DSO_ATTRS]] void @_ZThn8_N1C1mEv 16 17 struct Base { 18 virtual void m(); 19 }; 20 struct __declspec(dllexport) Derived : virtual Base { 21 virtual void m(); 22 }; 23 void Derived::m() {} 24 // CHECK: define{{.*}} [[DSO_ATTRS]] void @_ZTv0_n24_N7Derived1mEv 25