Make function calls without prior declaration an error

which is the default behavior on C99 and up.
This commit is contained in:
Ahmad Fatoum 2018-01-25 22:34:29 +01:00
parent c2ec88f930
commit 8be93762d9
No known key found for this signature in database
GPG Key ID: C3EAC3DE9321D59B
2 changed files with 12 additions and 5 deletions

12
CMakeLists.txt Normal file → Executable file
View File

@ -12,10 +12,16 @@ else()
set (CMAKE_C_STANDARD 99)
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}")
foreach(option -Werror=pointer-arith;-Werror=implicit-function-declaration)
CHECK_C_COMPILER_FLAG("${option}" COMPILER_HAS_THOSE_TOGGLES)
set(outcome "Failed")
if(COMPILER_HAS_THOSE_TOGGLES)
set(CMAKE_C_FLAGS "${option} ${CMAKE_C_FLAGS}")
set(outcome "works")
endif()
message(STATUS "Testing if ${option} can be used -- ${outcome}")
endforeach()
add_subdirectory(src release)

View File

@ -262,7 +262,8 @@ endif
# -Wno-missing-braces ignore invalid warning (GCC bug 53119)
# -D_DEFAULT_SOURCE use with -std=c99 on Linux and PLATFORM_WEB, required for timespec
# -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
# -Werror=implicit-function-declaration catch function calls without prior declaration
CFLAGS += -O1 -Wall -std=c99 -D_DEFAULT_SOURCE -fgnu89-inline -Wno-missing-braces -Werror=pointer-arith -Werror=implicit-function-declaration
ifeq ($(RAYLIB_BUILD_MODE), DEBUG)
CFLAGS += -g