// 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" }
}