On Wed, May 9, 2012 at 11:02 PM, Manuel López-Ibáñez
<lopeziba...@gmail.com> wrote:
> Simple enough. Bootstrapped and regression tested.
>
> The output for the example in the PR is now:
>
> /home/manuel/caret-overload.C:6:6: error: no matching function for
> call to ‘g(int)’
>   g(1);
>      ^
> /home/manuel/caret-overload.C:6:6: note: candidate is:
> /home/manuel/caret-overload.C:2:18: note: template<class T> typename
> T::type g(T)
>  typename T::type g(T);
>                  ^

Does it make sense to print a caret here?  We are dumping a function
decl(?), thus already constraining what we print to exactly what is
important.  So - maybe simply never emit a caret for %D locations?

> /home/manuel/caret-overload.C:2:18: note:   template argument
> deduction/substitution failed:
> /home/manuel/caret-overload.C: In substitution of ‘template<class T>
> typename T::type g(T) [with T = int]’:
> /home/manuel/caret-overload.C:6:6:   required from here
> /home/manuel/caret-overload.C:2:18: error: ‘int’ is not a class,
> struct, or union type
>
> OK?
>
> 2012-05-09  Manuel López-Ibáñez  <m...@gcc.gnu.org>
>
>        PR c++/53289
> gcc/
>        * diagnostic.h (diagnostic_context): Add last_location.
>        * diagnostic.c (diagnostic_initialize): Initialize it.
>        (diagnostic_show_locus): Use it.

Reply via email to