From 7398d8f68f3f8293d46ac2c730399c793b2b348e Mon Sep 17 00:00:00 2001 From: "Markus F.X.J. Oberhumer" Date: Tue, 27 Sep 2022 18:07:10 +0200 Subject: [PATCH] src: enable -Wsuggest-override in src/conf.h --- src/Makefile | 4 ---- src/compress_lzma.cpp | 5 ++++- src/conf.h | 12 +++++++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4b3e1acc..385c9fcd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -116,10 +116,6 @@ mf.CXXFLAGS += -funsigned-char mf.CXXFLAGS += -fno-tree-vectorize mf.CXXFLAGS += $(CXXFLAGS_SANITIZE) mf.CXXFLAGS += -Wall -Wextra -Wcast-align -Wcast-qual -Wmissing-declarations -Wpointer-arith -Wshadow -Wvla -Wwrite-strings - -# clang-10 requires 'override'. gcc-12 does not, but "g++ -Wsuggest-override" tells you where -##mf.CXXFLAGS += -Wsuggest-override - mf.CXXFLAGS += $(CXXFLAGS_WERROR) # rules diff --git a/src/compress_lzma.cpp b/src/compress_lzma.cpp index 1a1f5f7e..cf017c6d 100644 --- a/src/compress_lzma.cpp +++ b/src/compress_lzma.cpp @@ -33,10 +33,13 @@ #if (ACC_CC_CLANG) # pragma clang diagnostic ignored "-Wshadow" #endif +#if (ACC_CC_CLANG >= 0x0b0000) +# pragma clang diagnostic ignored "-Wsuggest-override" +#endif #if (ACC_CC_GNUC >= 0x040200) # pragma GCC diagnostic ignored "-Wshadow" #endif -#if (ACC_CC_GNUC >= 0x050100) +#if (ACC_CC_GNUC >= 0x0a0000) # pragma GCC diagnostic ignored "-Wsuggest-override" #endif #if (ACC_CC_MSC) diff --git a/src/conf.h b/src/conf.h index a3a1952e..1adde8fe 100644 --- a/src/conf.h +++ b/src/conf.h @@ -83,14 +83,20 @@ ACC_COMPILE_TIME_ASSERT_HEADER(CHAR_MAX == 255) // -funsigned-char ACC_COMPILE_TIME_ASSERT_HEADER((char)(-1) == 255) // -funsigned-char // enable/disable some warnings +#if (ACC_CC_CLANG >= 0x0b0000) +# pragma clang diagnostic error "-Wsuggest-override" +#elif (ACC_CC_GNUC >= 0x0a0000) + // don't enable before gcc-10 because of gcc bug #78010 +# pragma GCC diagnostic error "-Wsuggest-override" +#endif // Some non-GLIBC toolchains do not use 'nullptr' everywhere when C++: // openwrt-sdk-x86-64_gcc-11.2.0_musl.Linux-x86_64/staging_dir/ // toolchain-x86_64_gcc-11.2.0_musl/include/fortify/stdlib.h: // 51:32: error: zero as null pointer constant -#if (ACC_CC_GNUC >= 0x040700) && defined(__GLIBC__) -# pragma GCC diagnostic error "-Wzero-as-null-pointer-constant" -#elif (ACC_CC_CLANG >= 0x050000ul) +#if (ACC_CC_CLANG >= 0x050000) # pragma clang diagnostic error "-Wzero-as-null-pointer-constant" +#elif (ACC_CC_GNUC >= 0x040700) && defined(__GLIBC__) +# pragma GCC diagnostic error "-Wzero-as-null-pointer-constant" #endif #if (ACC_CC_MSC)