1dd913de9SEvgeniy Stepanov // GlobalSplit used to lose type metadata for classes with virtual bases but no virtual methods.
23ccd23e1SFilipe Cabecinhas // RUN: %clangxx_cfi -o %t1 %s && %run %t1
3dd913de9SEvgeniy Stepanov 
4*eb46c95cSPetr Hosek // UNSUPPORTED: windows-msvc
532f6b512SEvgeniy Stepanov 
6dd913de9SEvgeniy Stepanov struct Z {
7dd913de9SEvgeniy Stepanov };
8dd913de9SEvgeniy Stepanov 
9dd913de9SEvgeniy Stepanov struct ZZ : public virtual Z {
10dd913de9SEvgeniy Stepanov };
11dd913de9SEvgeniy Stepanov 
12dd913de9SEvgeniy Stepanov struct A : public ZZ {
13dd913de9SEvgeniy Stepanov };
14dd913de9SEvgeniy Stepanov 
15dd913de9SEvgeniy Stepanov struct B : public A {
16dd913de9SEvgeniy Stepanov };
17dd913de9SEvgeniy Stepanov 
main()18dd913de9SEvgeniy Stepanov int main() {
19dd913de9SEvgeniy Stepanov   A* a = new B();
20dd913de9SEvgeniy Stepanov   B *b = (B*)a;
21dd913de9SEvgeniy Stepanov }
22