「GCC 10.1」リリース、静的コード解析機能が実験的に導入される
The GNU Compiler Collection(GCC)開発チームは5月7日、最新のメジャーリリースとなる「GCC 10.1」公開を発表した。静的コード解析が実験的に導入され、C++20のサポートも強化した。
The GNU Compiler Collection(GCC)はGNUオペレーティングシステム向けのコンパイラとして開発がスタートしたプロジェクトで、 C/C++やObjective-C、Fortran、Ada、Go、Dなどさまざまな言語に対応するフロントエンドとライブラリを提供する。
GCC 10.1は、2019年5月に公開されたGCC 9.1に続くメジャーリリース。この間、プロジェクトはバージョン管理をSubversionからGitに変更している。
C++20のサポートが、コンパイラとlibstdc++ライブラリの両面で強化されている。constexpr関数における評価されないasm宣言の許可(P1668R1)など、新たに20近くの機能を実装した。また、C言語ではC2Xのサポートに向けて新しい機能のサポートが加わった。
新しいコマンドラインオプションとして、静的コード解析を行う「-fanalyzer」や、不要なnewとdelete演算子のペアを削除する「-fallocation-dce」などが加わった。-fanalyzerはランタイムではなくコンパイラで問題を特定する静的コード解析パスで、実験的扱いとなっている。
ビルトイン関数としては、プリプロセッサ演算子「__has_builtin」を導入、GCCやそのほかのコンパイラのビルトイン関数のサポートをクエリできる。
プロシージャー間の最適化、リンク時間の最適化でも多数の機能が加わった。プロファイル主導の最適化も強化した。
言語では、並列コンピュータ標準OpenACC 2.6のサポートが、C、C++、Fortranの各コンパイラで実現した。並列プログラミングためのAPIであるOpenMP 5.0の仕様についてもサポートを進めた。OpenMPとOpenACCではAMD Radeon GPUへのオフロードが可能になった(第3世代のFijiと第5世代のVEGA 10/VEGA20で使用できる)。
このほか、新しいターゲットやターゲット固有の強化も加わっている。