lvandeve / lodepng

PNG encoder and decoder in C and C++.
zlib License
2.03k stars 420 forks source link

Че за хрень 64 бит компиляция #174

Open UnrealKaraulov opened 1 year ago

UnrealKaraulov commented 1 year ago
1>.\..\src\util\lodepng.cpp(687,54): warning C4334: <<: результат 32-разрядного смещения неявно преобразуется в 64-разрядное значение (предполагалось 64-разрядное смещение?)
1>.\..\src\util\lodepng.cpp(705,35): warning C4267: =: преобразование из "size_t" в "unsigned short"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(706,39): warning C4334: <<: результат 32-разрядного смещения неявно преобразуется в 64-разрядное значение (предполагалось 64-разрядное смещение?)
1>.\..\src\util\lodepng.cpp(730,37): warning C4267: =: преобразование из "size_t" в "unsigned short"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(747,38): warning C4267: =: преобразование из "size_t" в "unsigned short"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(3726,78): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(4729,33): warning C4267: =: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(4998,60): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5003,83): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5004,94): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5005,83): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5006,94): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5007,83): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5008,94): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5009,78): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5204,3): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5228,7): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5262,62): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5279,3): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5301,57): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5332,57): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5445,57): warning C4267: аргумент: преобразование из "size_t" в "unsigned int"; возможна потеря данных
1>.\..\src\util\lodepng.cpp(5559,33): warning C4334: <<: результат 32-разрядного смещения неявно преобразуется в 64-разрядное значение (предполагалось 64-разрядное смещение?)
zvezdochiot commented 1 year ago

Hi @UnrealKaraulov .

Это "кто" такое выдаёт? Определённая логика у данного варнинга конечно есть, но то, что сдвиг приводится к конечному типу (size_t) так и задумывалось. И это чётко видно. С чего это компилятор развопился?

PS: Данные варнинги будут актуальны только для адресов, но никак не для размеров изображений (ежели они не более 65536 x 65536).