2003-12-26 Guilhem Lavaux <guilhem@kaffe.org>
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.other / cast4.C
blob3348dcee8a35dfbe239f959e0187e13e2018db02
1 // { dg-do assemble  }
3 // Copyright (C) 2000 Free Software Foundation, Inc.
4 // Contributed by Nathan Sidwell 3 Jan 2000 <nathan@acm.org>
6 // Derived from a bug report by Ulrich Drepper <drepper@cygnus.com>
8 struct A {operator char * () { return 0;} };
9 struct B {operator char * () const { return 0;} };
10 struct C {operator char const * () { return 0;} };
11 struct D {operator char const * () const { return 0;} };
13 void f0 ()
15   A a = A ();
16   B b = B ();
17   C c = C ();
18   D d = D ();
19   
20   static_cast <char *> (a);
21   static_cast <char *> (b);
22   static_cast <char *> (c);   // { dg-error "" } static cast
23   static_cast <char *> (d);   // { dg-error "" } static cast
26 void f1 ()
28   A a = A ();
29   B b = B ();
30   C c = C ();
31   D d = D ();
32   
33   static_cast <const char *> (a);
34   static_cast <const char *> (b);
35   static_cast <const char *> (c);
36   static_cast <const char *> (d);
39 void f2 ()
41   A const a = A ();
42   B const b = B ();
43   C const c = C ();
44   D const d = D ();
45   
46   static_cast <char *> (a);   // { dg-error "" } static cast
47   static_cast <char *> (b);
48   static_cast <char *> (c);   // { dg-error "" } static cast
49   static_cast <char *> (d);   // { dg-error "" } static cast
52 void f3 ()
54   A const a = A ();
55   B const b = B ();
56   C const c = C ();
57   D const d = D ();
58   
59   static_cast <const char *> (a); // { dg-error "" } static cast
60   static_cast <const char *> (b);
61   static_cast <const char *> (c); // { dg-error "" } static cast
62   static_cast <const char *> (d);