1 // { dg-do run  }
2 // { dg-options "-Wconversion" }
3 extern "C" void abort();
4 
5 struct A {
6   typedef double (&B);
7   typedef const double (&C);
8 
AA9   A() { }
10 
11   operator C () const;
12   operator B ();
13 };
14 
15 static const double d = 2.0;
16 static double e = 3.0;
17 
C()18 A::operator A::C () const
19 {
20   abort ();
21   return d;
22 }
23 
B()24 A::operator A::B ()
25 {
26   return e;
27 }
28 
main()29 int main ()
30 {
31   (A::C) A ();
32   return 0;
33 }
34