// { dg-do run } struct S0 { virtual int is_kind_of_S1 () const { return 0; } virtual void dummy () { } }; struct S1 : virtual public S0 { virtual int is_kind_of_S1 () const { return 1; } virtual void dummy () { } }; struct S2 : virtual public S0 { virtual void dummy () { } }; struct S3 : public S2, public S1 { virtual void dummy () { } }; static struct S0 *var = new S3 (); int main () { if (var->is_kind_of_S1() != 1) return 1; return 0; }