g ++は重要なビットの損失を検出できますか?
int main()
{
unsigned long l = 0x123456789abcd;
unsigned int i = 0x12345678;
unsigned short s1 = l;
unsigned short s2 = i;
return (s1 + s2);
}
g++ -Wall -Wextra foo.cpp
// 警告なし
gcc バージョン 4.4.6
g ++は重要なビットの損失を検出できますか?
int main()
{
unsigned long l = 0x123456789abcd;
unsigned int i = 0x12345678;
unsigned short s1 = l;
unsigned short s2 = i;
return (s1 + s2);
}
g++ -Wall -Wextra foo.cpp
// 警告なし
gcc バージョン 4.4.6
その明確な名前にもかかわらず、「-Wall」はすべての警告を有効にするわけではありません。「-Wconversion」は、変換の切り捨てを通知します。http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.htmlを参照してください。