1 // DR 391 says that we always bind a reference to the base subobject; it is
2 // incorrect to call the A copy constructor to initialize the parameter of
3 // f.
4 
5 int fail;
6 
7 struct A {
AA8   A() { }
AA9   A(const A&) { fail = 1; }
10 };
11 struct B : public A { };
12 struct X {
BX13   operator B() { return B(); }
14 };
15 X x;
16 
f(const A &)17 void f (const A&) { }
18 
main()19 int main()
20 {
21   f(x);
22   return fail;
23 }
24