xref: /llvm-project/clang/test/Modules/Inputs/merge-vtable-codegen/b.h (revision 1cbd9aa96d36ca320b3faf88fad3319fddd17526)
1*1cbd9aa9SReid Kleckner #ifndef B_H
2*1cbd9aa9SReid Kleckner #define B_H
3*1cbd9aa9SReid Kleckner 
4*1cbd9aa9SReid Kleckner #include "a.h"
5*1cbd9aa9SReid Kleckner 
6*1cbd9aa9SReid Kleckner class B : virtual public A {
x()7*1cbd9aa9SReid Kleckner   virtual void x() {}
8*1cbd9aa9SReid Kleckner };
9*1cbd9aa9SReid Kleckner 
b(A * p)10*1cbd9aa9SReid Kleckner void b(A* p) {
11*1cbd9aa9SReid Kleckner   p->x();
12*1cbd9aa9SReid Kleckner   // Instantiating a class that virtually inherits 'A'
13*1cbd9aa9SReid Kleckner   // triggers calculation of the vtable offsets in 'A'.
14*1cbd9aa9SReid Kleckner   B b;
15*1cbd9aa9SReid Kleckner }
16*1cbd9aa9SReid Kleckner 
17*1cbd9aa9SReid Kleckner #endif
18