diff options
author | Kaelyn Uhrain <rikka@google.com> | 2012-06-19 00:37:47 +0000 |
---|---|---|
committer | Kaelyn Uhrain <rikka@google.com> | 2012-06-19 00:37:47 +0000 |
commit | 0d3317e0a2e0adb57ce8d075ebdcb41a3f939805 (patch) | |
tree | 2d666777b153f960802924874b142c2d93fc33ee /test/Misc/integer-literal-printing.cpp | |
parent | 3065cf9ecc883715edbd3bf875acb2cab531138e (diff) |
Improve the error message when a function overload candidate is rejected
because it expects a reference and receives a non-l-value.
For example, given:
int foo(int &);
template<int x> void b() { foo(x); }
clang will now print "expects an l-value for 1st argument" instead of
"no known conversion from 'int' to 'int &' for 1st argument". The change
in wording (and associated code to detect the case) was prompted by
comment #5 in PR3104, and should be the last bit of work needed for the
bug.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158691 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Misc/integer-literal-printing.cpp')
-rw-r--r-- | test/Misc/integer-literal-printing.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/test/Misc/integer-literal-printing.cpp b/test/Misc/integer-literal-printing.cpp index d751730d95..4085d606d2 100644 --- a/test/Misc/integer-literal-printing.cpp +++ b/test/Misc/integer-literal-printing.cpp @@ -2,10 +2,10 @@ // PR11179 template <short T> class Type1 {}; -template <short T> void Function1(Type1<T>& x) {} // expected-note{{candidate function [with T = -42] not viable: no known conversion from 'Type1<-42>' to 'Type1<-42> &' for 1st argument;}} +template <short T> void Function1(Type1<T>& x) {} // expected-note{{candidate function [with T = -42] not viable: expects an l-value for 1st argument}} template <unsigned short T> class Type2 {}; -template <unsigned short T> void Function2(Type2<T>& x) {} // expected-note{{candidate function [with T = 42] not viable: no known conversion from 'Type2<42>' to 'Type2<42> &' for 1st argument;}} +template <unsigned short T> void Function2(Type2<T>& x) {} // expected-note{{candidate function [with T = 42] not viable: expects an l-value for 1st argument}} void Function() { Function1(Type1<-42>()); // expected-error{{no matching function for call to 'Function1'}} |