引用: C/C++ セキュアコーディング 第2版 by Robert C. Seacordら
次のコードは加算オペランドについて事前条件の検査を行い、オーバーフローが発生しないことを確認している。
sample.c
signed int si1, si2, sum;
/* si1とsi2を初期化 */
unsigned int usum = (unsigned int)si1 + si2;
if ((usum ^ si1) & (usum ^ si2) & INT_MIN) {
/* エラー処理 */
} else {
sum = si1 + si2;
}