「GCC 6.1」リリース、C++14がデフォルトに

 GNU ProjectのGCC開発チームは4月27日、「GNU Complier Collection(GCC) 6.1」を公開した。6系初のリリースとなり、C++14がデフォルトとなるなどの変更が加わっている。

 GNU Complier Collection(GCC)はC/C++/Objective-C、Fortran、Java、Ada、Goなどの言語に対応するコンパイラ集。当初GNU Operating System向けのコンパイラとして開発されたという経緯を持つ。

 GCC 6.1は、2015年4月に最初のリリースが公開されたGCC5系に続く最新版となる。5系の最新版は2015年12月に公開された5.3。C++のフロントエンドのデフォルトが、これまでのC++98からC++14に変更された。古いC++向けコードについては明示的に使用するC++標準を指定するか、コードの修正が必要としている。合わせて、SH5/SH64など古いシステムやメンテナンスされていないターゲットなどが非推奨となった。次期版で削除する方向という。

 C/C++コンパイラでOpenMP 4.5がフルサポートされ、Intelの最新Xeon Phi CPU(「Knights Landing」)およびAMDの「HSAIL(Heterogeneous System Architecture Intermediate Language)」へのOpenMPオフロードが可能になった。また、enumeratorの列挙子の属性を利用できるようになっている。

 フィールド名のスペル修正を提案する機能も加わり、新しいコマンドラインオプションも複数追加された。この中には、コードのインデントがわかりにくい場合にそれを警告する「-Wmisleading-indentation」などがある。OpenACC 2.0aのサポートも改善し、Nvidia PTXへのオフロードも可能となった。

 オプティマイザも強化し、イントラの手続き、内部手続き、リンクタイムなどの最適化を改善した。

 ランタイムライブラリであるlibstdc++では、C++17を実験的にサポートした。std::uncaught_exceptionsなどの関数を利用できる。C++ライブラリも拡張され、ISO/IEC 29124:2010標準の数学特殊関数をサポートした。また、File System Technical Specification(TS)も実験的に実装した。Library Fundamentals TSの第2バージョンのほとんどの機能を実験サポートするという。

 このほかにも、各言語やターゲット向けに多数の機能が加わっている。

GCC
https://gcc.gnu.org/