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.