2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / call1.C
blobe12cffedf4f6ebc86f17bf7ce8d8e49ecbebe6f9
1 // { dg-do run  }
2 // Test that various calls to non-functions work.
4 void f () { }
6 typedef void (*fptr)();
7 typedef void (&fref)();
8 fptr p = f;
9 fref r = f;
10 const fptr &pr = p;
12 struct A {
13   fptr p;
15   A (fptr n): p(n) { }
16   operator fptr () { return p; }
19 struct B {
20   fref r;
22   B (fptr n): r(*n) { }
23   operator const fref () { return r; }
26 struct C {
27   const fptr pr;
29   C (fptr n): pr(n) { }
30   operator const fptr& () { return pr; }
33 int main ()
35   f();
37   p();
38   r();
39   pr();
41   A a (f);
42   a();
43   a.p();
45   B b (f);
46   b();
47   b.r();
49   C c (f);
50   c();
51   c.pr();