On Sun, Sep 22, 2013 at 10:03 PM, James K. Lowden <jklowden@xxxxxxxxxxxxxxx> wrote: > Regarding the OP's query > >> > int r = ab * bc; > > although the provided example is simple enough, it's the compiler's > job is to generate object code, not to do static analysis. > > Even if the values are const, in the general case they could be > modified by another module or another thread. The compiler simply > doesn't have enough information to warn of every runtime overflow. I believe the CPU overflow flag is updated after most integer arithmetic instructions. Does GCC have any facility for checking this flag after each integer operation? This would be a runtime check, of course, not a compile time check. --Dave