summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/overload-call.cpp
diff options
context:
space:
mode:
authorJohn McCall <rjmccall@apple.com>2010-01-13 09:16:55 +0000
committerJohn McCall <rjmccall@apple.com>2010-01-13 09:16:55 +0000
commit6a61b5203dc68982f547cff3d6cd068066417703 (patch)
tree80e38518ad58725c6d5c873b29b7173ad506613b /clang/test/SemaCXX/overload-call.cpp
parentc88db06565fc8d07c81f509e44c20a883b560aef (diff)
downloadbcm5719-llvm-6a61b5203dc68982f547cff3d6cd068066417703.tar.gz
bcm5719-llvm-6a61b5203dc68982f547cff3d6cd068066417703.zip
Record some basic information about bad conversion sequences. Use that
information to feed diagnostics instead of regenerating it. Much room for improvement here, but fixes some unfortunate problems reporting on method calls. llvm-svn: 93316
Diffstat (limited to 'clang/test/SemaCXX/overload-call.cpp')
-rw-r--r--clang/test/SemaCXX/overload-call.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/clang/test/SemaCXX/overload-call.cpp b/clang/test/SemaCXX/overload-call.cpp
index fbd26b2fd83..0a2508d4b80 100644
--- a/clang/test/SemaCXX/overload-call.cpp
+++ b/clang/test/SemaCXX/overload-call.cpp
@@ -304,10 +304,16 @@ namespace PR5756 {
// Tests the exact text used to note the candidates
namespace test1 {
- template <class T> void foo(T t, unsigned N); // expected-note {{candidate function [with T = int]}}
- void foo(int n, char N); // expected-note {{candidate function}}
+ template <class T> void foo(T t, unsigned N); // expected-note {{candidate function [with T = int] not viable: no known conversion from 'char const [6]' to 'unsigned int' for argument 2}}
+ void foo(int n, char N); // expected-note {{candidate function not viable: no known conversion from 'char const [6]' to 'char' for argument 2}}
+ void foo(int n); // expected-note {{candidate function not viable: requires 1 argument, but 2 were provided}}
+ void foo(unsigned n = 10); // expected-note {{candidate function not viable: requires at most 1 argument, but 2 were provided}}
+ void foo(int n, const char *s, int t); // expected-note {{candidate function not viable: requires 3 arguments, but 2 were provided}}
+ void foo(int n, const char *s, int t, ...); // expected-note {{candidate function not viable: requires at least 3 arguments, but 2 were provided}}
+ void foo(int n, const char *s, int t, int u = 0); // expected-note {{candidate function not viable: requires at least 3 arguments, but 2 were provided}}
void test() {
foo(4, "hello"); //expected-error {{no matching function for call to 'foo'}}
}
}
+
OpenPOWER on IntegriCloud