Compiler Warning (level 2) C4307

'operator' : integral constant overflow

An expression using the specified operator resulted in an integral constant that overflowed the space allocated for it, so it may be necessary to use a larger type to hold the constant. For instance, a signed int holds a smaller value than an unsigned int because the signed int uses one of its bits to represent the sign. If an arithmetic operation overflows the signed int, but can be expressed with an unsigned int, you will get this message.

The following example causes this warning:

int i = 2000000000 + 2000000000;            // warning
int j = (unsigned)2000000000 + 2000000000;  // OK