>>684
でっていう

例えば生成コード上でa = 3がbar +=5の後ろに移動したとしたら、
ソースリスト上でa = 3; の次にあるread modify writeであるbar +=5; のロードが行われないってことになるジャン
これはvolatileな変数を「毎回ロードする」という約束に反する

つまり>681のvolatileの定義は、命令の順番入れかえの禁止も必要条件として要請するから>681だけでおk