次のコード フラグメントを検討してください。
long long someVar64 = 0LL;
int someVar32 = someVar64;
明らかでない場合は、64 ビット値が 32 ビット値に割り当てられ、ビットが失われるという潜在的なバグがあります。この場合、0 の上位ビットは気にしないので問題ありませんが、定数を変更すると、簡単にバグが発生する可能性があります。
GCC (4.4.3) がこのコードに対して警告を生成しないのはなぜですか? 古いバージョンが使用されていたことを思い出します。