On Thu, Aug 27, 2020 at 03:59:04PM +0100, Peter Maydell wrote: > On Thu, 27 Aug 2020 at 15:29, Stefan Hajnoczi <stefa...@redhat.com> wrote: > > > > The compiler encounters trace event format strings in generated code. > > Format strings are error-prone and therefore clear compiler errors are > > important. > > > > Use the #line directive to show the trace-events filename and line > > number in format string errors: > > https://gcc.gnu.org/onlinedocs/gcc-10.2.0/cpp/Line-Control.html > > > > For example, if the cpu_in trace event's %u is changed to %p the > > following error is reported: > > > > trace-events:29:18: error: format ‘%p’ expects argument of type ‘void *’, > > but argument 7 has type ‘unsigned int’ [-Werror=format=] > > > > Line 29 in trace-events is where cpu_in is defined. This works for any > > trace-events file in the QEMU source tree and the correct path is > > displayed. > > > > Unfortunately there does not seem to be a way to set the column, so "18" > > is not the right character on that line. > > It's been pointed out to me that you could do this by > making the generated code have suitable line breaks, padding, > etc, so that the format string in the output ends up starting in > the same column it was in the input trace file. Whether this is > worthwhile I leave up to you :-) > > (The argument number (7 in your example) is also of course off, > and that I think we're also stuck with. Getting the file and line > number right is a solid improvement on the current situation.)
Thanks for mentioning that trick. I will leave the patch series as-is for now. Stefan
signature.asc
Description: PGP signature