diff options
author | John McCall <rjmccall@apple.com> | 2010-01-13 09:16:55 +0000 |
---|---|---|
committer | John McCall <rjmccall@apple.com> | 2010-01-13 09:16:55 +0000 |
commit | 6a61b5203dc68982f547cff3d6cd068066417703 (patch) | |
tree | 80e38518ad58725c6d5c873b29b7173ad506613b /clang/test/SemaCXX/overload-call.cpp | |
parent | c88db06565fc8d07c81f509e44c20a883b560aef (diff) | |
download | bcm5719-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.cpp | 10 |
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'}} } } + |