別の領域を参照しちゃっているんじゃねーの?

あと、初期化して、その後bが変更されることなく、式評価に入ってる場合に
if(b) が if(true) に置き換わって b という変数自体存在しないってこともあるよな。
で、if(true)は常に真だから 最適化で消されてるのかもな