FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.bugs / 900220_03.C
blob532fc84b52e400ffb961010b40e7c8c5783f7c8e
1 // g++ 1.36.1 bug 900220_03
3 // g++ does not properly disambiguate calls to overloaded functions
4 // which are nearly identical except that one take a reference to a
5 // type `T' object and another takes a reference to a type `const T'
6 // object.
8 // (Note that the volatile stuff is commented out here because cfront
9 // does not yet grok volatile.)
11 // Cfront 2.0 passes this test.
13 // keywords: references, overloading, type qualifiers, pointers
15 int c_call_count = 0;
16 int cc_call_count = 0;
17 //int vc_call_count = 0;
19 void overloaded (char&)
21   c_call_count++;
24 void overloaded (const char&)
26   cc_call_count++;
29 //void overloaded (volatile char&)
30 //{
31 //  vc_call_count++;
32 //}
34 int test ()
36   char c = 0;
37   const char cc = 0;
38   //volatile char vc = 0;
40   char& cr = c;
41   const char& ccr = cc;
42   //volatile char& vcr = vc;
44   overloaded (c);               // OK
45   overloaded (cc);              // gets bogus error
46   //overloaded (vc);            // OK
48   return (c_call_count != 1 || cc_call_count != 1 /* || vc_call_count != 1 */);
51 int main () { return test (); }