brintos

brintos / llvm-project-archived public Read only

0
0
Text · 901 B · 6e96e03 Raw
35 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -verify %s -std=c++112 3struct A {4  operator int&();5  operator long*& ();6};7 8struct B {9  operator long&();10  operator int*& ();11};12 13struct C : B, A { };14 15void test(C c) {16  ++c; // expected-error {{use of overloaded operator '++' is ambiguous}}\17       // expected-note {{built-in candidate operator++(int &)}} \18       // expected-note {{built-in candidate operator++(long &)}} \19       // expected-note {{built-in candidate operator++(long *&)}} \20       // expected-note {{built-in candidate operator++(int *&)}}21}22 23struct A1 { operator volatile int&(); };24 25struct B1 { operator volatile long&(); };26 27struct C1 : B1, A1 { };28 29void test(C1 c) {30  ++c;	// expected-error {{use of overloaded operator '++' is ambiguous}} \31	// expected-note {{built-in candidate operator++(volatile int &)}} \32	// expected-note {{built-in candidate operator++(volatile long &)}}33}34 35