// { 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;
}
