C コンパイラの現在のリリースには、次の新機能と変更された機能があります。
ABI の変更により再コンパイルが必要に C コンパイラの変更により、複雑な型が含まれる構造体が 64 ビットモードの SPARC プロセッサで渡されて返される方法が修正されます。以前は、これらの構造体の値は間違ったレジスタで渡されて返され、gcc により作成されるバイナリと互換性がないバイナリが作成されることがありました。この変更は、C コンパイラに実装されている既存の ABI の要素に影響を与えるため、複雑なフィールドを持つ構造体を使用するソースファイルがアプリケーション内にある場合は、間違った応答が返される可能性をなくすため、そのアプリケーションのソースベース全体を再コンパイルする必要があります。32 ビットの SPARC プロセッサ向けと、32 ビットまたは 64 ビットの x86 プロセッサ向けのコンパイルは、この変更の影響を受けません。
SPARC-V9 ISA の SPARC VIS3 バージョンのサポートが追加されました。-xarch=sparcvis3 オプションを使用してコンパイルすると、SPARC-V9 命令セットの命令、UltraSPARC および UltraSPARC-III 拡張機能、積和演算 (FMA) 命令、および VIS (Visual Instruction Set) バージョン 3.0 をコンパイラが使用できるようになります。(「B.2.74 -xarch=isa」)
x86 ベースのシステムに基づく -xvector オプションのデフォルト値が -xvector=simd に変更されました。(「B.2.157 -xvector[= a]」)
AMD SSE4a 命令セットのサポートが -xarch=amdsse4a オプションで使用できるようになりました。(「B.2.74 -xarch=isa」)
-traceback オプションを使用すると、重大なエラーが発生した場合に実行可能ファイルでスタックトレースを出力できます。(「B.2.62 -traceback[={ %none|common|signals_list}]」)
-mt オプションが -mt=yes または -mt=no に変更されています。(「B.2.50 -mt[={ yes|no}]」)
#warning コンパイラ指令により、指令内のテキストが警告として発行され、コンパイルが続行されます。(「2.10 警告とエラー」)
新しいプラグマ does_not_read_global_data、does_not_write_global_data、および no_side_effect が追加されました。(「2.11 プラグマ」)
ヘッダーファイル mbarrier.h を使用できるようになりました。このヘッダーファイルは、SPARC プロセッサと x86 プロセッサでマルチスレッドコードのさまざまなメモリーバリアー組み込み関数を定義します。(「3.9 メモリーバリアー組み込み関数」)
-xprofile=tcov オプションが拡張されて、オプションのプロファイルディレクトリパス名がサポートされるようになりました。また、tcov 互換のフィードバックデータも生成できます。(「B.2.136 –xprofile=p」)
このリリースでは、-xMD オプションと -xMMD オプションにより記述された依存関係ファイルにより、既存のファイルがすべて上書きされます。(「B.2.111 -xMD」)