diff options
Diffstat (limited to 'test/SemaCXX/overloaded-operator.cpp')
-rw-r--r-- | test/SemaCXX/overloaded-operator.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/test/SemaCXX/overloaded-operator.cpp b/test/SemaCXX/overloaded-operator.cpp index e5b3fab..99105cb 100644 --- a/test/SemaCXX/overloaded-operator.cpp +++ b/test/SemaCXX/overloaded-operator.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_cc1 -fsyntax-only -verify %s +// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s class X { }; X operator+(X, X); @@ -387,8 +387,8 @@ void test_lookup_through_using() { namespace rdar9136502 { struct X { - int i(); - int i(int); + int i(); // expected-note{{possible target for call}} + int i(int); // expected-note{{possible target for call}} }; struct Y { @@ -396,7 +396,8 @@ namespace rdar9136502 { }; void f(X x, Y y) { - y << x.i; // expected-error{{reference to non-static member function must be called}} + y << x + .i; // expected-error{{reference to non-static member function must be called; did you mean to call it with no arguments?}} } } @@ -440,3 +441,14 @@ namespace test10 { a[bar<float>]; } } + +struct InvalidOperatorEquals { + InvalidOperatorEquals operator=() = delete; // expected-error {{overloaded 'operator=' must be a binary operator}} +}; + +namespace PR7681 { + template <typename PT1, typename PT2> class PointerUnion; + void foo(PointerUnion<int*, float*> &Result) { + Result = 1; // expected-error {{no viable overloaded '='}} // expected-note {{type 'PointerUnion<int *, float *>' is incomplete}} + } +} |