Home | History | Annotate | Download | only in SemaCXX
      1 // RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++11
      2 
      3 enum E2 { };
      4 
      5 struct A {
      6   operator E2&(); // expected-note 3 {{candidate function}}
      7 };
      8 
      9 struct B {
     10   operator E2&(); // expected-note 3 {{candidate function}}
     11 };
     12 
     13 struct C : B, A {
     14 };
     15 
     16 void test(C c) {
     17   const E2 &e2 = c; // expected-error {{reference initialization of type 'const E2 &' with initializer of type 'C' is ambiguous}}
     18 }
     19 
     20 void foo(const E2 &);// expected-note{{passing argument to parameter here}}
     21 
     22 const E2 & re(C c) {
     23     foo(c); // expected-error {{reference initialization of type 'const E2 &' with initializer of type 'C' is ambiguous}}
     24 
     25     return c; // expected-error {{reference initialization of type 'const E2 &' with initializer of type 'C' is ambiguous}}
     26 }
     27 
     28 
     29