https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85110
--- Comment #7 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Author: dmalcolm Date: Wed Aug 29 13:52:22 2018 New Revision: 263957 URL: https://gcc.gnu.org/viewcvs?rev=263957&root=gcc&view=rev Log: C++: underline param in print_conversion_rejection (more PR c++/85110) Consider this bogus code (from g++.dg/diagnostic/param-type-mismatch-2.C): struct s4 { static int member_1 (int one, const char **two, float three); }; int test_4 (int first, const char *second, float third) { return s4::member_1 (first, second, third); } Before this patch, g++ emits: demo.cc: In function 'int test_4(int, const char*, float)': demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const char*&, float&)' 5 | return s4::member_1 (first, second, third); | ^ demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**, float)' 1 | struct s4 { static int member_1 (int one, const char **two, float three); }; | ^~~~~~~~ demo.cc:1:24: note: no known conversion for argument 2 from 'const char*' to 'const char**' With this patch, it highlights the pertinent parameter in the "no known conversion" note: demo.cc: In function 'int test_4(int, const char*, float)': demo.cc:5:44: error: no matching function for call to 's4::member_1(int&, const char*&, float&)' 5 | return s4::member_1 (first, second, third); | ^ demo.cc:1:24: note: candidate: 'static int s4::member_1(int, const char**, float)' 1 | struct s4 { static int member_1 (int one, const char **two, float three); }; | ^~~~~~~~ demo.cc:1:56: note: no known conversion for argument 2 from 'const char*' to 'const char**' 1 | struct s4 { static int member_1 (int one, const char **two, float three); }; | ~~~~~~~~~~~~~^~~ gcc/cp/ChangeLog: PR c++/85110 * call.c (print_conversion_rejection): Add "fn" param and use it for "no known conversion" messages to underline the pertinent param. (print_z_candidate): Supply "fn" to the new param above. gcc/testsuite/ChangeLog: PR c++/85110 * g++.dg/diagnostic/param-type-mismatch-2.C: Update expected output to reflect underlining of pertinent parameter in decl for "no known conversion" messages. Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/call.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/g++.dg/diagnostic/param-type-mismatch-2.C