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
5int fail;
6
7struct A {
8  A() { }
9  A(const A&) { fail = 1; }
10};
11struct B : public A { };
12struct X {
13  operator B() { return B(); }
14};
15X x;
16
17void f (const A&) { }
18
19int main()
20{
21  f(x);
22  return fail;
23}
24