loguru
loguru copied to clipboard
Fix compiler warnings on ARM platform
Fix compiler warnings on ARM platform. Was building on a Raspberry Pi 3 running 64-bit Ubuntu.
I guess char defaults to unsigned char on ARM, and it didn't like the implicit double casts.
/XXX/loguru.cpp: In function ‘void loguru::escape(std::string&, const string&)’:
/XXX/loguru.cpp:522:15: error: comparison is always true due to limited range of data type [-Werror=type-limits]
522 | else if (0 <= c && c < 0x20) { // ASCI control character:
| ~~^~~~
/XXX/loguru.cpp: In function ‘void loguru::print_preamble(char*, size_t, loguru::Verbosity, const char*, unsigned int)’:
/XXX/loguru.cpp:1192:21: error: conversion from ‘long int’ to ‘double’ may change value [-Werror=conversion]
1192 | auto uptime_sec = uptime_ms / 1000.0;
| ^~~~~~~~~
/XXX/loguru.cpp: In destructor ‘loguru::LogScopeRAII::~LogScopeRAII()’:
/XXX/loguru.cpp:1443:34: error: conversion from ‘long long int’ to ‘double’ may change value [-Werror=conversion]
1443 | auto duration_sec = (now_ns() - _start_time_ns) / 1e9;
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~
/XXX/loguru.cpp: In function ‘loguru::Text loguru::ec_to_text(char)’:
/XXX/loguru.cpp:1684:14: error: comparison is always true due to limited range of data type [-Werror=type-limits]
1684 | else if (0 <= c && c < 0x20) {
| ~~^~~~
I confirm I also get the error comparison is always true due to limited range of data type with gcc 11 on raspberry pi 3 on lines 518 and 1665