From 532731e6f4c0d843d355ff8f2d9f63e4e7854e6a Mon Sep 17 00:00:00 2001 From: bibo38 Date: Thu, 21 Dec 2017 12:36:58 +0100 Subject: Fixed Clang 5.0 compile errors (#4085) * Fixed Clang 5.0 compile errors * Fixed wrong comment * Only disable warnings in Clang 5 or higher * Added a CMake condition for the Clang 5 no-zero-as-null-pointer-constant warning * Now using the use_nullptr branch of the Cuberite specific SQLiteCpp fork --- src/Bindings/CMakeLists.txt | 7 +++++-- src/Bindings/DeprecatedBindings.cpp | 2 +- src/Bindings/LuaFunctions.h | 2 +- src/Bindings/LuaState.cpp | 8 ++++++++ src/Bindings/ManualBindings.cpp | 8 ++++++++ 5 files changed, 23 insertions(+), 4 deletions(-) (limited to 'src/Bindings') diff --git a/src/Bindings/CMakeLists.txt b/src/Bindings/CMakeLists.txt index 0cfb7add9..45bd573d5 100644 --- a/src/Bindings/CMakeLists.txt +++ b/src/Bindings/CMakeLists.txt @@ -167,8 +167,11 @@ set_source_files_properties(${BINDING_OUTPUTS} PROPERTIES GENERATED TRUE) set_source_files_properties(${CMAKE_SOURCE_DIR}/src/Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS -Wno-error) -if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") - set_source_files_properties(Bindings.cpp PROPERTIES COMPILE_FLAGS ${COMPILE_FLAGS} "-Wno-old-style-cast -Wno-missing-prototypes") +if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5) # Workaround for VERSION_GREATER_EQUAL, which is only supported on CMake 3.7+ + set(ADDITIONAL_FLAGS "-Wno-zero-as-null-pointer-constant") + endif() + set_source_files_properties(Bindings.cpp PROPERTIES COMPILE_FLAGS "-Wno-old-style-cast -Wno-missing-prototypes ${ADDITIONAL_FLAGS}") endif() if(NOT MSVC) diff --git a/src/Bindings/DeprecatedBindings.cpp b/src/Bindings/DeprecatedBindings.cpp index 3ae1fd990..031b69356 100644 --- a/src/Bindings/DeprecatedBindings.cpp +++ b/src/Bindings/DeprecatedBindings.cpp @@ -270,7 +270,7 @@ static int tolua_AllToLua_StringToMobType00(lua_State* tolua_S) else #endif { - const AString a_MobString = tolua_tocppstring(LuaState, 1, 0); + const AString a_MobString = tolua_tocppstring(LuaState, 1, nullptr); eMonsterType MobType = cMonster::StringToMobType(a_MobString); tolua_pushnumber(LuaState, static_cast(MobType)); tolua_pushcppstring(LuaState, a_MobString); diff --git a/src/Bindings/LuaFunctions.h b/src/Bindings/LuaFunctions.h index b17d7d497..d32322384 100644 --- a/src/Bindings/LuaFunctions.h +++ b/src/Bindings/LuaFunctions.h @@ -6,7 +6,7 @@ inline unsigned int GetTime() { // NB: For caveats, please see https://stackoverflow.com/a/14505248 - return static_cast(std::chrono::seconds(time(0)).count()); + return static_cast(std::chrono::seconds(time(nullptr)).count()); } // tolua_end diff --git a/src/Bindings/LuaState.cpp b/src/Bindings/LuaState.cpp index 82dbfb780..ab3a38618 100644 --- a/src/Bindings/LuaState.cpp +++ b/src/Bindings/LuaState.cpp @@ -26,6 +26,14 @@ extern "C" +// Hotpatching the Macro to prevent a Clang Warning (0 for pointer used) +#undef lua_tostring +#define lua_tostring(L, i) lua_tolstring(L, (i), nullptr) + + + + + // fwd: "SQLite/lsqlite3.c" extern "C" { diff --git a/src/Bindings/ManualBindings.cpp b/src/Bindings/ManualBindings.cpp index becaa872a..7dd724d44 100644 --- a/src/Bindings/ManualBindings.cpp +++ b/src/Bindings/ManualBindings.cpp @@ -43,6 +43,14 @@ +// Hotpatching the Macro to prevent a Clang Warning (0 for pointer used) +#undef lua_tostring +#define lua_tostring(L, i) lua_tolstring(L, (i), nullptr) + + + + + //////////////////////////////////////////////////////////////////////////////// // LuaCommandHandler: -- cgit v1.2.3