Clang Project

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