// { dg-lto-do run }
/* This test will fail to link if the vtable for Derived is not emitted.  */
class Base {
public:
  Base(char *buf, unsigned len)
    : _buf(buf),
      _len(len)
  {}
  virtual int length () { return _len; }
private:
  char * _buf;
  unsigned _len;
};
class Derived : public Base {
public:
  Derived(char *buf, unsigned len)
    : Base(buf, len),
      _ctr(len)
  {}
  virtual int length () { return _ctr; }
private:
  unsigned _ctr;
};
int main ()
{
  Derived *d = new Derived (new char[256], 256);
  return 0;
}