diff options
author | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-03-15 12:52:29 +0100 |
---|---|---|
committer | Alexis La Goutte <alexis.lagoutte@gmail.com> | 2014-03-31 08:29:58 +0000 |
commit | 280c2958f2a03bdc16b99851230c935cdd65e91b (patch) | |
tree | 73c31b48427c57f0ee8839101f1d8680ba2c80fe | |
parent | 0973a321a9836331cd7863a5c1aad77e2bf8126b (diff) | |
download | wireshark-280c2958f2a03bdc16b99851230c935cdd65e91b.tar.gz |
Add --enable-extra-clang-checks for autotools and CMakeList
With -Wunreachable-code flags (and disable for the moment -Wdocumentation)
Change-Id: I126c962b32e650a63b78092e95896736ae7335c9
Reviewed-on: https://code.wireshark.org/review/678
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
-rw-r--r-- | CMakeLists.txt | 28 | ||||
-rw-r--r-- | CMakeOptions.txt | 1 | ||||
-rw-r--r-- | configure.ac | 20 |
3 files changed, 41 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a2e17697e2..8dd8b084a7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -228,7 +228,7 @@ else() set(WIRESHARK_CPP_ONLY_FLAGS ) - set(WIRESHARK_EXTRA_C_FLAGS + set(WIRESHARK_EXTRA_GCC_C_FLAGS -pedantic -Woverflow -fstrict-overflow -Wstrict-overflow=4 @@ -245,16 +245,26 @@ else() -Wmissing-declarations ) - set(WIRESHARK_EXTRA_C_ONLY_FLAGS + set(WIRESHARK_EXTRA_GCC_C_ONLY_FLAGS # The following are C only, not C++ -Wbad-function-cast # All the registration functions block these for now. -Wmissing-prototypes ) - set(WIRESHARK_EXTRA_CPP_ONLY_FLAGS + set(WIRESHARK_EXTRA_GCC_CPP_ONLY_FLAGS ) + set(WIRESHARK_EXTRA_CLANG_C_FLAGS + -Wunreachable-code + #-Wdocumentation + ) + + set(WIRESHARK_EXTRA_CLANG_C_ONLY_FLAGS + ) + + set(WIRESHARK_EXTRA_CLANG_CPP_ONLY_FLAGS + ) # With clang some tests don't fail properly during testing but only # during real compiles @@ -273,9 +283,15 @@ else() endif() if(ENABLE_EXTRA_GCC_CHECKS) # This overrides -Werror - set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_C_FLAGS}) - set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_C_ONLY_FLAGS}) - set(WIRESHARK_CPP_ONLY_FLAGS ${WIRESHARK_CPP_ONLY_FLAGS} ${WIRESHARK_EXTRA_CPP_ONLY_FLAGS}) + set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_GCC_C_FLAGS}) + set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_GCC_C_ONLY_FLAGS}) + set(WIRESHARK_CPP_ONLY_FLAGS ${WIRESHARK_CPP_ONLY_FLAGS} ${WIRESHARK_EXTRA_GCC_CPP_ONLY_FLAGS}) + endif() + + if(ENABLE_EXTRA_CLANG_CHECKS) # This overrides -Werror + set(WIRESHARK_C_FLAGS ${WIRESHARK_C_FLAGS} ${WIRESHARK_EXTRA_CLANG_C_FLAGS}) + set(WIRESHARK_C_ONLY_FLAGS ${WIRESHARK_C_ONLY_FLAGS} ${WIRESHARK_EXTRA_CLANG_C_ONLY_FLAGS}) + set(WIRESHARK_CPP_ONLY_FLAGS ${WIRESHARK_CPP_ONLY_FLAGS} ${WIRESHARK_EXTRA_CLANG_CPP_ONLY_FLAGS}) endif() add_definitions( diff --git a/CMakeOptions.txt b/CMakeOptions.txt index dad0217b71..26fd117957 100644 --- a/CMakeOptions.txt +++ b/CMakeOptions.txt @@ -20,6 +20,7 @@ option(AUTOGEN_pidl "Autogenerate pidl dissectors" OFF) option(DISABLE_WERROR "Do not treat Warnings as errors" OFF) option(ENABLE_EXTRA_GCC_CHECKS "Do additional -W checks in GCC (disables -Werror)" OFF) +option(ENABLE_EXTRA_CLANG_CHECKS "Do additional -W checks in Clang (disables -Werror)" OFF) option(ENABLE_GTK3 "Use GTK3 instead of GTK2 to build wireshark" ON) option(ENABLE_QT5 "Use Qt5 instead of Qt4 to build qtshark" ON) option(ENABLE_PCAP "Enable libpcap support (required for capturing)" ON) diff --git a/configure.ac b/configure.ac index 7d06f77919..c4a332c3a3 100644 --- a/configure.ac +++ b/configure.ac @@ -772,7 +772,7 @@ AC_ARG_ENABLE(extra-gcc-checks, AC_HELP_STRING( [--enable-extra-gcc-checks], [do additional -W checks in GCC @<:@default=no@:>@]), [ - wireshark_extra_gcc_flags=$enableval + wireshark_extra_flags=$enableval if test $enableval != no then AC_WIRESHARK_COMPILER_FLAGS_CHECK(-pedantic) @@ -811,6 +811,22 @@ AC_ARG_ENABLE(extra-gcc-checks, AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wcast-align) fi ],) + +# +# Try to add some additional clang checks to CFLAGS +# +AC_ARG_ENABLE(extra-clang-checks, + AC_HELP_STRING( [--enable-extra-clang-checks], + [do additional -W checks in Clang @<:@default=no@:>@]), +[ + wireshark_extra_flags=$enableval + if test $enableval != no + then + AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wunreachable-code) + #AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdocumentation) + fi +],) + AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wall -W) # -W is now known as -Wextra AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wextra) # -W is now known as -Wextra AC_WIRESHARK_COMPILER_FLAGS_CHECK(-Wdeclaration-after-statement, C) @@ -999,7 +1015,7 @@ AC_ARG_ENABLE(warnings-as-errors, fi ], [ - if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_gcc_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then + if test "x$ac_supports_gcc_flags" = "xyes" -a "x$wireshark_extra_flags" = "x" -a "x$warnings_as_errors_default" = "xyes"; then with_warnings_as_errors="yes" AC_MSG_RESULT(yes) else |