call.c (convert_like_real): Call print_z_candidate and inform only if permerror returns true.

2014-07-15  Paolo Carlini  <paolo.carlini@oracle.com>

	* call.c (convert_like_real): Call print_z_candidate and inform only
	if permerror returns true.

From-SVN: r212560
This commit is contained in:
Paolo Carlini 2014-07-15 13:41:58 +00:00 committed by Paolo Carlini
parent 78d22941b3
commit 603a0084b1
2 changed files with 11 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2014-07-15 Paolo Carlini <paolo.carlini@oracle.com>
* call.c (convert_like_real): Call print_z_candidate and inform only
if permerror returns true.
2014-07-14 Jan Hubicka <hubicka@ucw.cz>
* class.c (build_clone): Do not clear assembler names of

View File

@ -6076,9 +6076,11 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
{
if (t->kind == ck_user && t->cand->reason)
{
permerror (loc, "invalid user-defined conversion "
"from %qT to %qT", TREE_TYPE (expr), totype);
print_z_candidate (loc, "candidate is:", t->cand);
complained = permerror (loc, "invalid user-defined conversion "
"from %qT to %qT", TREE_TYPE (expr),
totype);
if (complained)
print_z_candidate (loc, "candidate is:", t->cand);
expr = convert_like_real (t, expr, fn, argnum, 1,
/*issue_conversion_warnings=*/false,
/*c_cast_p=*/false,
@ -6089,7 +6091,7 @@ convert_like_real (conversion *convs, tree expr, tree fn, int argnum,
complain);
else
expr = cp_convert (totype, expr, complain);
if (fn)
if (complained && fn)
inform (DECL_SOURCE_LOCATION (fn),
" initializing argument %P of %qD", argnum, fn);
return expr;