Hi Richard,
On 09/09/2013 09:46 AM, Richard Biener wrote:
On Sun, 8 Sep 2013, Paolo Carlini wrote:
Hi,
this patchlet fixes the column # of the unused parameter warnings emitted by
do_warn_unused_parameter by explicitly passing DECL_SOURCE_LOCATION (decl)
instead of wrongly relying on '+', which in this case ends up meaning the
location of the function declaration. Tested x86_64-linux.
I would have expected %q+D to use the location of the corresponding
decl, not some random other location. So, isn't the bug in the
C++ frontend diagnostic machinery?
Well, first notice that the patch fixes the issue *both* for the C and
C++ front-ends, that's why I added the testcase to c-c++-common. This
isn't a C++ issue. Then notice that we do already have tens of cases
where we use DECL_SOURCE_LOCATION + %qD, when we want to be precise
about the location. The diagnostic machinery has this mechanism using +
which uses location_of, which is often useful for expressions, but which
very often we don't use for decls. In fact, some people, like Manuel,
see the audit trail of the bug, find the mechanism quite confusing. Is
there something specific you want me to check?
Thanks,
Paolo.