diff options
author | Jason Merrill <jason@redhat.com> | 2011-06-14 14:16:06 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2011-06-14 14:16:06 -0400 |
commit | 84f32ce3b24cd508e9a4b3b4d716ab7fc293fba1 (patch) | |
tree | 1bec61d23d54c85bd66a6080029c5dcb69f18d45 | |
parent | 0171567edce496309e2a364e563b7cf066923918 (diff) | |
download | gcc-84f32ce3b24cd508e9a4b3b4d716ab7fc293fba1.zip gcc-84f32ce3b24cd508e9a4b3b4d716ab7fc293fba1.tar.gz gcc-84f32ce3b24cd508e9a4b3b4d716ab7fc293fba1.tar.bz2 |
re PR c++/49117 (4.5 -> 4.6: user-unfriendly change in "invalid conversion" error message)
PR c++/49117
* call.c (perform_implicit_conversion_flags): Print source type as
well as expression.
From-SVN: r175044
-rw-r--r-- | gcc/cp/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cp/call.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 3 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/error23.C | 2 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/other/error32.C | 2 |
5 files changed, 11 insertions, 3 deletions
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index 5970440..0fc8eab 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,5 +1,9 @@ 2011-06-14 Jason Merrill <jason@redhat.com> + PR c++/49117 + * call.c (perform_implicit_conversion_flags): Print source type as + well as expression. + PR c++/49389 * typeck2.c (build_m_component_ref): Preserve rvalueness. diff --git a/gcc/cp/call.c b/gcc/cp/call.c index 4ee0eaf..b43d078 100644 --- a/gcc/cp/call.c +++ b/gcc/cp/call.c @@ -8296,7 +8296,8 @@ perform_implicit_conversion_flags (tree type, tree expr, tsubst_flags_t complain else if (invalid_nonstatic_memfn_p (expr, complain)) /* We gave an error. */; else - error ("could not convert %qE to %qT", expr, type); + error ("could not convert %qE from %qT to %qT", expr, + TREE_TYPE (expr), type); } expr = error_mark_node; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1ca37e3..e32f53e 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2011-06-14 Jason Merrill <jason@redhat.com> + * g++.dg/other/error23.C: Adjust error message. + * g++.dg/other/error32.C: Likewise. + PR c++/49389 * g++.dg/cpp0x/rv-dotstar.C: New. diff --git a/gcc/testsuite/g++.dg/other/error23.C b/gcc/testsuite/g++.dg/other/error23.C index 0ff1915..959fe40 100644 --- a/gcc/testsuite/g++.dg/other/error23.C +++ b/gcc/testsuite/g++.dg/other/error23.C @@ -2,4 +2,4 @@ // { dg-do compile } int v __attribute ((vector_size (8))); -bool b = !(v - v); // { dg-error "could not convert .\\(__vector.2. int\\)\\{0, 0\\}. to .bool.|in argument to unary" } +bool b = !(v - v); // { dg-error "could not convert .\\(__vector.2. int\\)\\{0, 0\\}. from .__vector.2. int. to .bool.|in argument to unary" } diff --git a/gcc/testsuite/g++.dg/other/error32.C b/gcc/testsuite/g++.dg/other/error32.C index 35c64c4..56d3b7a 100644 --- a/gcc/testsuite/g++.dg/other/error32.C +++ b/gcc/testsuite/g++.dg/other/error32.C @@ -3,6 +3,6 @@ void foo() { - if (throw 0) // { dg-error "could not convert .\\<throw-expression\\>. to .bool." } + if (throw 0) // { dg-error "could not convert .\\<throw-expression\\>. from .void. to .bool." } ; } |