この節では、Sun Studio 12 Update 1 C++ 5.10 コンパイラリリースで導入された新機能を簡単に説明します。各項目に記されている参照先に詳しい説明があります。
x86 プラットフォーム上の Solaris OS、または Linux OS 上のコンパイラで作成されたオブジェクトファイルは、_m128/_m64 データ型を使用するパラメータまたは戻り値を取る関数がアプリケーションコードの中に含まれている場合は、前のバージョンのコンパイラとは互換性がなくなります。.il インライン関数ファイル、アセンブラコード、またはこれらの関数を呼び出す asm インライン文を使用しているユーザーも、この非互換性に注意する必要があります。
-xtarget の新しい値は、 woodcrest、penryn、nehalem, core2 が x86 プロセッサ用、ultraT2plus と sparc64vii が SPARC プロセッサ用です。
-xarch の新しい値は、 ssse3、sse4_1、sse4_2 が x86 アーキテクチャー用、sparcima が SPARC アーキテクチャー用です。
SPARC プロセッサ用の —xchip の新しい値は、sparc64vii、ultraT2plus です。x86 プロセッサ用の —xchip の新しい値は、core2、penryn、 nehalem です。
-xprofile=collect と -xprofile=use の各オプションは、マルチスレッド化された動的リンクアプリケーションのサポートを改善します。
-xcrossfile=1 オプションは、-xipo=1 オプションの別名になりました。-xcrossfile=0 オプションは、効果がありません。明示的に表記すると、-xcrossfile=1 および -xcrossfile=0 は、-xipo=1 と同等です。
Solaris プラットフォームでは、-xpec[=yes| no] オプションを指定すると、自動チューニングシステム (Automatic Tuning System、ATS) と組み合わせて使用するために再コンパイル可能な PEC バイナリを生成します。
-Y オプションは、i を引数として受け入れません。
SPARC プラットフォームでは、-xdepend オプションは -x03 レベル以上の最適化では暗黙的に有効になり、-fast オプションの展開の中にはもう含まれません。
OpenMP 3.0 のサポートには、libmtsk ライブラリが含まれます。OpenMP プログラムは、Solaris OS 内の libmtsk ライブラリの代わりに、デフォルトでこのライブラリにリンクします。
-xannotate[=yes|no ] (SPARC プラットフォームのみ) は、binopt(1) のようなバイナリ変更ツールでのちに変換できるバイナリを作成するようコンパイラに指示します。
-xia (区間演算) オプションは現在、x86 上の Solaris プラットフォームでサポートされています。
-xipo_archive オプションは現在、x86 上の Solaris プラットフォームおよび Linux プラットフォームでサポートされています。
-Qoption オプションはもう、 ube_ipa を引数として受け入れません。
-fast オプションの展開には、 -D_MATHERR_ERRNO_DONTCARE が含まれます。
並列化警告メッセージを表示する -xvpara オプションがサポートされます。
-sb、-sbfast、-xsb 、および -xsbfast の各オプションは廃止され、削除されています。
-g オプションと、最適化に関する値である -O または -xO のいずれかを指定し、+d を指定しない場合は、コンパイラはコードをインライン化します。
must_have_frame プラグマがサポートされています。
標準 C++ では、switch 文内にある case のラベルに、値を 1 つ関連付けられます。Sun Studio C++ コンパイラでは、case 範囲として知られる、一部のコンパイラに見られる拡張を許可しています。
コンパイラは通常、 /tmp ディレクトリ内に一時ファイルを作成します。TMPDIR 環境変数を設定してほかのディレクトリを指定します。
関数の次の属性がサポートされるようになりました。 _attribute_((const)) _attribute_((constructor)) _attribute_((destructor))
struct と enum 型でのみ、変数の次の属性がサポートされます。 _attribute_((packed))
ユニバーサルキャラクタ名がサポートされます。
ループプラグマがサポートされます。
マクロの variadic (可変) 引数でユーザー定義名がサポートされます。
プリプロセッサのインクルードファイルを指定するための -include filename オプションが追加されました。