1
0

MSVC warnings

This commit is contained in:
Tiger Wang 2021-02-09 13:01:13 +00:00
parent 2481190d9c
commit 86cfb38211
5 changed files with 12 additions and 49 deletions

View File

@ -87,6 +87,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
# File failed to follow NHS guidelines on handwashing and has not maintained good hygiene
set_source_files_properties("${PROJECT_SOURCE_DIR}/src/IniFile.cpp" PROPERTIES COMPILE_OPTIONS -Wno-header-hygiene)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set_source_files_properties("${PROJECT_SOURCE_DIR}/src/Bindings/Bindings.cpp" PROPERTIES COMPILE_OPTIONS -w)
endif()
if(${BUILD_TOOLS})

View File

@ -104,7 +104,16 @@ endfunction()
function(set_exe_flags TARGET)
if (MSVC)
# TODO: MSVC level 4, warnings as errors
# TODO: Warnings as errors
target_compile_options(
${TARGET} PRIVATE
# Warnings level 4:
/W4
# Excessive amount of logspam (Unreferenced formal parameter), disable for now:
/wd4100
)
return ()
endif()

View File

@ -16,32 +16,6 @@
// Compiler-dependent stuff:
#if defined(_MSC_VER)
// Disable some warnings that we don't care about:
#pragma warning(disable:4100) // Unreferenced formal parameter
// Useful warnings from warning level 4:
#pragma warning(3 : 4189) // Local variable is initialized but not referenced
#pragma warning(3 : 4245) // Conversion from 'type1' to 'type2', signed / unsigned mismatch
#pragma warning(3 : 4310) // Cast truncates constant value
#pragma warning(3 : 4389) // Signed / unsigned mismatch
#pragma warning(3 : 4505) // Unreferenced local function has been removed
#pragma warning(3 : 4701) // Potentially unitialized local variable used
#pragma warning(3 : 4702) // Unreachable code
#pragma warning(3 : 4706) // Assignment within conditional expression
// 2014-10-23 xoft: Disabled this because the new C++11 headers in MSVC produce tons of these warnings uselessly
// #pragma warning(3 : 4127) // Conditional expression is constant
// Disabling this warning, because we know what we're doing when we're doing this:
#pragma warning(disable: 4355) // 'this' used in initializer list
// Disabled because it's useless:
#pragma warning(disable: 4512) // 'class': assignment operator could not be generated - reported for each class that has a reference-type member
#pragma warning(disable: 4351) // new behavior: elements of array 'member' will be default initialized
// 2014_01_06 xoft: Disabled this warning because MSVC is stupid and reports it in obviously wrong places
// #pragma warning(3 : 4244) // Conversion from 'type1' to 'type2', possible loss of data
// Use non-standard defines in <cmath>
#define _USE_MATH_DEFINES

View File

@ -169,17 +169,6 @@ public:
const cColorList & GetData(void) const { return m_Data; }
static const char * GetClassStatic(void) // Needed for ManualBindings's DoWith templates
{
return "cMap";
}
const char * GetClass(void) // Needed for ManualBindings' DoWith templates
{
return "cMap";
}
private:
/** Update the specified pixel. */

View File

@ -96,12 +96,6 @@ public:
/** Send this objective to the specified client */
void SendTo(cClientHandle & a_Client);
static const char * GetClassStatic(void) // Needed for ManualBindings's ForEach templates
{
return "cObjective";
}
private:
typedef std::pair<AString, Score> cTrackedPlayer;
@ -176,11 +170,6 @@ public:
// tolua_end
static const char * GetClassStatic(void) // Needed for ManualBindings's ForEach templates
{
return "cTeam";
}
private:
typedef std::set<AString> cPlayerNameSet;