// { dg-do compile }

// Contributed by Nathan Sidwell 23 Oct 2003 <nathan@codesourcery.com>
// Origin: grigory@stl.sarov.ru
// PR c++/12699 ICE with covariancy

struct c1 {
  virtual void f1() const {}
};

struct c5 {};

struct c6 : virtual c1 {
  virtual c5* f33() const { return 0; }
};

struct c13 : virtual c5 { };

struct c17 : virtual c6
{
  virtual c13* f33() const { return 0; }
};
