This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug c/47781] New: warnings from custom printf format specifiers
- From: "mark-gcc at glines dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Thu, 17 Feb 2011 11:43:02 +0000
- Subject: [Bug c/47781] New: warnings from custom printf format specifiers
- Auto-submitted: auto-generated
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47781
Summary: warnings from custom printf format specifiers
Product: gcc
Version: 4.4.5
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: c
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: mark-gcc@glines.org
Glibc allows a project to define custom printf conversions, via one of two
APIs: register_printf_function, and more recently, register_printf_specifier.
For instance, my project has a custom %v conversion, which takes a pointer to a
vector structure that is heavily used within the project, and pretty-prints it.
The problem is, every time the custom format conversion is used, gcc (which is
invoked with -Wall) generates warnings.
test.c:198: warning: unknown conversion type character âvâ in format
test.c:198: warning: too many arguments for format
I can get rid of the warnings with -Wno-format, but that also disables the rest
of gcc's format string checking (which is very helpful!).
I'd like to request a finer grained means of control. A syntactical element
(builtin/pragma/attribute/whatever) to pre-declare a format conversion and the
typedef to check it against would be very nice, if complex. A much simpler
solution would be a -Wno-format-unknown-specifier option, which skips the
argument in the argument list and otherwise ignores conversions it doesn't
recognize.
Any solution along those lines would be very helpful.