// { dg-do run } // { dg-options "-Wconversion" } extern "C" void abort(); struct A { typedef double (&B); typedef const double (&C); A() { } operator C () const; operator B (); }; static const double d = 2.0; static double e = 3.0; A::operator A::C () const { abort (); return d; } A::operator A::B () { return e; } int main () { (A::C) A (); return 0; }