On Mon, 9 Sep 2013, Paolo Carlini wrote: > 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?
How is '+' in %q+D defined? I failed to find documentation of the diagnostic formats (but only searched for like two minutes). Richard.