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)
|
set_source_files_properties(${CMAKE_SOURCE_DIR}/src/Bindings/Bindings.cpp PROPERTIES COMPILE_FLAGS -Wno-error)
|
||||||
|
|
||||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
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(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()
|
endif()
|
||||||
|
|
||||||
if(NOT MSVC)
|
if(NOT MSVC)
|
||||||
|
@ -270,7 +270,7 @@ static int tolua_AllToLua_StringToMobType00(lua_State* tolua_S)
|
|||||||
else
|
else
|
||||||
#endif
|
#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);
|
eMonsterType MobType = cMonster::StringToMobType(a_MobString);
|
||||||
tolua_pushnumber(LuaState, static_cast<lua_Number>(MobType));
|
tolua_pushnumber(LuaState, static_cast<lua_Number>(MobType));
|
||||||
tolua_pushcppstring(LuaState, a_MobString);
|
tolua_pushcppstring(LuaState, a_MobString);
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
inline unsigned int GetTime()
|
inline unsigned int GetTime()
|
||||||
{
|
{
|
||||||
// NB: For caveats, please see https://stackoverflow.com/a/14505248
|
// 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
|
// 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"
|
// fwd: "SQLite/lsqlite3.c"
|
||||||
extern "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:
|
// LuaCommandHandler:
|
||||||
|
|
||||||
|
@ -243,6 +243,7 @@ void cEntity::Destroy(bool a_ShouldBroadcast)
|
|||||||
this->GetUniqueID(), this->GetClass(),
|
this->GetUniqueID(), this->GetClass(),
|
||||||
ParentChunkCoords.m_ChunkX, ParentChunkCoords.m_ChunkZ
|
ParentChunkCoords.m_ChunkX, ParentChunkCoords.m_ChunkZ
|
||||||
);
|
);
|
||||||
|
UNUSED(ParentChunkCoords); // Non Debug mode only
|
||||||
|
|
||||||
// Make sure that RemoveEntity returned a valid smart pointer
|
// Make sure that RemoveEntity returned a valid smart pointer
|
||||||
// Also, not storing the returned pointer means automatic destruction
|
// 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(),
|
a_OldWorld.GetName().c_str(), a_World->GetName().c_str(),
|
||||||
OldChunkCoords.m_ChunkX, OldChunkCoords.m_ChunkZ
|
OldChunkCoords.m_ChunkX, OldChunkCoords.m_ChunkZ
|
||||||
);
|
);
|
||||||
|
UNUSED(OldChunkCoords); // Non Debug mode only
|
||||||
a_World->AddEntity(a_OldWorld.RemoveEntity(*this));
|
a_World->AddEntity(a_OldWorld.RemoveEntity(*this));
|
||||||
cRoot::Get()->GetPluginManager()->CallHookEntityChangedWorld(*this, a_OldWorld);
|
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 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)
|
for (RecipeList::const_iterator itr = m_pState->Recipes.begin(); itr != m_pState->Recipes.end(); ++itr)
|
||||||
{
|
{
|
||||||
const cRecipe & Recipe = *itr;
|
const cRecipe & Recipe = *itr;
|
||||||
|
@ -20,7 +20,7 @@ class cNetworkLookup :
|
|||||||
public:
|
public:
|
||||||
|
|
||||||
cNetworkLookup();
|
cNetworkLookup();
|
||||||
~cNetworkLookup();
|
~cNetworkLookup() override;
|
||||||
|
|
||||||
/** Schedule a lookup task for execution. */
|
/** Schedule a lookup task for execution. */
|
||||||
void ScheduleLookup(std::function<void()> a_Lookup);
|
void ScheduleLookup(std::function<void()> a_Lookup);
|
||||||
|
@ -72,7 +72,7 @@ cRoot::cRoot(void) :
|
|||||||
|
|
||||||
cRoot::~cRoot()
|
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
|
#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)
|
static void NonCtrlHandler(int a_Signal)
|
||||||
{
|
{
|
||||||
LOGD("Terminate event raised from std::signal");
|
LOGD("Terminate event raised from std::signal");
|
||||||
@ -115,6 +121,10 @@ static void NonCtrlHandler(int a_Signal)
|
|||||||
default: break;
|
default: break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if __clang_major__ >= 5
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
#endif
|
||||||
#endif // _DEBUG
|
#endif // _DEBUG
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user