Fix Warnings When compiling library

The CMake Debug target has extensive C++ compiler warning reporting enabled except for some warnings we will not be able to get rid of such as attribute-ignore.
This is an ongoing issue/project, I welcome small and granular PRs that will fix the warnings in batches of a few source files at a time (and ofc result in the compiler issuing net-fewer warnings without changing the compilation flags).
Right now the debug build of the library generates almost 4K warnings, if we could get them down to double digits it would be great!

Now its 100K and counting.
This makes the Debug build slower to compile than Release, example GCC
0 error(s), 100562 warning(s) (288 minute(s), 44 second(s))

Now its 100K and counting.
This makes the Debug build slower to compile than Release, example GCC
0 error(s), 100562 warning(s) (288 minute(s), 44 second(s))

A way to fix compile times and number of warnings most easily is to build the library with "precompiled headers", i.e. make one huge header in ./src/pch.hpp (possibly via CMake itself from the glob results) that includes every internal (./src/*.h and ./src/*.hpp, including 3rdparty) and external (./include) header file .
This would be a good time to fix #231 and #155

It would make most sense to disable all Warning reporting (for both MSVC and GCC) when compiling stuff in ./3rdparty as those warnings and potential code problems are not our responsibility.
Also add the -Wno-ignored-attributes (check the spelling of this flag) option to the warning options, this is because its essentially moaning about us passing around __m128 (which have attribute aligned and vector given to them by GCC extensions and not C++11 in GCC's ximmntrin headers)... its not a problem, so that warning needs to be disabled.

Our target is to have the Debug Build on GCC report less than 1000 warnings over the course of the whole build.

880 Warnings on MSVC, good job!

@manhnt9 let us know the warning count when building Irrlicht+IrrlichtServer (not from dependencies)
(codeblocks gives it, but I presume ninja/make could do so as well)

Currently when building "Irrlicht" without PCH (which is larger than IrrlichtServer) then I get
0 error(s), 8398 warning(s) (10 minute(s), 37 second(s))
But a lot of those are actually from the makefiles etc.
A great improvement on the build time of 5 hours before with 100k warnings
@Crisspl lot of warnings are about a a bitshift of a negative value (that will shift the sign bit in from the left) in your encode and decode pixels routines

Irrlicht built with PCH on Release mode
Process terminated with status 0 (7 minute(s), 51 second(s))
0 error(s), 377 warning(s) (7 minute(s), 51 second(s))

Debug with PCH
Process terminated with status 0 (5 minute(s), 0 second(s))
0 error(s), 1886 warning(s) (5 minute(s), 0 second(s))

Most of the errors are Wunused-function so maybe add a switch to ignore that @Crisspl
We can and may use [[fallthough]] and other C++17 goodies to keep the warning count down.
Obviously protect with an #if __cplusplus__ >= guard

Overall great work, 50x decrease in error count and compile from scratch in 5 minutes, not 5 hours

Added the [[fallthrough]] and [[maybe-unused]] wrapper macros for C++17 compilers.
I also added some pragmas to ignore -Wmaybe-uninitialized but more attention is needed to filter out this spam
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)20; T = double; std::enable_if<true, void>::type = void]’ used but never defined
     encodePixels(void* _pix, const T* _input);
     ^~~~~~~~~~~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)27; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)34; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)41; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)48; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)55; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)62; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)69; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)75; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)81; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)88; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)95; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)102; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)105; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)108; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)111; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)114; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)117; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)120; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)123; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)126; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)130; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)131; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)132; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)133; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)134; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)135; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)136; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)137; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)192; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)193; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)194; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)195; T = double; std::enable_if<true, void>::type = void]’ used but never defined
REPOSITORY_ROOT/include/irr/video/encodePixels.h:19:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::encodePixels(void*, const T*) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)196; T = double; std::enable_if<true, void>::type = void]’ used but never defined
In file included from REPOSITORY_ROOT/include/SColor.h:11:0,
                 from REPOSITORY_ROOT/include/SMaterial.h:9,
                 from REPOSITORY_ROOT/include/irr/asset/IMesh.h:9,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:4,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)20; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
     decodePixels(const void* _pix[4], T* _output, uint32_t _blockX, uint32_t _blockY);
     ^~~~~~~~~~~~
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)27; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)34; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)41; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)48; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)55; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)62; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)69; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)75; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)81; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)88; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)95; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)102; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)105; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)108; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)111; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)114; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)117; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)120; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)123; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined
REPOSITORY_ROOT/include/irr/video/decodePixels.h:18:5: warning: inline function ‘std::enable_if<true, void>::type irr::video::decodePixels(const void**, T*, uint32_t, uint32_t) [with irr::asset::E_FORMAT fmt = (irr::asset::E_FORMAT)126; T = double; std::enable_if<true, void>::type = void; uint32_t = unsigned int]’ used but never defined

Also this

In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)97]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1829:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)98]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1864:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)101]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)102]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)103]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2373:59: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 pix[i] = core::Float16Compressor::compress(_input[i]);
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h:96:18: note: ‘*((void*)& decbuf +24)’ was declared here
             decT decbuf[4];
                  ^~~~~~
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)113]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)114]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)115]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2405:32: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 pix[i] = _input[i];
                          ~~~~~~^
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h:96:18: note: ‘*((void*)& decbuf +24)’ was declared here
             decT decbuf[4];
                  ^~~~~~
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)125]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)126]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)37; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)127]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2436:17: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 pix[i] = _input[i];
                 ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h:96:18: note: ‘*((void*)& decbuf +24)’ was declared here
             decT decbuf[4];
                  ^~~~~~
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)9]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:102:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)13]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:228:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)45]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:680:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)46]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:711:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)47]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)48]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)49]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2299:39: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             pix |= ((uint64_t(_input[3]*255.) & mask) << 24);
                               ~~~~~~~~^
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)50]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:807:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)52]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:874:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)54]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)55]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)57]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:613:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)61]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)62]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)63]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2299:39: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             pix |= ((uint64_t(_input[3]*255.) & mask) << 24);
                               ~~~~~~~~^
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)64]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1195:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)65]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1230:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)67]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1293:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)68]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)69]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)70]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1389:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)74]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)75]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)98]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1864:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)100]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1927:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)101]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)102]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)113]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)114]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)115]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2405:32: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 pix[i] = _input[i];
                          ~~~~~~^
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h:96:18: note: ‘*((void*)& decbuf +24)’ was declared here
             decT decbuf[4];
                  ^~~~~~
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)125]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)126]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)38; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)127]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2436:17: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 pix[i] = _input[i];
                 ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h:96:18: note: ‘*((void*)& decbuf +24)’ was declared here
             decT decbuf[4];
                  ^~~~~~
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)14]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:284:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)47]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)48]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)49]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2299:39: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             pix |= ((uint64_t(_input[3]*255.) & mask) << 24);
                               ~~~~~~~~^
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)51]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:842:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)52]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:874:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)54]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)55]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)56]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:2332:39: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             pix |= ((uint64_t(_input[3]*255.) & mask) << 24);
                               ~~~~~~~~^
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)61]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)62]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)68]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)69]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)72]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1456:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)74]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)75]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
In file included from REPOSITORY_ROOT/include/irr/asset/ICPUMeshBuffer.h:6:0,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUMesh.h:6,
                 from REPOSITORY_ROOT/include/irr/asset/ICPUSkinnedMesh.h:4,
                 from REPOSITORY_ROOT/include/CFinalBoneHierarchy.h:7,
                 from REPOSITORY_ROOT/source/Irrlicht/pch.h:6:
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)97]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1829:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)98]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1864:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
REPOSITORY_ROOT/include/irr/video/encodePixels.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)99]’:
REPOSITORY_ROOT/include/irr/video/encodePixels.h:1896:20: warning: ‘*((void*)& decbuf +24)’ may be used uninitialized in this function [-Wmaybe-uninitialized]
             double inp = _input[3];
                    ^~~
In file included from REPOSITORY_ROOT/source/Irrlicht/pch.h:162:0:
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)101]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
                 encbuf[i] = decbuf[i];
REPOSITORY_ROOT/include/irr/video/convertColor.h: In function ‘void irr::video::convertColor(const void**, void*, size_t, irr::core::vector3d<unsigned int>&) [with irr::asset::E_FORMAT sF = (irr::asset::E_FORMAT)39; irr::asset::E_FORMAT dF = (irr::asset::E_FORMAT)102]’:
REPOSITORY_ROOT/include/irr/video/convertColor.h:109:27: warning: ‘decbuf[3]’ may be used uninitialized in this function [-Wmaybe-uninitialized]

10k warnings without PCH with MSVC currently
Want to work in tandem with #196 so get rid of warnings in irr:: and irr::core:: first

When we finally get the total PCH error count below 50, we probably want to set-up CI for auto validation of PRs

Nabla compiles without warnings on MSVC (and very few on Clang)


Cursor inconsistent when mixing cursor.Delete() with Put() in same transaction

This one is probably best described with a (failing) test case:
func TestCursor_DeleteInAddTransaction(t *testing.T) {
	db := NewTestDB()
	defer db.Close()

	const count = 10

	db.Update(func(tx *bolt.Tx) error {
		b, _ := tx.CreateBucket([]byte("widgets"))
		for i := 0; i < count; i++ {
			k := make([]byte, 8)
			binary.BigEndian.PutUint64(k, uint64(i))
			b.Put(k, make([]byte, 100))
		}

		c := b.Cursor()
		for key, _ := c.First(); key != nil; key, _ = c.Next() {
			if err := c.Delete(); err != nil {
				return err
			}
		}

		return nil
	})

	db.View(func(tx *bolt.Tx) error {
		b := tx.Bucket([]byte("widgets"))
		equals(t, 0, b.Stats().KeyN)
		return nil
	})
}

It should delete all of the inserted keys, but instead, the following keys remain: 1, 3, 5, 7, 9.
This also seems to be the case when there's a pre-existing set of keys and a single key is put (for example):
func TestCursor_DeleteMultipleTransactions(t *testing.T) {
	db := NewTestDB()
	defer db.Close()

	const count = 10

	db.Update(func(tx *bolt.Tx) error {
		b, _ := tx.CreateBucket([]byte("widgets"))
		for i := 0; i < count; i++ {
			k := make([]byte, 8)
			binary.BigEndian.PutUint64(k, uint64(i))
			b.Put(k, make([]byte, 100))
		}
		return nil
	})

	db.Update(func(tx *bolt.Tx) error {
		b := tx.Bucket([]byte("widgets"))

		k := make([]byte, 8)
		binary.BigEndian.PutUint64(k, uint64(0))
		b.Put(k, make([]byte, 100))

		c := b.Cursor()
		for key, _ := c.First(); key != nil; key, _ = c.Next() {
			if err := c.Delete(); err != nil {
				return err
			}
		}

		return nil
	})

	db.View(func(tx *bolt.Tx) error {
		b := tx.Bucket([]byte("widgets"))
		c := b.Cursor()
		for key, _ := c.First(); key != nil; key, _ = c.Next() {
			u := binary.BigEndian.Uint64(key)
			fmt.Println(u)
		}

		equals(t, 0, b.Stats().KeyN)
		return nil
	})
}

This may have something to do with the following (from the docs on tx.Cursor):
Changing data while traversing with a cursor may cause it to be invalidated
and return unexpected keys and/or values. You must reposition your cursor after
mutating data.

The following code, for example, succeeds:
func TestCursor_DeleteInAddTransaction(t *testing.T) {
    db := NewTestDB()
    defer db.Close()

    const count = 10

    db.Update(func(tx *bolt.Tx) error {
        b, _ := tx.CreateBucket([]byte("widgets"))
        for i := 0; i < count; i++ {
            k := make([]byte, 8)
            binary.BigEndian.PutUint64(k, uint64(i))
            b.Put(k, make([]byte, 100))
        }

        for {
            c := b.Cursor()
            k, _ := c.First()
            if k == nil {
                break
            }
            if err := c.Delete(); err != nil {
                return err
            }
        }

        return nil
    })

    db.View(func(tx *bolt.Tx) error {
        b := tx.Bucket([]byte("widgets"))
        equals(t, 0, b.Stats().KeyN)
        return nil
    })
}

My first thought when looking at this was the bit in the docs about cursors:
Changing data while traversing with a cursor may cause it to be invalidated
and return unexpected keys and/or values. You must reposition your cursor
after mutating data.

So, I changed c.Next() in your example to c.First(), and it passed:
        c := b.Cursor()
        for key, _ := c.First(); key != nil; key, _ = c.First() {
            if err := c.Delete(); err != nil {
                return err
            }
        }

But then, I split it into two updates:
    db.Update(func(tx *bolt.Tx) error {
        b, _ := tx.CreateBucket([]byte("widgets"))
        for i := 0; i < count; i++ {
            k := make([]byte, 8)
            binary.BigEndian.PutUint64(k, uint64(i))
            b.Put(k, make([]byte, 100))
        }
        return nil
    })

    db.Update(func(tx *bolt.Tx) error {
        b := tx.Bucket([]byte("widgets"))
        c := b.Cursor()
        for key, _ := c.First(); key != nil; key, _ = c.Next() {
            if err := c.Delete(); err != nil {
                return err
            }
        }

        return nil
    })

And it passed.  Now I am somewhat confused.  Curious to learn what's going on.

@thatguystone thanks for submitting the issue. I've been out of town and couldn't respond. @alaska is correct with his reference to the docs. The issue is that the Tx doesn't track its cursors. When you update pages via Put() or Delete(), new in-memory pages get built but the cursor is still pointing to the old mmap'd pages.
When you call Cursor.First(), the cursor traverses from the bucket's current root page so that's why calling that will reset the cursor. Calling Cursor.Next() will move forward based on the page the cursor is currently pointing to (which may be an old mmap page).
The alternative is to have the Tx track and update all it's cursors whenever a page is changed but that causes huge overhead. There's a Cursor.Delete() method that you can use instead to properly maintain the current page.

Oh, sorry, I misread the code. I didn't realize you were already using Cursor.Delete().


Error using generated clients in Remix

I am trying to use the generated clients in Remix (remix.run) and it fails. Remix gives me TypeError: XXX is not a constructor when creating a new client.
Found out why and it's because Remix (and other SSR frameworks) uses different loaders for *.client.ts and *.client.js files. When I rename this to something else, for example *_client.ts then it works fine.
My proposal is to add an option to the generation so it's possible to change the suffix for generated files - at least for client and server stubs.
What do you think?

Could you give a bit more detail where this error is reported? Is it in generated code or in the runtime library (@protobuf-ts/runtime).
What code do you generate... just TypeScript files, or do you generate JavaScript + declaration files (.js, .d.ts)?

@timostamm we ran into this. It is in neither. It has to do with the fact that any .client file is not available to the server code as a convention.
We just need a way to choose the postfix for client in the options. We are just running a script on the generated files after to rename it for now as a stop gap.

It has to do with the fact that any .client file is not available to the server code as a convention.

Just playing devil's advocate here, but why not file a bug with Remix to make that convention configurable? It looks like another option available to you would be to configure protoc to output the generated files to your node_modules directory (or apparently any directory aside from app) as Remix only applies that behavior to files inside the app directory.

why not file a bug with Remix to make that convention configurable?

We could, but it's unlikely they would do that. The complexity of adjusting their build system to accomodate the change >> changes required in this package.

output the generated files to your node_modules directory (or apparently any directory aside from app)

Putting generated files inside node modules isn't always plausible. If you're using yarn 3 with pnp, you simply can't. Neither of these methods work without fiddling with the remix build system, which is not ideal.

why not file a bug with Remix to make that convention configurable?

It seems that other frameworks are considering (or actually implemented) the client and server file-suffix. So I think this would be not very feasible to change.
Today I am using a script for renaming .client.ts to _client.ts which work's fine, but would be better to have it configured in the generator.

Looks to me like remix owns the appDirectory. That's fair - there have already been numerous frameworks applying behaviour based on file names and file locations and it's a valid approach. Usually you author the files in the directory yourself, so you just name the files accordingly.
However, a code generator is a bit similar - it writes files following a specific logic, and also owns the directory. If you let two different pieces of software own the same directory, yeah, it can cause conflicts.
The simple solution here would be to generate into a directory gen as a sibling to app. I'd check the generated files in (you can use linguist-generated so they don't blow up PRs) and actually clean the directory and re-generate in CI to check that they are up-to-date. That approach works out pretty nicely. You could even set a path in tsconfig.json, so you can reference generated code with import from "@gen/foo/bar". That also works with npm or yarn workspaces.
This seems a bit more sensible than adding a plugin option. If the next framework adds another conflicting convention, we'd be at the same place as before.
Closing this, but if the solution above doesn't work, let me know.

@timostamm Thanks for this.
Unfortunately, your proposed solution doesn't quite work.
To be verbose: In Remix you can specify .client.ts or .server.ts file extensions. Remix will prune .client.ts code from the server bundle, and vice versa. This ensures that those files will only be loaded on the client/server respectively. Remix does some smart code pruning (besides this mechanism), but this mechanism allows the user to set hard boundaries between the client and server code bundles. This is useful for running code that would not work in the other environment, or if you want to prevent certain code ever getting to the other environment.
Now, it seems that when you explicitely use the .server.ts file extension, remix will just prune any imports of any module that ends in .client regardless of where it comes from (inside/outside the appDirectory). So you end up with code that isn't defined, hence the error above.

I'm afraid I need a bit more detailed information to follow your argument.
If you look at

To be verbose: In Remix you can specify .client.ts or .server.ts file extensions. Remix will prune .client.ts code from the server bundle, and vice versa.

Yes. For the server build, remix adds an esbuild plugin that prunes

still can't use generated typescript clients in remix and its a bummer, happy I finally found this issue.
do I have to throw out my architecture now or there is some way forward? i can't tell from the issue's comments. @timostamm did you want someone to take forward debugging the remix compiler against your library's outputs?
As of now the clients simply cannot be used in a remix app and that's a downright shame. (unless I missed a solution somewhere?)
any help appreciated - thanks dearly

It has to do with the fact that any .client file is not available to the server code as a convention.

Just playing devil's advocate here, but why not file a bug with Remix to make that convention configurable? It looks like another option available to you would be to configure protoc to output the generated files to your node_modules directory (or apparently any directory aside from app) as Remix only applies that behavior to files inside the app directory.

since I am using this with buf my generated files are in node_modules and I have the same problem - how does that make sense along with your comment @jcready

in case this helps anyone in the future, this is something I'm working with at the moment: "postinstall": "find ./node_modules -type f -path '*/@buf/*' -regex '.*<my service>.*client.*' -exec sh -c 'mv \"$1\" \"$(echo \"$1\" | sed -E \"s/\\.client\\.(d\\.ts|js)$/._client.\\1/\")\" ' sh {} ';' && remix setup node",
beware of jobservice above I'm filtering only <my service> because I don't want to change other proto files that have .client in their name


⚠ Bofrost.at has degraded performance

In dace7ba, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1086 ms

Resolved: Bofrost.at performance has improved in be0006c.


health regions don't match current health region definitions

It appears that the health region data uses a hybrid of 2016 census health region/unit definition and current configurations. For example, Saskatchewan used to have 13 health regions, but currently has only one health unit. Yet, the health region data breaks it down by 6 sub divisions. the hr_uid for these itemsdoesn't appear to match the official hr_uid.

HR UIDs are based solely upon the availability of data and COVID-19 reporting standards for each province. It is only possible to provide data for regions where data is available, and only to the granularity with which this data is released.
The current breakdown is the most granular possible with full, historical data throughout the pandemic for each health region.

HR UIDs are based on stats canada's unique identifcation and breakdown. After further review, it looks like SK's break down is not actually health regions, but health zones populated just for covid reporting. This came into effect in August of 2020 and was subsequently updated with further zone breakdowns. I think it would be good to declare which data items are real health regions vs. temporary health zones. Particularly when aligning this data with census or population data.

The HR UIDs are used for convenience, but as-is standard with regional COVID reporting in Canada, everything is based upon the regions that each province reports COVID-19 data for. There is no other data or breakdown possible besides what is reported by the provinces. The full name of the region, as used in provincial COVID-19 reporting, is returned with the /regions endpoint. HR UIDs are provided for convenience.
SK, like some other provinces, operates under a single health authority, and has modified the zones it reports for multiple times - even prior to August 2020. For consistency and availability of historical data, we use the original 6 zones reported - there is no historical data available for the expanded zones prior to August 2020.


Settings do not open in v0.65

Microsoft PowerToys version
0.65
Installation method
GitHub
Running as admin
No
Area(s) with issue?
Settings
Steps to reproduce
Right-click on PowerToys icon in the tray. Select Settings.
This is a continuation of [#18725|https://github.com/microsoft/PowerToys/issues/18725]
✔ Expected Behavior
Settings open from tray.
❌ Actual Behavior
Nothing happens.
Other Software
No response
PowerToysReport_2022-12-12-10-50-30.zip

It actually looks like Settings, Color Picker, PowerToys Run and Text Extractor are all crashing. Wonder if it's the same reason.
Can you please generate and share a dump file as explained in the issue? https://github.com/microsoft/PowerToys/issues/18725#issue-1265972185
/needinfo

Hi @jaimecbernardo
I can't create the dump file using the method you shared because I am working on a managed machine. My account doesn't have admin privileges. I can't make edits to the registry.

Can you confirm this is still an issue with PowerToys v0.72?
/needinfo

This doesn't happen in v0.72.
Jedidiah
From: Joseph Finney @.>
Sent: Thursday, August 10, 2023 10:53 AM
To: microsoft/PowerToys @.>
Cc: rexjLU2018 @.>; Author @.>
Subject: Re: [microsoft/PowerToys] Settings do not open in v0.65 (Issue #22739)
You don't often get email from<EMAIL_ADDRESS>Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification
Can you confirm this is still an issue with PowerToys v0.72?
/needinfo

Reply to this email directly, view it on GitHubhttps://github.com/microsoft/PowerToys/issues/22739#issuecomment-1673491583, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQ2GWXOU4ZVO6NFV4IR4DTTXUT7VRANCNFSM6AAAAAAS4F3GJI.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>


zaius-xml: update DIMM connector numbering to match DVT board

DVT board is switching ordering such that DIMMs 0-15 are in the front and DIMMs 16-31 are in the back.

@a-barrera can you take a look?


all-contributors test

@all-contributors please add @edwardfxiao for code doc infra test review

https://github.com/all-contributors please add @edwardfxiao for code

@all-contributors please add @edwardfxiao for code