1 // { dg-do assemble }
2 // GROUPS passed overloading
3 class Foo
4 {
5 public:
6 int operator << (const signed char&);
7 int operator << (const unsigned char&);
8 int operator << (const short&);
9 int operator << (const unsigned short&);
10 int operator << (const long&);
11 int operator << (const unsigned long&);
12 };
13
main()14 int main ()
15 {
16 Foo fd;
17
18 // We fixed convert_harshness_ansi so it considers the call to
19 // <<(const signed char&) to be a trivial conversion. It used
20 // to always make it a standard conversion, which made it conflict
21 // with <<(const unsigned char &), which is really a std conv.
22 fd << (signed char) 0;
23 }
24