New flag in gcc 9.1 -Wsign-compare
The flag throws some warninings. Need to correct the thrown instances.
src/xerus/cholmod_wrapper.cpp:265:14: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘long int’ [-Wsign-compare]
265 | REQUIRE(_m < std::numeric_limits<long>::max() && _n < std::numeric_limits<long>::max() && _A.size() < std::numeric_limits<long>::max(),
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/xerus/misc/check.h:56:101: note: in definition of macro ‘XERUS_CHECK’
56 | #define XERUS_CHECK(condition, level, message) XERUS_REQUIRE_TEST; if(XERUS_IS_LOGGING(level) && !(condition)) { XERUS_LOG(level, #condition " failed msg: " << message); } else void(0)
| ^~~~~~~~~
include/xerus/misc/internal.h:36:19: note: in expansion of macro ‘XERUS_REQUIRE’
36 | #define REQUIRE XERUS_REQUIRE
| ^~~~~~~~~~~~~
src/xerus/cholmod_wrapper.cpp:265:3: note: in expansion of macro ‘REQUIRE’
265 | REQUIRE(_m < std::numeric_limits<long>::max() && _n < std::numeric_limits<long>::max() && _A.size() < std::numeric_limits<long>::max(),
| ^~~~~~~
src/xerus/cholmod_wrapper.cpp:265:55: warning: comparison of integer expressions of different signedness: ‘size_t’ {aka ‘long unsigned int’} and ‘long int’ [-Wsign-compare]
265 | REQUIRE(_m < std::numeric_limits<long>::max() && _n < std::numeric_limits<long>::max() && _A.size() < std::numeric_limits<long>::max(),
| ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/xerus/misc/check.h:56:101: note: in definition of macro ‘XERUS_CHECK’
56 | #define XERUS_CHECK(condition, level, message) XERUS_REQUIRE_TEST; if(XERUS_IS_LOGGING(level) && !(condition)) { XERUS_LOG(level, #condition " failed msg: " << message); } else void(0)
| ^~~~~~~~~
include/xerus/misc/internal.h:36:19: note: in expansion of macro ‘XERUS_REQUIRE’
36 | #define REQUIRE XERUS_REQUIRE
| ^~~~~~~~~~~~~
src/xerus/cholmod_wrapper.cpp:265:3: note: in expansion of macro ‘REQUIRE’
265 | REQUIRE(_m < std::numeric_limits<long>::max() && _n < std::numeric_limits<long>::max() && _A.size() < std::numeric_limits<long>::max(),
| ^~~~~~~
src/xerus/cholmod_wrapper.cpp:265:103: warning: comparison of integer expressions of different signedness: ‘std::map<long unsigned int, double>::size_type’ {aka ‘long unsigned int’} and ‘long int’ [-Wsign-compare]
265 | REQUIRE(_m < std::numeric_limits<long>::max() && _n < std::numeric_limits<long>::max() && _A.size() < std::numeric_limits<long>::max(),
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/xerus/misc/check.h:56:101: note: in definition of macro ‘XERUS_CHECK’
56 | #define XERUS_CHECK(condition, level, message) XERUS_REQUIRE_TEST; if(XERUS_IS_LOGGING(level) && !(condition)) { XERUS_LOG(level, #condition " failed msg: " << message); } else void(0)
| ^~~~~~~~~
include/xerus/misc/internal.h:36:19: note: in expansion of macro ‘XERUS_REQUIRE’
36 | #define REQUIRE XERUS_REQUIRE
| ^~~~~~~~~~~~~
src/xerus/cholmod_wrapper.cpp:265:3: note: in expansion of macro ‘REQUIRE’
265 | REQUIRE(_m < std::numeric_limits<long>::max() && _n < std::numeric_limits<long>::max() && _A.size() < std::numeric_limits<long>::max(),