This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: -Wformat
On Fri, 01 Aug 2003 12:07:26 -0400, Andrew Cagney <ac131313@redhat.com> said:
>> I just downloaded mainline GDB for the first time in far too long, and
>> the recent -Wformat-nonliteral change breaks -Werror for me (compiling
>> with GCC 3.2.3). I'll include the stderr output of 'make -k' from
>> within gdb/ after my signature; I haven't investigated them
>> thoroughly, but what I've look at makes me think that
>> -Wformat-nonliteral isn't a good idea.
> `works for me'. I tested it with:
> gcc version 2.95.3 20010315 (release) (NetBSD nb3)
> gcc version 2.96 20000731 (Red Hat Linux 7.2 2.96-112.7.2)
Actually, I lied slightly: I used GCC 3.2 Red Hat. But I would assume
that any recent GCC would show this; the warnings are legitimate.
> Looking at the first problem:
> breakpoint.c: In function `insert_breakpoints':
> breakpoint.c:916: warning: format not a string literal, argument types
> not checked
> it revealed this little `gem':
> static char message1[] = "Error inserting catchpoint %d:\n";
> static char message[sizeof (message1) + 30];
> ...
> sprintf (message, message1, b->number);
Yup. And further down in the log, you'll run into stuff like
fprintf_filtered (stream, local_octal_format_prefix ());
which could easily be fixed by using fputs_filtered.
> While getting the option working with a current GCC could mean more
> work, I'm not convinced that it's a bad idea.
You're right: I was too pessimistic. I just want the
-Wformat-nonliteral patch reverted in the meantime. :-) (Actually, if
you want to fix the warnings in question quickly, that's fine with me
too: I can easily revert it on my local tree.)
David Carlton
carlton@kealia.com