80 lines · cpp
1// RUN: %clang_cc1 %s -I%S -triple=x86_64-apple-darwin10 -emit-llvm-only -O32 3// Check that we don't assert on this case.4namespace Test1 {5 6struct Incomplete;7 8struct A {9 virtual void f();10 virtual void g(Incomplete);11 virtual void h();12 virtual void i();13 int a;14};15 16struct B {17 virtual void f();18 virtual void g(Incomplete);19 virtual void h();20 virtual void i();21 int b;22};23 24struct C : A, B {25 C();26 27 virtual void f();28 virtual void g(Incomplete);29 virtual void h();30 virtual void i();31};32 33void C::h() { }34 35C::C() { }36 37void C::i() { }38 39}40 41namespace Test2 {42 43struct A {44 virtual void f();45 int a;46};47 48struct B {49 virtual void f();50 int b;51};52 53struct C : A, B {54 virtual void f();55};56 57static void f(B* b) {58 b->f();59}60 61}62 63// Test that we don't assert.64namespace Test3 {65 66struct A {67 virtual ~A();68 69 int a;70};71 72struct B : A { };73struct C : virtual B { };74 75void f() {76 C c;77}78 79}80