GCC/Clang: Treat void pointer arithmetic as error
As an extension, GNU C treats sizeof(void) as 1. MSVC doesn't. Make it an error on GCC/Clang to avoid accidental MSVC breakage.
This commit is contained in:
parent
a2edc9d641
commit
30ef3f3122
2 changed files with 16 additions and 10 deletions
|
@ -11,6 +11,11 @@ if(CMAKE_VERSION VERSION_LESS "3.1")
|
||||||
else()
|
else()
|
||||||
set (CMAKE_C_STANDARD 99)
|
set (CMAKE_C_STANDARD 99)
|
||||||
endif()
|
endif()
|
||||||
|
include(CheckCCompilerFlag)
|
||||||
|
CHECK_C_COMPILER_FLAG("-Werror=pointer-arith" COMPILER_HAS_POINTER_ARITH_TOGGLE)
|
||||||
|
if(COMPILER_HAS_POINTER_ARITH_TOGGLE)
|
||||||
|
set(CMAKE_C_FLAGS "-Werror=pointer-arith ${CMAKE_C_FLAGS}")
|
||||||
|
endif()
|
||||||
|
|
||||||
add_subdirectory(src release)
|
add_subdirectory(src release)
|
||||||
|
|
||||||
|
|
|
@ -259,7 +259,8 @@ endif
|
||||||
# -fgnu89-inline declaring inline functions support (GCC optimized)
|
# -fgnu89-inline declaring inline functions support (GCC optimized)
|
||||||
# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
|
# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
|
||||||
# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
|
# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
|
||||||
CFLAGS += -O1 -Wall -std=c99 -D_DEFAULT_SOURCE -fgnu89-inline -Wno-missing-braces
|
# -Werror=pointer-arith catch unportable code that does direct arithmetic on void pointers
|
||||||
|
CFLAGS += -O1 -Wall -std=c99 -D_DEFAULT_SOURCE -fgnu89-inline -Wno-missing-braces -Werror=pointer-arith
|
||||||
|
|
||||||
# Additional flags for compiler (if desired)
|
# Additional flags for compiler (if desired)
|
||||||
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
|
#CFLAGS += -Wextra -Wmissing-prototypes -Wstrict-prototypes
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue