FSF GCC merge 02/23/03
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.law / arm7.C
blobc767c597201c5672711e495b69ca6d1e9b8f3988
1 // Special g++ Options: -w
2 // GROUPS passed ARM-compliance
3 // arm file (also in cvt file)
4 // Message-Id: <9303061246.AA09402@gjetost.cs.wisc.edu>
5 // From: solomon@cs.wisc.edu (Marvin Solomon)
6 // Subject: Incorrect resolution of conversion path
7 // Date: Sat, 6 Mar 93 06:46:27 -0600
10 extern "C" int printf (const char *, ...);
12 class Base {
13 public:
14         int i;
15         Base(int ii) : i(ii) {}
18 class Derived : public Base {
19 public:
20         Derived(int ii) : Base(ii) {}
21         operator Base&();
24 Derived::operator Base&() {
25         Base *b = new Base(100*i);
26         return *b;
29 int f(Base &b) {
30         if (b.i == 99)
31           { printf ("PASS\n"); return 0; }
32         else
33           { printf ("FAIL\n"); return 1; }
36 int main() {
37         Derived d(99);
38         return f(d);