// { dg-do assemble  }
// GROUPS passed overloading
class Foo
{
public:
  int operator << (const signed char&);
  int operator << (const unsigned char&);
  int operator << (const short&);
  int operator << (const unsigned short&);
  int operator << (const long&);
  int operator << (const unsigned long&);
};

int main ()
{
  Foo fd;

  // We fixed convert_harshness_ansi so it considers the call to
  // <<(const signed char&) to be a trivial conversion.  It used
  // to always make it a standard conversion, which made it conflict
  // with <<(const unsigned char &), which is really a std conv.
  fd << (signed char) 0;
}
