lvandeve / lodepng

PNG encoder and decoder in C and C++.
zlib License
2.06k stars 421 forks source link

Request: Fixing compiler warnings #67

Closed cgiesselink closed 8 months ago

cgiesselink commented 6 years ago

Creating a x64 target with MS compilers report several warnings. On a x64 target variable type "unsigned" is 32bit whereas "size_t" is 64bit wide causing most of the warnings.

MangaD commented 5 years ago

Adding to this request. When compiling with C++11 I get a bunch of warnings of zero as null pointer. Please add something like:

#if !defined(__cplusplus) || __cplusplus < 201100L
#define nullptr NULL
#endif

And replace NULL with nullptr throughout the code.

kajott commented 3 years ago

Chiming in here, because I get lots of errors with x86_64 builds on current MSVC with default options (including /W3) too:

lodepng.cpp(712,54): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
lodepng.cpp(730,35): warning C4267: '=': conversion from 'size_t' to 'unsigned short', possible loss of data
lodepng.cpp(731,39): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
lodepng.cpp(754,37): warning C4267: '=': conversion from 'size_t' to 'unsigned short', possible loss of data
lodepng.cpp(771,38): warning C4267: '=': conversion from 'size_t' to 'unsigned short', possible loss of data
lodepng.cpp(3728,78): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4698,33): warning C4267: '=': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4920,60): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4925,83): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4926,94): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4927,83): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4928,94): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4929,83): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4930,94): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(4931,78): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5122,3): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5146,7): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5180,62): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5197,3): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5219,57): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5250,57): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5363,57): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
lodepng.cpp(5441,33): warning C4334: '<<': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)

(the line numbers are for the Oct 17 2020 release, 7fdcc96)