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 Stepanovint main() { 19dd913de9SEvgeniy Stepanov A* a = new B(); 20dd913de9SEvgeniy Stepanov B *b = (B*)a; 21dd913de9SEvgeniy Stepanov } 22