diff options
Diffstat (limited to 'clang/test/SemaCXX')
| -rw-r--r-- | clang/test/SemaCXX/basic_lookup_argdep.cpp | 23 | ||||
| -rw-r--r-- | clang/test/SemaCXX/conversion-function.cpp | 2 | ||||
| -rw-r--r-- | clang/test/SemaCXX/type-dependent-exprs.cpp | 2 |
3 files changed, 21 insertions, 6 deletions
diff --git a/clang/test/SemaCXX/basic_lookup_argdep.cpp b/clang/test/SemaCXX/basic_lookup_argdep.cpp index 67f2b650339..53448d119a8 100644 --- a/clang/test/SemaCXX/basic_lookup_argdep.cpp +++ b/clang/test/SemaCXX/basic_lookup_argdep.cpp @@ -6,7 +6,7 @@ namespace N { X operator+(X, X); void f(X); - void g(X); + void g(X); // expected-note{{candidate function}} void test_multiadd(X x) { (void)(x + x); @@ -39,7 +39,22 @@ namespace N { void test_func_adl_only(N::X x) { - // FIXME: here, despite the fact that the name lookup for 'g' fails, - // this is well-formed code. The fix will go into Sema::ActOnCallExpr. - // g(x); + g(x); +} + +namespace M { + int g(N::X); // expected-note{{candidate function}} + + void test(N::X x) { + g(x); // expected-error{{call to 'g' is ambiguous; candidates are:}} + int i = (g)(x); + + int g(N::X); + g(x); // okay; calls locally-declared function, no ADL + } +} + + +void test_operator_name_adl(N::X x) { + (void)operator+(x, x); } diff --git a/clang/test/SemaCXX/conversion-function.cpp b/clang/test/SemaCXX/conversion-function.cpp index 17e73bce9a6..f9dd6005b90 100644 --- a/clang/test/SemaCXX/conversion-function.cpp +++ b/clang/test/SemaCXX/conversion-function.cpp @@ -9,7 +9,7 @@ public: } float g() { - return operator float(); // expected-error{{use of undeclared 'operator float'}} + return operator float(); // expected-error{{no matching function for call to 'operator float'}} } }; diff --git a/clang/test/SemaCXX/type-dependent-exprs.cpp b/clang/test/SemaCXX/type-dependent-exprs.cpp index b3bfa8b6018..7c2de699127 100644 --- a/clang/test/SemaCXX/type-dependent-exprs.cpp +++ b/clang/test/SemaCXX/type-dependent-exprs.cpp @@ -19,6 +19,6 @@ T f(T x) { return g(x); h(x); // h is a dependent name g(1, 1); // expected-error{{no matching function for call}} - h(1); // expected-error{{use of undeclared identifier 'h'}} + h(1); // expected-error{{no matching function for call to 'h'}} return 0; } |

