From c0ab06736fb3ebc705f183d861dafb46a2842392 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C3=A9veill=C3=A9?= <nicolas@uucidl.com> Date: Sun, 9 Aug 2015 18:40:04 +0200 Subject: [PATCH] Deactivate compiler warnings from CL.EXE that fire in hammer Some of them are completely spurious however some (marked FIXME(windows)) may benefit from being looked at. --- tools/windows/build_examples.bat | 3 --- tools/windows/clvars.bat | 33 +++++++++++++++++++++++++------- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/tools/windows/build_examples.bat b/tools/windows/build_examples.bat index 3bbcccb0..c431faeb 100644 --- a/tools/windows/build_examples.bat +++ b/tools/windows/build_examples.bat @@ -12,9 +12,6 @@ REM Set up SRC, BUILD and CLFLAGS call %HEREPATH%\env.bat call %HEREPATH%\clvars.bat -REM type conversion of a return value -set CLFLAGS=%CLFLAGS% -wd4242 - echo SRC=%SRC%, BUILD=%BUILD% echo CLFLAGS=%CLFLAGS% diff --git a/tools/windows/clvars.bat b/tools/windows/clvars.bat index ba549006..8e292268 100644 --- a/tools/windows/clvars.bat +++ b/tools/windows/clvars.bat @@ -4,11 +4,25 @@ REM Exports CLFLAGS REM Start with the most strict warning level set WARNINGS=-W4 -Wall -WX +REM c4457 (declaration shadowing function parameter) +REM FIXME(windows) TODO(uucidl): remove occurence of c4457 and reactivate +REM FIXME(windows) TODO(uucidl): remove occurence of c4456 and reactivate +REM see -Wshadow +set WARNINGS=%WARNINGS% -wd4457 -wd4456 + +REM c4701 (potentially unitialized local variable) +REM FIXME(windows) TODO(uucidl): remove occurence of c4701 if possible +set WARNINGS=%WARNINGS% -wd4701 + REM We disable implicit casting warnings (c4244), as they occur too often here. REM Its gcc/clang counterpart is Wconversion which does not seem to REM be enabled by default. REM See: [[https://gcc.gnu.org/wiki/NewWconversion#Frequently_Asked_Questions]] -set WARNINGS=%WARNINGS% -wd4244 +REM +REM Likewise for c4242 (conversion with potential loss of data) and c4267 +REM (conversion away from size_t to a smaller type) and c4245 (conversion +REM from int to size_t signed/unsigned mismatch) +set WARNINGS=%WARNINGS% -wd4242 -wd4244 -wd4245 -wd4267 REM c4100 (unreferenced formal parameter) is equivalent to -Wno-unused-parameter set WARNINGS=%WARNINGS% -wd4100 @@ -19,11 +33,13 @@ set WARNINGS=%WARNINGS% -wd4200 REM c4204 (non-constant aggregate initializers) ressembles C99 support set WARNINGS=%WARNINGS% -wd4204 -REM c4201 (anonymous unions) ressembles C11 support +REM c4201 (anonymous unions) ressembles C11 support. +REM see -std=gnu99 vs -std=c99 set WARNINGS=%WARNINGS% -wd4201 -REM c4820 (warnings about padding) is not useful -set WARNINGS=%WARNINGS% -wd4820 +REM c4820 (warnings about padding) and c4324 (intentional padding) are +REM not useful +set WARNINGS=%WARNINGS% -wd4820 -wd4324 REM c4710 (inlining could not be performed) is not useful set WARNINGS=%WARNINGS% -wd4710 @@ -31,10 +47,13 @@ set WARNINGS=%WARNINGS% -wd4710 REM c4255 ( () vs (void) ambiguity) is not useful set WARNINGS=%WARNINGS% -wd4255 -REM c4996 (deprecated functions) -set WARNINGS=%WARNINGS% -wd4996 +REM c4127 (conditional expression is constant) is not useful +set WARNINGS=%WARNINGS% -wd4127 + +REM c4668 (an undefined symbol in a preprocessor directive) is not useful +set WARNINGS=%WARNINGS% -wd4668 -REM we use sprintf +REM we use sprintf so this should be enabled set DEFINES=-D_CRT_SECURE_NO_WARNINGS set CLFLAGS=-Od -Z7 %DEFINES% %WARNINGS% -Debug -- GitLab