// { dg-do run  }
// GROUPS passed groff
/* This should compile properly with the new overloading scheme.  */
extern "C" int printf (const char *, ...);
extern "C" void exit (int);
int win = 0;
class symbol
{
public:
  symbol(const char *p, int how = 0) {}
  symbol() {}
};
class dictionary
{
public:
  void lookup(symbol s, void *v=0) { win = 1; }
  void lookup(const char *) {}
};
int main()
{
  char buf[2048];
  dictionary exceptions;
  unsigned char *tem = new unsigned char[19 + 1];
  exceptions.lookup (symbol (buf), tem);
  printf (win ? "PASS\n" : "FAIL\n");
  exit (! win);
}