diff options
author | Lennart Poettering <lennart@poettering.net> | 2025-01-16 16:01:56 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2025-01-16 20:08:58 +0100 |
commit | 1d5f0a88e0dac70cf6f99ccee2fac8eb33c1a7cf (patch) | |
tree | 22100ba9b942d4d6c9569395002f890221ff6fba | |
parent | test: add link to Ubuntu autopkgtest status page in README (diff) | |
download | systemd-1d5f0a88e0dac70cf6f99ccee2fac8eb33c1a7cf.tar.xz systemd-1d5f0a88e0dac70cf6f99ccee2fac8eb33c1a7cf.zip |
fundamental: unify gcc warning pragmas at one place
This also drops HAVE_WSTRINGOP_TRUNCATION as the corresponding option
was introduced in GCC 8, and our baseline is GCC 8.4.
-rw-r--r-- | meson.build | 3 | ||||
-rw-r--r-- | src/basic/macro.h | 9 | ||||
-rw-r--r-- | src/fundamental/macro-fundamental.h | 8 | ||||
-rw-r--r-- | src/resolve/resolved-dns-dnssec.c | 15 | ||||
-rw-r--r-- | src/shared/ethtool-util.c | 8 |
5 files changed, 17 insertions, 26 deletions
diff --git a/meson.build b/meson.build index 5c364e1379..f9f400a7d6 100644 --- a/meson.build +++ b/meson.build @@ -538,14 +538,11 @@ endif cpp = ' '.join(cc.cmd_array() + get_option('c_args')) + ' -E' -has_wstringop_truncation = cc.has_argument('-Wstringop-truncation') - ##################################################################### # compilation result tests conf.set('_GNU_SOURCE', 1) conf.set('__SANE_USERSPACE_TYPES__', true) -conf.set10('HAVE_WSTRINGOP_TRUNCATION', has_wstringop_truncation) conf.set('SIZEOF_DEV_T', cc.sizeof('dev_t', prefix : '#include <sys/types.h>')) conf.set('SIZEOF_INO_T', cc.sizeof('ino_t', prefix : '#include <sys/types.h>')) diff --git a/src/basic/macro.h b/src/basic/macro.h index 68eb7bbd0e..026ec13637 100644 --- a/src/basic/macro.h +++ b/src/basic/macro.h @@ -30,15 +30,6 @@ #define _function_no_sanitize_float_cast_overflow_ #endif -#if HAVE_WSTRINGOP_TRUNCATION -# define DISABLE_WARNING_STRINGOP_TRUNCATION \ - _Pragma("GCC diagnostic push"); \ - _Pragma("GCC diagnostic ignored \"-Wstringop-truncation\"") -#else -# define DISABLE_WARNING_STRINGOP_TRUNCATION \ - _Pragma("GCC diagnostic push") -#endif - /* test harness */ #define EXIT_TEST_SKIP 77 diff --git a/src/fundamental/macro-fundamental.h b/src/fundamental/macro-fundamental.h index 709657dd28..6122a0a92b 100644 --- a/src/fundamental/macro-fundamental.h +++ b/src/fundamental/macro-fundamental.h @@ -48,6 +48,14 @@ _Pragma("GCC diagnostic push"); \ _Pragma("GCC diagnostic ignored \"-Waddress\"") +#define DISABLE_WARNING_STRINGOP_TRUNCATION \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wstringop-truncation\"") + +#define DISABLE_WARNING_ZERO_LENGTH_BOUNDS \ + _Pragma("GCC diagnostic push"); \ + _Pragma("GCC diagnostic ignored \"-Wzero-length-bounds\"") + #define REENABLE_WARNING \ _Pragma("GCC diagnostic pop") diff --git a/src/resolve/resolved-dns-dnssec.c b/src/resolve/resolved-dns-dnssec.c index 09cc2cb731..aff185a2dd 100644 --- a/src/resolve/resolved-dns-dnssec.c +++ b/src/resolve/resolved-dns-dnssec.c @@ -15,11 +15,10 @@ #include "string-table.h" #if PREFER_OPENSSL && OPENSSL_VERSION_MAJOR >= 3 -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" +DISABLE_WARNING_DEPRECATED_DECLARATIONS; DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(RSA*, RSA_free, NULL); DEFINE_TRIVIAL_CLEANUP_FUNC_FULL(EC_KEY*, EC_KEY_free, NULL); -# pragma GCC diagnostic pop +REENABLE_WARNING; #endif #define VERIFY_RRS_MAX 256 @@ -101,8 +100,7 @@ static int dnssec_rsa_verify_raw( int r; #if PREFER_OPENSSL -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" + DISABLE_WARNING_DEPRECATED_DECLARATIONS; _cleanup_(RSA_freep) RSA *rpubkey = NULL; _cleanup_(EVP_PKEY_freep) EVP_PKEY *epubkey = NULL; _cleanup_(EVP_PKEY_CTX_freep) EVP_PKEY_CTX *ctx = NULL; @@ -153,7 +151,7 @@ static int dnssec_rsa_verify_raw( return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Signature verification failed: 0x%lx", ERR_get_error()); -# pragma GCC diagnostic pop + REENABLE_WARNING; #else gcry_sexp_t public_key_sexp = NULL, data_sexp = NULL, signature_sexp = NULL; gcry_mpi_t n = NULL, e = NULL, s = NULL; @@ -303,8 +301,7 @@ static int dnssec_ecdsa_verify_raw( int k; #if PREFER_OPENSSL -# pragma GCC diagnostic push -# pragma GCC diagnostic ignored "-Wdeprecated-declarations" + DISABLE_WARNING_DEPRECATED_DECLARATIONS; _cleanup_(EC_GROUP_freep) EC_GROUP *ec_group = NULL; _cleanup_(EC_POINT_freep) EC_POINT *p = NULL; _cleanup_(EC_KEY_freep) EC_KEY *eckey = NULL; @@ -365,7 +362,7 @@ static int dnssec_ecdsa_verify_raw( return log_debug_errno(SYNTHETIC_ERRNO(EIO), "Signature verification failed: 0x%lx", ERR_get_error()); -# pragma GCC diagnostic pop + REENABLE_WARNING; #else gcry_sexp_t public_key_sexp = NULL, data_sexp = NULL, signature_sexp = NULL; gcry_mpi_t q = NULL, r = NULL, s = NULL; diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c index 51c75780cd..aeed917a6a 100644 --- a/src/shared/ethtool-util.c +++ b/src/shared/ethtool-util.c @@ -11,6 +11,7 @@ #include "extract-word.h" #include "fd-util.h" #include "log.h" +#include "macro-fundamental.h" #include "memory-util.h" #include "socket-util.h" #include "string-table.h" @@ -452,12 +453,9 @@ static int get_stringset(int ethtool_fd, const char *ifname, enum ethtool_string if (buffer.info.sset_mask == 0) return -EOPNOTSUPP; -#pragma GCC diagnostic push -#if HAVE_ZERO_LENGTH_BOUNDS -# pragma GCC diagnostic ignored "-Wzero-length-bounds" -#endif + DISABLE_WARNING_ZERO_LENGTH_BOUNDS; len = buffer.info.data[0]; -#pragma GCC diagnostic pop + REENABLE_WARNING; if (len == 0) return -EOPNOTSUPP; |