simplecpp
simplecpp copied to clipboard
avoid some implicit conversions
This does not change any types. It just makes implicit conversions explicit.
Here's the warnings in question for reference:
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:401:76: warning: implicit conversion loses integer precision: 'int' to 'const unsigned short' [-Wimplicit-int-conversion]
const unsigned short bom = (static_cast<unsigned char>(istr.get()) << 8);
~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:541:55: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32]
lineDirective(location.fileIndex, std::atol(numtok->str().c_str()), &location);
~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:550:35: warning: implicit conversion loses integer precision: 'long' to 'unsigned int' [-Wshorten-64-to-32]
std::atol(numtok->str().c_str()), &location);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:780:20: warning: implicit conversion loses integer precision: 'int' to 'const char' [-Wimplicit-int-conversion]
const char c = std::tolower(tok->str()[0]);
~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:1266:25: warning: implicit conversion loses integer precision: 'unsigned long' to 'unsigned int' [-Wshorten-64-to-32]
return files.size() - 1U;
~~~~~~ ~~~~~~~~~~~~~^~~~
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:2101:35: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wimplicit-int-conversion]
windowsPath = toupper(driveLetter);
~ ^~~~~~~~~~~~~~~~~~~~
/mnt/s/GitHub/simplecpp-fw/simplecpp.cpp:2105:35: warning: implicit conversion loses integer precision: 'int' to 'char' [-Wimplicit-int-conversion]
windowsPath = toupper(driveLetter);
~ ^~~~~~~~~~~~~~~~~~~~
And an example for the warnings with the assertions:
/mnt/s/GitHub/simplecpp-fw/test.cpp:1845:29: warning: implicit conversion loses integer precision: 'std::vector::size_type' (aka 'unsigned long') to 'const unsigned int' [-Wshorten-64-to-32]
ASSERT_EQUALS(1U, files.size());
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~