最近のプロジェクトに取り組んでいるときに、顧客の QA 担当者が訪ねてきて、以前はあまり考えていなかった質問をしてきました。
使用しているコンパイラが C コードの機能と正確に一致するマシン コードを生成し、コンパイラが完全に決定論的であることをどのように確認しますか?
この質問に対して、私は常にコンパイラーを当然のことと思っていたので、まったく答えられませんでした。コードを取り込み、マシンコードを吐き出します。コンパイラが要求していない機能を実際に追加していないことをテストするにはどうすればよいですか? または、私が期待するものとはわずかに異なる方法でコードを実装するさらに危険なことはありますか?
これはおそらくすべての人にとって問題ではないことを認識しており、実際、答えは...「あなたはバレルを超えているので、それに対処する」だけかもしれません。ただし、組み込み環境で作業する場合は、コンパイラを暗黙のうちに信頼します。自分が正しいことを自分自身と QA に証明するにはどうすればよいですか?