]> git.ipfire.org Git - thirdparty/libvirt.git/commit
build: avoid warnings from gcc 4.2.1
authorEric Blake <eblake@redhat.com>
Wed, 5 Sep 2012 17:40:31 +0000 (11:40 -0600)
committerEric Blake <eblake@redhat.com>
Wed, 5 Sep 2012 18:05:55 +0000 (12:05 -0600)
commitc579d6b3d627dc01c448b6de4d9a88b0be90ffae
treec8b0af5b8cb5ec8ad626cbf5a69c9c19341e2928
parent9f86fb932654d2e89db302fbd0f36288daed2cda
build: avoid warnings from gcc 4.2.1

OpenBSD ships with gcc 4.2.1, which annoyingly treats all format
strings as though they were also attribute((nonnull)).  The two
concepts are orthogonal, though, as evidenced by the number of
spurious warnings it generates on uses where we know that
virReportError specifically handles NULL instead of a format
string; worse, since we now force -Werror on git builds, it
prevents development builds on OpenBSD.

I hate to do this, as it disables ALL format checking on older
gcc, and therefore misses out on some useful checks (code that
happened to compile on Linux may still have type mismatches
when compiled on other platforms, as evidenced by the number
of times I have fixed formatting mismatches for uid_t as found
by warnings on Cygwin), but I don't see any other way to keep
-Werror alive and still compile on OpenBSD.

A more invasive change would be to make virReportError() mark
its format attribute as nonnull, and fix (a lot of) fallout;
we may end up doing that anyways as part of danpb's error
refactoring improvements, but not today.

* src/internal.h (ATTRIBUTE_FMT_PRINTF): Use preferred spellings.
* m4/virt-compile-warnings.m4 (-Wformat): Disable on older gcc.
m4/virt-compile-warnings.m4
src/internal.h