• E
    build: avoid warnings from gcc 4.2.1 · c579d6b3
    Eric Blake 提交于
    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.
    c579d6b3
internal.h 12.9 KB