// { dg-do assemble } // Copyright (C) 2000 Free Software Foundation, Inc. // Contributed by Nathan Sidwell 3 Jan 2000 // Derived from a bug report by Ulrich Drepper struct A {operator char * () { return 0;} }; struct B {operator char * () const { return 0;} }; struct C {operator char const * () { return 0;} }; struct D {operator char const * () const { return 0;} }; void f0 () { A a = A (); B b = B (); C c = C (); D d = D (); static_cast (a); static_cast (b); static_cast (c); // { dg-error "" } static cast static_cast (d); // { dg-error "" } static cast } void f1 () { A a = A (); B b = B (); C c = C (); D d = D (); static_cast (a); static_cast (b); static_cast (c); static_cast (d); } void f2 () { A const a = A (); B const b = B (); C const c = C (); D const d = D (); static_cast (a); // { dg-error "" } static cast static_cast (b); static_cast (c); // { dg-error "" } static cast static_cast (d); // { dg-error "" } static cast } void f3 () { A const a = A (); B const b = B (); C const c = C (); D const d = D (); static_cast (a); // { dg-error "" } static cast static_cast (b); static_cast (c); // { dg-error "" } static cast static_cast (d); }