// { dg-do compile }

// Copyright (C) 2003 Free Software Foundation, Inc.
// Contributed by Nathan Sidwell 12 Dec 2003 <nathan@codesourcery.com>
// Origin: grigory@stl.sarov.ru

// PR c++/12881. ICE in thunk generation

struct c1 {};

struct c3 : virtual c1
{
    virtual c1* f6() {}
    int i;
};

struct c6 : virtual c3 { };

struct c7 : c3
{
    virtual c3* f6() {}
};

struct c24 : virtual c7
{
    virtual c6* f6();
};

c6* c24::f6() {  return 0; }

struct c31 : c24 {};

