...
The C Standard [ISO/IEC 9899:2011] defines the behavior of arithmetic on atomic signed integer types to use two's complement representation with silent wrap-around on overflow; there are no undefined results. However, while defined, these results may be unexpected and therefore carry similar risks to unsigned integer wrapping (see INT30-C. Ensure that unsigned integer operations do not wrap). Consequently, signed integer overflow of atomic integer types should also be prevented or detected.
This section only includes an example for the addition of atomic integer types. For other operations, you can use tests similar to the precondition tests for two’s complement integers used for non-atomic integer types.
Noncompliant Code Example
...