build: disable warnings where macros expand to tautological comparisons

This commit is contained in:
Lubomir Rintel 2015-03-18 18:09:08 +01:00
parent a43f95b0ac
commit 3ccc6f290d
4 changed files with 7 additions and 1 deletions

View file

@ -29,7 +29,7 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
-fno-strict-aliasing -Wno-unused-but-set-variable \
-Wundef -Wimplicit-function-declaration \
-Wpointer-arith -Winit-self \
-Wmissing-include-dirs; do
-Wmissing-include-dirs -Wno-pragmas; do
dnl GCC 4.4 does not warn when checking for -Wno-* flags (https://gcc.gnu.org/wiki/FAQ#wnowarning)
CFLAGS="$CFLAGS_MORE_WARNINGS $CFLAGS_EXTRA $(printf '%s' "$option" | sed 's/^-Wno-/-W/') $CFLAGS_SAVED"
AC_MSG_CHECKING([whether gcc understands $option])

View file

@ -116,11 +116,13 @@ typedef enum { /*< skip >*/
/* log a message for an object (with providing a generic @self pointer) */
#define nm_log_ptr(level, domain, self, ...) \
G_STMT_START { \
NM_PRAGMA_WARNING_DISABLE("-Wtautological-compare") \
if ((level) <= LOGL_DEBUG) { \
_nm_log_ptr ((level), (domain), (self), __VA_ARGS__); \
} else { \
nm_log ((level), (domain), __VA_ARGS__); \
} \
NM_PRAGMA_WARNING_REENABLE \
} G_STMT_END

View file

@ -257,6 +257,7 @@ main (int argc, char **argv)
nmtst_init_with_logging (&argc, &argv, NULL, "ALL");
NM_PRAGMA_WARNING_DISABLE("-Wtautological-compare")
if (SETUP == nm_linux_platform_setup && getuid() != 0) {
/* Try to exec as sudo, this function does not return, if a sudo-cmd is set. */
nmtst_reexec_sudo ();
@ -269,6 +270,7 @@ main (int argc, char **argv)
return 77;
#endif
}
NM_PRAGMA_WARNING_REENABLE
SETUP ();

View file

@ -365,12 +365,14 @@ test_bridge (void)
static void
test_bond (void)
{
NM_PRAGMA_WARNING_DISABLE("-Wtautological-compare")
if (SETUP == nm_linux_platform_setup &&
!g_file_test ("/proc/1/net/bonding", G_FILE_TEST_IS_DIR) &&
system("modprobe --show bonding") != 0) {
g_test_skip ("Skipping test for bonding: bonding module not available");
return;
}
NM_PRAGMA_WARNING_REENABLE
test_software (NM_LINK_TYPE_BOND, "bond");
}