a += a; なんて未定義動作にしか見えないんだけど...