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
This commit is contained in:
parent
72616e7eb9
commit
532731e6f4
@ -1 +1 @@
|
||||
Subproject commit 7e9983b00fb44c2e569ba54bfee6f548496d7f61
|
||||
Subproject commit 1c83894db9deeea32418089e2ffd0c5d3af85b8b
|
@ -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)
|
||||
|
@ -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<lua_Number>(MobType));
|
||||
tolua_pushcppstring(LuaState, a_MobString);
|
||||
|
@ -6,7 +6,7 @@
|
||||
inline unsigned int GetTime()
|
||||
{
|
||||
// NB: For caveats, please see https://stackoverflow.com/a/14505248
|
||||
return static_cast<unsigned int>(std::chrono::seconds(time(0)).count());
|
||||
return static_cast<unsigned int>(std::chrono::seconds(time(nullptr)).count());
|
||||
}
|
||||
|
||||
// tolua_end
|
||||
|
@ -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"
|
||||
{
|
||||
|
@ -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:
|
||||
|
||||
|
@ -243,6 +243,7 @@ void cEntity::Destroy(bool a_ShouldBroadcast)
|
||||
this->GetUniqueID(), this->GetClass(),
|
||||
ParentChunkCoords.m_ChunkX, ParentChunkCoords.m_ChunkZ
|
||||
);
|
||||
UNUSED(ParentChunkCoords); // Non Debug mode only
|
||||
|
||||
// Make sure that RemoveEntity returned a valid smart pointer
|
||||
// Also, not storing the returned pointer means automatic destruction
|
||||
@ -1599,6 +1600,7 @@ bool cEntity::DoMoveToWorld(cWorld * a_World, bool a_ShouldSendRespawn, Vector3d
|
||||
a_OldWorld.GetName().c_str(), a_World->GetName().c_str(),
|
||||
OldChunkCoords.m_ChunkX, OldChunkCoords.m_ChunkZ
|
||||
);
|
||||
UNUSED(OldChunkCoords); // Non Debug mode only
|
||||
a_World->AddEntity(a_OldWorld.RemoveEntity(*this));
|
||||
cRoot::Get()->GetPluginManager()->CallHookEntityChangedWorld(*this, a_OldWorld);
|
||||
});
|
||||
|
@ -272,7 +272,7 @@ void cFurnaceRecipe::ClearRecipes(void)
|
||||
|
||||
const cFurnaceRecipe::cRecipe * cFurnaceRecipe::GetRecipeFrom(const cItem & a_Ingredient) const
|
||||
{
|
||||
const cRecipe * BestRecipe = 0;
|
||||
const cRecipe * BestRecipe = nullptr;
|
||||
for (RecipeList::const_iterator itr = m_pState->Recipes.begin(); itr != m_pState->Recipes.end(); ++itr)
|
||||
{
|
||||
const cRecipe & Recipe = *itr;
|
||||
|
@ -20,7 +20,7 @@ class cNetworkLookup :
|
||||
public:
|
||||
|
||||
cNetworkLookup();
|
||||
~cNetworkLookup();
|
||||
~cNetworkLookup() override;
|
||||
|
||||
/** Schedule a lookup task for execution. */
|
||||
void ScheduleLookup(std::function<void()> a_Lookup);
|
||||
|
@ -72,7 +72,7 @@ cRoot::cRoot(void) :
|
||||
|
||||
cRoot::~cRoot()
|
||||
{
|
||||
s_Root = 0;
|
||||
s_Root = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
10
src/main.cpp
10
src/main.cpp
@ -72,6 +72,12 @@ bool cRoot::m_RunAsService = false;
|
||||
|
||||
|
||||
#ifndef _DEBUG
|
||||
// Because SIG_DFL or SIG_IGN could be NULL instead of nullptr, we need to disable the Clang warning here
|
||||
#if __clang_major__ >= 5
|
||||
#pragma clang diagnostic push
|
||||
#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant"
|
||||
#endif
|
||||
|
||||
static void NonCtrlHandler(int a_Signal)
|
||||
{
|
||||
LOGD("Terminate event raised from std::signal");
|
||||
@ -115,6 +121,10 @@ static void NonCtrlHandler(int a_Signal)
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
#if __clang_major__ >= 5
|
||||
#pragma clang diagnostic pop
|
||||
#endif
|
||||
#endif // _DEBUG
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user