メモリオーダリング
*sumの元の値は最初のアクセスの前に上書きされ、代わりに次のような代数的な等価物が得られる。
となり、文の並べ替えにより*sumには全く異なる値が代入されている。
ポインタ式はエイリアシングの影響を受ける可能性があるため、プログラムに目に見える影響を与えることなく再編成することは困難である。一般的なケースでは、エイリアシングの影響はないので、コードは以前のように正常に実行されているように見える。しかしエイリアシングが存在するエッジケースでは、深刻なプログラムエラーが発生する可能性がある。このようなエッジケースが通常の実行では全くないとしても、悪意のある者がエイリアシングが存在する入力を仕組んで、コンピュータ・セキュリティの悪用につながる可能性がある。
先ほどのプログラムを安全に並べ替えると以下のようになる。
最後に、関数呼び出しを追加した間接的なケースを考えてみよう。
コンパイラは、*aと*bをどちらかの関数呼び出しの前に評価することも、*bの評価を関数呼び出しfの後まで延期することも、*aの評価を関数呼び出しgの後まで延期することもできる。もしfやgの実装に、ポインタaやbとのエイリアシングの対象となるポインタの書き込みという副作用が含まれている場合、3つの選択肢は、目に見えるプログラム効果が異なるものになる。