gcc -ftrapv 最近のGCC(>=3.x)には-ftrapvというオプションがあって、これを有効にすると「符号あり整数同士の加算・減算・乗算でオーバーフロー/アンダーフローが発生したとき、プロセスをabort()」してくれます。例えば、INT_MAX + 1 とか INT_MIN - 1 とか INT_MIN * (-1) なんて計算をしようとすると、即abort()してくれるようになるわけです*1。符号無し整数の場合はチェックされませんのでご注意。 さて、 int test_trap(int a, int b) { int d = a + b; int e = a - b; int f = d * e; return f; }こんなコードを gcc -ftrapv -fverbose-asm -S すると、 test_trap: pushl %ebp # movl %esp, %