mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-06-28 16:41:01 +03:00
WIP: only keep the absolutely necessary warning exceptions
This commit is contained in:
parent
6b9068db0f
commit
73f70e3d2e
@ -1,22 +1,19 @@
|
|||||||
# set compiler flags - more are tested and added later
|
# set compiler flags - more are tested and added later
|
||||||
set(EXTRA_C_FLAGS "${OPT_C_FLAG} -std=c17 -Wall -Wextra -Wshadow -Wcast-qual -fno-strict-aliasing")
|
set(EXTRA_C_FLAGS "${OPT_C_FLAG} -std=c17 -Wall -Wextra ")#-Wshadow -Wcast-qual -fno-strict-aliasing")
|
||||||
set(EXTRA_CXX_FLAGS "${OPT_CXX_FLAG} -std=c++17 -Wall -Wextra -Wshadow -Wswitch -Wreturn-type -Wcast-qual -Wno-deprecated -Wnon-virtual-dtor -fno-strict-aliasing")
|
set(EXTRA_CXX_FLAGS "${OPT_CXX_FLAG} -std=c++17 -Wall -Wextra ")# -Wshadow -Wswitch -Wreturn-type -Wcast-qual -Wno-deprecated -Wnon-virtual-dtor -fno-strict-aliasing")
|
||||||
if (NOT CMAKE_COMPILER_IS_CLANG)
|
if (NOT CMAKE_COMPILER_IS_CLANG)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fno-new-ttp-matching")
|
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fno-new-ttp-matching")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (NOT RELEASE_BUILD)
|
# Always use -Werror *also during release builds
|
||||||
# -Werror is most useful during development, don't potentially break
|
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wall -Werror -fno-inline")
|
||||||
# release builds
|
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wall -Werror -fno-inline")
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Werror")
|
#if (CMAKE_COMPILER_IS_CLANG)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Werror")
|
# if (CMAKE_C_COMPILER_VERSION VERSION_GREATER "13.0")
|
||||||
if (CMAKE_COMPILER_IS_CLANG)
|
# set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-unused-but-set-variable")
|
||||||
if (CMAKE_C_COMPILER_VERSION VERSION_GREATER "13.0")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-unused-but-set-variable")
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-unused-but-set-variable")
|
# endif()
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-unused-but-set-variable")
|
#endif()
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (DISABLE_ASSERTS)
|
if (DISABLE_ASSERTS)
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -DNDEBUG")
|
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -DNDEBUG")
|
||||||
@ -25,23 +22,23 @@ endif()
|
|||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC)
|
if(CMAKE_COMPILER_IS_GNUCC)
|
||||||
# spurious warnings?
|
# spurious warnings?
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-array-bounds -Wno-maybe-uninitialized")
|
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-array-bounds ") #-Wno-maybe-uninitialized")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCXX)
|
#if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-maybe-uninitialized")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-maybe-uninitialized")
|
||||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
|
# if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fabi-version=0")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fabi-version=0")
|
||||||
endif ()
|
# endif ()
|
||||||
# don't complain about abi
|
# # don't complain about abi
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-abi")
|
# set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-abi")
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-abi")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-abi")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
if (NOT(ARCH_IA32 AND RELEASE_BUILD))
|
#if (NOT(ARCH_IA32 AND RELEASE_BUILD))
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -fno-omit-frame-pointer")
|
# set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -fno-omit-frame-pointer")
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fno-omit-frame-pointer")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -fno-omit-frame-pointer")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
|
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
|
||||||
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
|
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
|
||||||
@ -71,45 +68,45 @@ if (NOT CMAKE_COMPILER_IS_CLANG)
|
|||||||
CHECK_C_SOURCE_COMPILES("int main(void) { __builtin_constant_p(0); }" HAVE__BUILTIN_CONSTANT_P)
|
CHECK_C_SOURCE_COMPILES("int main(void) { __builtin_constant_p(0); }" HAVE__BUILTIN_CONSTANT_P)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(C_FLAGS_TO_CHECK
|
#set(C_FLAGS_TO_CHECK
|
||||||
# Variable length arrays are way bad, most especially at run time
|
# Variable length arrays are way bad, most especially at run time
|
||||||
"-Wvla"
|
#"-Wvla"
|
||||||
# Pointer arith on void pointers is doing it wrong.
|
# Pointer arith on void pointers is doing it wrong.
|
||||||
"-Wpointer-arith"
|
# "-Wpointer-arith"
|
||||||
# Build our C code with -Wstrict-prototypes -Wmissing-prototypes
|
# Build our C code with -Wstrict-prototypes -Wmissing-prototypes
|
||||||
"-Wstrict-prototypes"
|
# "-Wstrict-prototypes"
|
||||||
"-Wmissing-prototypes"
|
# "-Wmissing-prototypes"
|
||||||
)
|
#)
|
||||||
foreach (FLAG ${C_FLAGS_TO_CHECK})
|
#foreach (FLAG ${C_FLAGS_TO_CHECK})
|
||||||
# munge the name so it doesn't break things
|
# # munge the name so it doesn't break things
|
||||||
string(REPLACE "-" "_" FNAME C_FLAG${FLAG})
|
# string(REPLACE "-" "_" FNAME C_FLAG${FLAG})
|
||||||
CHECK_C_COMPILER_FLAG("${FLAG}" ${FNAME})
|
# CHECK_C_COMPILER_FLAG("${FLAG}" ${FNAME})
|
||||||
if (${FNAME})
|
# if (${FNAME})
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} ${FLAG}")
|
# set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} ${FLAG}")
|
||||||
endif()
|
# endif()
|
||||||
endforeach()
|
#endforeach()
|
||||||
|
|
||||||
# self-assign should be thrown away, but clang whinges
|
# self-assign should be thrown away, but clang whinges
|
||||||
CHECK_C_COMPILER_FLAG("-Wself-assign" CC_SELF_ASSIGN)
|
#CHECK_C_COMPILER_FLAG("-Wself-assign" CC_SELF_ASSIGN)
|
||||||
if (CC_SELF_ASSIGN)
|
#if (CC_SELF_ASSIGN)
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-self-assign")
|
# set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-self-assign")
|
||||||
endif()
|
#endif()
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wself-assign" CXX_SELF_ASSIGN)
|
#CHECK_CXX_COMPILER_FLAG("-Wself-assign" CXX_SELF_ASSIGN)
|
||||||
if (CXX_SELF_ASSIGN)
|
#if (CXX_SELF_ASSIGN)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-self-assign")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-self-assign")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
# clang gets up in our face for going paren crazy with macros
|
# clang gets up in our face for going paren crazy with macros
|
||||||
CHECK_C_COMPILER_FLAG("-Wparentheses-equality" CC_PAREN_EQUALITY)
|
#CHECK_C_COMPILER_FLAG("-Wparentheses-equality" CC_PAREN_EQUALITY)
|
||||||
if (CC_PAREN_EQUALITY)
|
#if (CC_PAREN_EQUALITY)
|
||||||
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-parentheses-equality")
|
# set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -Wno-parentheses-equality")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
# clang complains about unused const vars in our Ragel-generated code.
|
# clang complains about unused const vars in our Ragel-generated code.
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wunused-const-variable" CXX_UNUSED_CONST_VAR)
|
#CHECK_CXX_COMPILER_FLAG("-Wunused-const-variable" CXX_UNUSED_CONST_VAR)
|
||||||
if (CXX_UNUSED_CONST_VAR)
|
#if (CXX_UNUSED_CONST_VAR)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-unused-const-variable")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-unused-const-variable")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
# clang-14 complains about unused-but-set variable.
|
# clang-14 complains about unused-but-set variable.
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wunused-but-set-variable" CXX_UNUSED_BUT_SET_VAR)
|
CHECK_CXX_COMPILER_FLAG("-Wunused-but-set-variable" CXX_UNUSED_BUT_SET_VAR)
|
||||||
@ -118,16 +115,16 @@ if (CXX_UNUSED_BUT_SET_VAR)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# clang-14 complains about using bitwise operator instead of logical ones.
|
# clang-14 complains about using bitwise operator instead of logical ones.
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wbitwise-instead-of-logical" CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
#CHECK_CXX_COMPILER_FLAG("-Wbitwise-instead-of-logical" CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
||||||
if (CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
#if (CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-bitwise-instead-of-logical")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-bitwise-instead-of-logical")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
# clang-14 complains about using bitwise operator instead of logical ones.
|
# clang-14 complains about using bitwise operator instead of logical ones.
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wbitwise-instead-of-logical" CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
#CHECK_CXX_COMPILER_FLAG("-Wbitwise-instead-of-logical" CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
||||||
if (CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
#if (CXX_BITWISE_INSTEAD_OF_LOGICAL)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-bitwise-instead-of-logical")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-bitwise-instead-of-logical")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wignored-attributes" CXX_IGNORED_ATTR)
|
CHECK_CXX_COMPILER_FLAG("-Wignored-attributes" CXX_IGNORED_ATTR)
|
||||||
if (CXX_IGNORED_ATTR)
|
if (CXX_IGNORED_ATTR)
|
||||||
@ -135,25 +132,25 @@ if (CXX_IGNORED_ATTR)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# gcc 9 complains about redundant move for returned variable
|
# gcc 9 complains about redundant move for returned variable
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wredundant-move" CXX_REDUNDANT_MOVE)
|
#CHECK_CXX_COMPILER_FLAG("-Wredundant-move" CXX_REDUNDANT_MOVE)
|
||||||
if (CXX_REDUNDANT_MOVE)
|
#if (CXX_REDUNDANT_MOVE)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-redundant-move")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wno-redundant-move")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
# note this for later, g++ doesn't have this flag but clang does
|
# note this for later, g++ doesn't have this flag but clang does
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wweak-vtables" CXX_WEAK_VTABLES)
|
#CHECK_CXX_COMPILER_FLAG("-Wweak-vtables" CXX_WEAK_VTABLES)
|
||||||
if (CXX_WEAK_VTABLES)
|
#if (CXX_WEAK_VTABLES)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wweak-vtables")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wweak-vtables")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wmissing-declarations" CXX_MISSING_DECLARATIONS)
|
#CHECK_CXX_COMPILER_FLAG("-Wmissing-declarations" CXX_MISSING_DECLARATIONS)
|
||||||
if (CXX_MISSING_DECLARATIONS)
|
#if (CXX_MISSING_DECLARATIONS)
|
||||||
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wmissing-declarations")
|
# set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -Wmissing-declarations")
|
||||||
endif()
|
#endif()
|
||||||
|
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wunused-local-typedefs" CXX_UNUSED_LOCAL_TYPEDEFS)
|
#CHECK_CXX_COMPILER_FLAG("-Wunused-local-typedefs" CXX_UNUSED_LOCAL_TYPEDEFS)
|
||||||
|
|
||||||
CHECK_CXX_COMPILER_FLAG("-Wunused-variable" CXX_WUNUSED_VARIABLE)
|
#CHECK_CXX_COMPILER_FLAG("-Wunused-variable" CXX_WUNUSED_VARIABLE)
|
||||||
|
|
||||||
# gcc 10 complains about this
|
# gcc 10 complains about this
|
||||||
CHECK_C_COMPILER_FLAG("-Wstringop-overflow" CC_STRINGOP_OVERFLOW)
|
CHECK_C_COMPILER_FLAG("-Wstringop-overflow" CC_STRINGOP_OVERFLOW)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user