g++ strict overflow, optimization, and warnings
问题 When compiling the following with the strict overflow flag, it tells me, on the 2nd test that r may not be what I think it could be: int32_t r(my_rand()); if(r < 0) { r = -r; if(r < 0) { // <-- error on this line r = 0; } } The error is: /build/buildd/libqtcassandra-0.5.5/tests/cassandra_value.cpp: In function 'int main(int, char**)': /build/buildd/libqtcassandra-0.5.5/tests/cassandra_value.cpp:2341:13: error: assuming signed overflow does not occur when simplifying conditional to constant [