// PR c++/31941
// { dg-do compile }

struct S
{
  S() throw () { }
  virtual ~S () throw ();
  virtual const char* what () const throw ();
};

const char *
foo (S &e)
{
  return e.what ().c_str ();	// { dg-error "c_str.*S::what.*which is of non-class type" }
}


syntax highlighted by Code2HTML, v. 0.9.1