http://gcc.gnu.org/bugzilla/show_bug.cgi?id=24985
--- Comment #32 from Manuel López-Ibáñez <manu at gcc dot gnu.org> 2012-04-12
21:58:59 UTC ---
(In reply to comment #31)
> The effect of this patch on overload resolution diagnostics is problematic:
> wa2.C: In function ‘int main()’:
> wa2.C:6:6: error: no matching function for call to ‘f(int)’
> f(1);
> ^
> wa2.C:6:6: note: candidates are:
> f(1);
> ^
> wa2.C:1:6: note: void f()
> void f();
> ^
> wa2.C:1:6: note: candidate expects 0 arguments, 1 provided
> void f();
> ^
> wa2.C:2:6: note: void f(int, int)
> void f(int,int);
> ^
> wa2.C:2:6: note: candidate expects 2 arguments, 1 provided
> void f(int,int);
> ^
>
> When there are multiple diagnostics at the same input location, we should only
> print the source/caret information once.
True. Actually, in this case, perhaps we should print:
wa2.C:6:6: error: no matching function for call to ‘f(int)’
f(1);
^
note: candidates are:
wa2.C:1:6: note: candidate expects 0 arguments, 1 provided
void f();
^
wa2.C:2:6: note: candidate expects 2 arguments, 1 provided
void f(int,int);
^
no? Any other suggestions?
We could also print the %qD in the same line as:
wa2.C:6:6: error: no matching function for call to ‘f(int)’
f(1);
^
note: candidates are:
wa2.C:1:6: note: candidate 'void f()' expects 0 arguments, 1 provided
void f();
^
wa2.C:2:6: note: candidate 'void f(int, int)' expects 2 arguments, 1
provided
void f(int,int);
^
What do you think?