1// { dg-do assemble  }
2// PRMS Id: 4257
3// Bug: g++ ignores non-member possibilities (ideal_candidate_ansi bug)
4
5class ostream
6{
7public:
8#ifdef EITHER_ONE_A
9    ostream& operator<<(unsigned long n);
10    ostream& operator<<(long n);
11#else
12    ostream& operator<<(short n);
13    ostream& operator<<(unsigned short n);
14#endif
15};
16
17class ccObjectInfo {};
18
19ostream& operator << (ostream& out, const ccObjectInfo& obj);
20
21class ccString : public ccObjectInfo
22{
23#ifdef EITHER_ONE_B
24    operator int		() const;
25#else
26    operator long   		() const;
27#endif
28};
29
30// Should pick this one!!
31ostream& operator << (ostream& o, const ccString & s);
32
33extern ostream cout;
34
35void f ()
36{
37    ccString foo;
38    cout << foo;
39}
40