私たちには、誰も気にしないいくつかのビルドシステムが本番環境にあり、これらのマシンはGCC 3やGCC 2のようなGCCの古いバージョンを実行しています。
そして私はそれをより新しいものにアップグレードするよう経営陣を説得することはできません:彼らは「壊れていなければそれを修正しないでください」と言います。
私たちは非常に古いコードベース(80年代に書かれた)を維持しているため、このC89コードはこれらのコンパイラーで問題なくコンパイルされます。
しかし、私はこれらの古いものを使うのが良い考えだとは思いません。
私の質問は:
古いCコンパイラを使用すると、コンパイルされたプログラムのセキュリティが低下する可能性がありますか?
更新:
同じコードがVisual Studio 2008 for Windowsターゲットによってビルドされ、MSVCはまだC99またはC11をサポートしていません(新しいMSVCがサポートしているかどうかはわかりません)。最新のGCCを使用してLinuxボックスでビルドできます。したがって、新しいGCCをドロップするだけで、おそらく以前と同じように正常にビルドされます。
-O3 -Wall -Wextra -fsanitize=undefined
最新のgccとclangで特定された問題を修正することが役立つはずです。