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 ```