SQLite Forum

Compiler warnings in shell.c for amalgamation 3.34.0
Login
Yes they're all harmless, but we use /WX so all warnings are treated as errors. I worked around it by switched to /W2 to compile this but it's noise if anyone else builds with /W4 so thought it'd be polite to add tweak the code to not warn.

My bad not including the compiler version and settings. Listed below

Key option to repro is /W4. Switch to /W2 and poof! No warnings

```
3001>Microsoft (R) C/C++ Optimizing Compiler Version 19.28.29395.4 for x64
3001>Copyright (C) Microsoft Corporation.  All rights reserved.
3001>   /FC
...various /I... options omitted for brevity...
3001>   /D_WIN64
3001>   /D_AMD64_
3001>   /DAMD64
3001>   /DCONDITION_HANDLING=1
3001>   /DNT_UP=1
3001>   /DNT_INST=0
3001>   /DWIN32=100
3001>   /D_NT1X_=100
3001>   /DWINNT=1
3001>   /D_WIN32_WINNT=0x0A00
3001>   /DWINVER=0x0A00
3001>   /D_WIN32_IE=0x0A00
3001>   /DWIN32_LEAN_AND_MEAN=1
3001>   /DDEVL=1
3001>   /DNDEBUG
3001>   /D_DLL=1
3001>   /D_MT=1
3001>   /wd4127
3001>   /wd4100
3001>   /DSQLITE_ENABLE_API_ARMOR
3001>   -D_ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE
3001>   /D_USE_DEV11_CRT
3001>   /D__WRL_CONFIGURATION_LEGACY__
3001>   /DEXECUTABLE_WRITES_SUPPORT=0
3001>   /c
3001>   /Zc:wchar_t-
3001>   /Zl
3001>   /Zp8
3001>   /Gy
3001>   /W4
3001>   /d1import_no_registry
3001>   /EHs-c-
3001>   /GR-
3001>   /GF
3001>   /GS
3001>   /Z7
3001>   /Oxs
3001>   /GL
3001>   /Z7
3001>   /Zc:rvalueCast
3001>   /w15043
3001>   /std:c++17
3001>   /Zc:noexceptTypes
3001>   -D_CONST_RETURN=
3001>   -D_CRT_SECURE_NO_WARNINGS
3001>   -D_CRT_NON_CONFORMING_SWPRINTFS
3001>   -D_CRT_NONSTDC_NO_WARNINGS
3001>   -D_NO_CPPLIB_VER
3001>   -D_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS
3001>   /D_CRT_STDIO_INLINE=extern
3001>   /D_NO_CRT_STDIO_INLINE
3001>   /D_ACRTIMP_ALT=
3001>   /D_ALLOW_MSC_VER_MISMATCH
3001>   /D_ALLOW_ITERATOR_DEBUG_LEVEL_MISMATCH
3001>   /D_ALLOW_RUNTIME_LIBRARY_MISMATCH
3001>   /D_SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
3001>   /D_STL_EXTRA_DISABLED_WARNINGS=4239
3001>   /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING
3001>   /D_SILENCE_ALL_CXX17_DEPRECATION_WARNINGS
3001>   /D_SILENCE_TR2_SYS_NAMESPACE_DEPRECATION_WARNING
3001>   /D_HAS_FUNCTION_ALLOCATOR_SUPPORT=1
3001>   /D_SILENCE_STDEXT_ALLOCATORS_DEPRECATION_WARNING
3001>   /D_HAS_STD_BYTE=0
3001>   /D_ENFORCE_MATCHING_ALLOCATORS=0
3001>   /D_HAS_FUNCTION_ALLOCATOR_SUPPORT=1
3001>   /D_SILENCE_STDEXT_ALLOCATORS_DEPRECATION_WARNING
3001>   /D_FULL_IOBUF
3001>   /d1nodatetime
3001>   /d2AllowCompatibleILVersions
3001>   /d2Zi+
3001>   /ZH:SHA_256
3001>   /wd4986
3001>   /wd4987
3001>   /wd4471
3001>   /wd4369
3001>   /wd4309
3001>   /wd4754
3001>   /wd4427
3001>   /d2DeepThoughtInliner-
3001>   /Zc:tlsGuards-
3001>   /Wv:19.23
3001>   /d2Qvec-mathlib-
3001>   /d2Qvec-sse2only
3001>   /Gw
3001>   /d1ignorePragmaWarningError
3001>   /wd4316
3001>   /wd4973
3001>   /DDONT_DISABLE_PCH_WARNINGS_IN_WARNING_H
3001>   /d2FH4
3001>   /Brepro
3001>   -D_HAS_MAGIC_STATICS=1
3001>   /Qspectre
3001>   /wd5045
3001>   /d2guardspecanalysismode:v1_0
3001>   /d2guardspecmode2
3001>   /guard:cf
3001>   /d1guard:xfg
3001>   /d2guardxfg
3001>   /D_CONTROL_FLOW_GUARD_XFG=1
3001>   /d2guardehcont
3001>   .\shell.c
3001>shell.c
3001>d:\repo\sqlite3\shell\shell.c(4776): warning C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>errors in directory d:\repo\sqlite3\shell
3001>d:\repo\sqlite3\shell\shell.c(4776) : error C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(4797): warning C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(4797) : error C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(13100): warning C4242: 'function': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(13100) : error C4242: 'function': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(13110): warning C4242: 'function': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(13110) : error C4242: 'function': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(13127): warning C4242: '=': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(13127) : error C4242: '=': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(18155): warning C4242: '=': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(18155) : error C4242: '=': conversion from 'sqlite3_int64' to 'int', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(18247): warning C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(18247) : error C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(18251): warning C4242: '=': conversion from 'int' to 'char', possible loss of data
3001>d:\repo\sqlite3\shell\shell.c(18251) : error C4242: '=': conversion from 'int' to 'char', possible loss of data
```