-
-
Notifications
You must be signed in to change notification settings - Fork 482
Description
While compiling latest libde265 code using GCC 13.3.0, I see a very large number of warnings coming out with default compilation options. It is a potential security or stability issue to compare signed and unsigned types. At the very least, it is useful to avoid needless warnings:
cd /home/bfriesen/build/libde265/enc265 && /usr/bin/g++ -DHAVE_MALLOC_H -DHAVE_POSIX_MEMALIGN -I/home/bfriesen/src/libde265 -I/home/bfriesen/build/libde265 -I/home/bfriesen/src/libde265/libde265 -O -g -O3 -DNDEBUG -std=c++17 -fPIE -Wall -MD -MT enc265/CMakeFiles/enc265.dir/image-io-png.cc.o -MF CMakeFiles/enc265.dir/image-io-png.cc.o.d -o CMakeFiles/enc265.dir/image-io-png.cc.o -c /home/bfriesen/src/libde265/enc265/image-io-png.cc
In file included from /home/bfriesen/src/libde265/libde265/image-io.h:26,
from /home/bfriesen/src/libde265/enc265/image-io-png.h:30,
from /home/bfriesen/src/libde265/enc265/image-io-png.cc:27:
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘bool de265_image::is_SliceHeader_available(int, int) const’:
/home/bfriesen/src/libde265/libde265/image.h:763:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
763 | return idx >= 0 && idx < slices.size();
| ~~~~^~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘slice_segment_header* de265_image::get_SliceHeader(int, int)’:
/home/bfriesen/src/libde265/libde265/image.h:769:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
769 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘slice_segment_header* de265_image::get_SliceHeaderCtb(int, int)’:
/home/bfriesen/src/libde265/libde265/image.h:776:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
776 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘const slice_segment_header* de265_image::get_SliceHeaderCtb(int, int) const’:
/home/bfriesen/src/libde265/libde265/image.h:783:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
783 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
In file included from /home/bfriesen/src/libde265/libde265/image-io.h:26,
from /home/bfriesen/src/libde265/enc265/enc265.cc:33:
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘bool de265_image::is_SliceHeader_available(int, int) const’:
/home/bfriesen/src/libde265/libde265/image.h:763:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
763 | return idx >= 0 && idx < slices.size();
| ~~~~^~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘slice_segment_header* de265_image::get_SliceHeader(int, int)’:
/home/bfriesen/src/libde265/libde265/image.h:769:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
769 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘slice_segment_header* de265_image::get_SliceHeaderCtb(int, int)’:
/home/bfriesen/src/libde265/libde265/image.h:776:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
776 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘const slice_segment_header* de265_image::get_SliceHeaderCtb(int, int) const’:
/home/bfriesen/src/libde265/libde265/image.h:783:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
783 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
In file included from /home/bfriesen/src/libde265/libde265/decctx.h:32,
from /home/bfriesen/src/libde265/libde265/encoder/encoder-core.h:27,
from /home/bfriesen/src/libde265/enc265/enc265.cc:34:
/home/bfriesen/src/libde265/libde265/dpb.h: In member function ‘de265_image* decoded_picture_buffer::get_image(int)’:
/home/bfriesen/src/libde265/libde265/dpb.h:60:14: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<de265_image*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
60 | if (index>=dpb.size()) return NULL;
| ~~~~~^~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/dpb.h: In member function ‘const de265_image* decoded_picture_buffer::get_image(int) const’:
/home/bfriesen/src/libde265/libde265/dpb.h:65:14: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<de265_image*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
65 | if (index>=dpb.size()) return NULL;
| ~~~~~^~~~~~~~~~~~
In file included from /home/bfriesen/src/libde265/libde265/quality.h:26,
from /home/bfriesen/src/libde265/dec265/dec265.cc:51:
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘bool de265_image::is_SliceHeader_available(int, int) const’:
/home/bfriesen/src/libde265/libde265/image.h:763:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
763 | return idx >= 0 && idx < slices.size();
| ~~~~^~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘slice_segment_header* de265_image::get_SliceHeader(int, int)’:
/home/bfriesen/src/libde265/libde265/image.h:769:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
769 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘slice_segment_header* de265_image::get_SliceHeaderCtb(int, int)’:
/home/bfriesen/src/libde265/libde265/image.h:776:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
776 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/libde265/image.h: In member function ‘const slice_segment_header* de265_image::get_SliceHeaderCtb(int, int) const’:
/home/bfriesen/src/libde265/libde265/image.h:783:13: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<slice_segment_header*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
783 | if (idx >= slices.size()) { return NULL; }
| ~~~~^~~~~~~~~~~~~~~~
/home/bfriesen/src/libde265/dec265/dec265.cc: At global scope:
/home/bfriesen/src/libde265/dec265/dec265.cc:243:17: warning: ‘uint8_t* convert_to_8bit(const uint8_t*, int, int, int, int)’ defined but not used [-Wunused-function]
243 | static uint8_t* convert_to_8bit(const uint8_t* data, int width, int height,
| ^~~~~~~~~~~~~~~
[ 98%] Linking CXX executable dec265