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: unassig...@gcc.gnu.org
        ReportedBy: mark-...@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.

Reply via email to