It was a common pattern to have "GCC diagnostic ignored" pragmas sprinkled over the code and only activate these pragmas for certain compilers (gcc and clang). Clang supports GCCΓÇÖs pragma for compatibility with existing source code, so #pragma GCC diagnostic and #pragma clang diagnostic are synonyms for Clang (https://clang.llvm.org/docs/UsersManual.html).
Now that effort is being made to make the code compatible with MSVC these expressions would become more complex. It makes sense to hide this complexity behind macros. This makes maintenance easier as these macros are defined in a single place. As a plus the code becomes more readable as well. Andre Muezerie (3): lib/eal: add diagnostics macros to make code portable drivers/common: add diagnostics macros to make code portable drivers/net: add diagnostics macros to make code portable drivers/common/idpf/idpf_common_rxtx_avx512.c | 4 +-- drivers/net/axgbe/axgbe_rxtx.h | 12 +++---- drivers/net/cpfl/cpfl_rxtx_vec_common.h | 4 +-- drivers/net/dpaa2/dpaa2_rxtx.c | 15 ++------ drivers/net/fm10k/fm10k_rxtx_vec.c | 4 +-- drivers/net/hns3/hns3_rxtx_vec_neon.h | 2 +- .../net/i40e/i40e_recycle_mbufs_vec_common.c | 2 +- drivers/net/i40e/i40e_rxtx_common_avx.h | 4 +-- drivers/net/i40e/i40e_rxtx_vec_altivec.c | 2 +- drivers/net/i40e/i40e_rxtx_vec_avx2.c | 4 +-- drivers/net/i40e/i40e_rxtx_vec_avx512.c | 4 +-- drivers/net/i40e/i40e_rxtx_vec_common.h | 4 +-- drivers/net/i40e/i40e_rxtx_vec_neon.c | 3 +- drivers/net/i40e/i40e_rxtx_vec_sse.c | 4 +-- drivers/net/iavf/iavf_rxtx_vec_avx2.c | 4 +-- drivers/net/iavf/iavf_rxtx_vec_avx512.c | 4 +-- drivers/net/iavf/iavf_rxtx_vec_common.h | 4 +-- drivers/net/iavf/iavf_rxtx_vec_sse.c | 4 +-- drivers/net/ice/ice_rxtx_common_avx.h | 4 +-- drivers/net/ice/ice_rxtx_vec_avx2.c | 4 +-- drivers/net/ice/ice_rxtx_vec_avx512.c | 4 +-- drivers/net/ice/ice_rxtx_vec_common.h | 4 +-- drivers/net/ice/ice_rxtx_vec_sse.c | 4 +-- drivers/net/idpf/idpf_rxtx_vec_common.h | 4 +-- .../ixgbe/ixgbe_recycle_mbufs_vec_common.c | 2 +- drivers/net/ixgbe/ixgbe_rxtx_vec_neon.c | 2 +- drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 4 +-- drivers/net/mlx5/mlx5_flow.c | 6 ++-- drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 6 ++-- drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 2 +- drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 4 +-- drivers/net/tap/tap_flow.c | 6 ++-- drivers/net/virtio/virtio_rxtx_simple.c | 4 +-- lib/eal/include/rte_common.h | 34 +++++++++++++++++++ 34 files changed, 77 insertions(+), 101 deletions(-) -- 2.47.0.vfs.0.3