CLANG reports an error with %b in printf(9)

Dimitry Andric dim at FreeBSD.org
Tue Oct 1 19:41:57 UTC 2013


On Oct 1, 2013, at 21:30, Luigi Rizzo <rizzo at iet.unipi.it> wrote:
> This is on HEAD -- while compiling the kernel with CLANG and slightly
> higher warns level, i get errors of this kind (in multiple places):
> 
> /usr/home/luigi/FreeBSD/head/sys/cam/cam_xpt.c:1069:27: error: invalid conversion specifier
>      'b' [-Werror,-Wformat-invalid-specifier]
>                printf("%s%d: quirks=0x%b\n", periph->periph_name,
>                                       ~^
> /usr/home/luigi/FreeBSD/head/sys/cam/cam_xpt.c:1070:36: error: data argument not used by
>      format string [-Werror,-Wformat-extra-args]
>                    periph->unit_number, quirks, bit_string);
> 
> Does anyone know how hard it is to either disable the warning locally
> (for a statement, function or file), or better to teach CLANG that
> printf(9) uses two arguments for %b ?

Hi Luigi,

It looks like you are overriding CWARNFLAGS?  If you are using clang
from base, you can add -fformat-extensions, which has support for our
non-standard %b and %D specifiers.  For clang from ports, there is no
solution except -Wno-format.  See also the start of sys/conf/kern.mk.

-Dimitry

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 203 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.freebsd.org/pipermail/freebsd-current/attachments/20131001/626cccfa/attachment.sig>


More information about the freebsd-current mailing list