What are the different types of overflows

Detect integer overflows

kleinermars wrote on September 27, 2005 17:40

> In C / C ++ there is no built-in way to allow integer overflows
> recognize. In order to be able to find something like that portable, I see
> only the option after each operation (except division and modulo)
> to see whether the result corresponds to expectations, i.e. in each case
> is greater or less than the initial value. (If necessary, by macro or
> Template function.)

> Are there any other ideas?

I get a headache with something like that. Horrible headache!

Both operands have the same sign -> overflow is possible
if the signs are different, this is not the case.

Exactly opposite to above, unless the types are unsigned, then
there is an underflow (what a word!) if the subtrahend is larger
the minuend.

Aaargghh! Then divide and see if the other value is there again

And for operations between signed and unsigned, you can
Recreate implicit casts according to the C definition.

Just thinking about it gives me a headache. There is
COBOL cool again!


In all honesty, I would write a class for it and this one
Fill the class with assembly statements for the various compilers.
You have the carry flag at the instruction level. This shows you
such overflow dutifully. And for compilers that are unknown to the source
are, you just write doodles in C.
The whole thing is also daddled, because you have about all the operators
have to recreate, but ... headache!