Add -Wconversion compilation flag and fix related warnings (originated by #733) (#734)
* CMakeLists.txt: add -Wconversion flag to CMAKE_CXX_CFLAGS * date.h: fix type conversion warnings Fix type conversion warnings occurring when using -Wconversion flag of gcc * base64.cc: fix type conversion warnings Fix type conversion warnings occurring when using -Wconversion flag of gcc. All the fixes actually convert std::byte to unsigned char for calculation purposes. Provided the number of such static_cast uses, I would reconsider using std::byte as a base data type, as std::byte is defined as "not a character type and is not an arithmetic type ... the only operators defined for it are the bitwise ones". At the same time, most of the fixes do deal with the arithmetics. Reference: https://en.cppreference.com/w/cpp/types/byte * Transport: fix type conversion warnings with Fd Fix type conversion warnings occurring when using -Wconversion flag of gcc. Most of the fixed locations deal with static cast from Polling::Tag to Fd. * stream.cc: fix type conversion warnings Fix type conversion warnings occurring when using -Wconversion flag of gcc. It appears that std::tolower has two different signatures: int tolower( int ch ); and template< class charT > charT tolower( charT ch, const locale& loc ); This commit doesn't replace the calls to tolower() but merely adds static_cast<char> in corresponding locations * listener.cc: fix type conversion warnings Fix type conversion warnings occurring when using -Wconversion flag of gcc. * Fix type conversion warnings Fix type conversion warnings in different files occurring when using -Wconversion flag of gcc * Fix type conversion warnings with OpenSSL with PISTACHE_USE_SSL Fix type conversion (size_t -> int) warnings occurring when using -Wconversion flag of gcc and PISTACHE_USE_SSL is defined OpenSSL 1.1.1 has new functions SSL_read_ex / SSL_write_ex which allow size_t parameter, but 1.0.2 has only SSL_read / SSL_write with int type parameter * Fix type conversion warnings in examples Fix type conversion warnings in examples occurring when using -Wconversion flag of gcc. The commit contains also tests/rest_server_test.cc with the similar fix. One of questionable change types was caused by Http::Endpoint::options()::threads(int val), and was invoked with size_t argument. Maybe it makes sense to modify the function argument type. After this commit, there still remain a lot of -Wconversion warnings in rapidjson library * Fix type conversion warnings in unit tests Fix type conversion warnings in unit tests occurring when using -Wconversion flag of gcc. Co-authored-by: Michael Tseitlin <michael.tseitlin@concertio.com>
Showing
Please register or sign in to comment