c++ で原因不明のバグ

大学の Mac Pro と、手元の MacBook で、同じコンパイラで吐いたバイナリが一方は問題無く動くのに一方は動かず、原因を調べていた。バイナリのサイズが違ったので最初はコンパイラが微妙に違うのかと gcc を再インストールしてみたりしていたが直らなかった。仕様がないので、最適化オプションをいじると、MacBook でも -O で生成したバイナリは問題無く -O2 では問題ありという感じだったので、-O2 で有効になる最適化オプションを手当り次第に -O に追加してみると、-finline-small-functions が有効になっていると segmentation fault になることが分かった。gdb で原因を追った限りでは、ポインタが 0x0 を指すようになるのが原因なのは分かっているのだけど、どうしてそうなるのかさっぱり分からず。インライン展開で変なことになっているのは間違い無いんだけど。
よく調べてみたら、使っているライブラリ(ヘッダファイル)のバージョンが違っていて、これが原因であることが分かった orz ヘッダファイルを合わせたら、バイナリも一緒になった。無駄な一日だった。