Oracle Solaris Studio 12.2: C ユーザーガイド

B.2.19 -features=[v]

次の表に、v の代わりに使用できる値を示します。

表 B–7 -features のフラグ

値 

意味  

[no%]conststrings

読み取り専用メモリー内で文字列リテラルの配置を有効または無効にします。デフォルトは -features=conststrings であり、文字列リテラルを読み取り専用データセクションに配置します。文字列リテラルのあるメモリー上の位置に書き込みを行おうとするプログラムを、このオプションを指定してコンパイルすると、セグメント例外が発生することに注意してください。

extensions

サイズがゼロの構造体または共用体の宣言、および有効な値を返す return 文を持つ void 関数を使用できます。 

extinl

extern インライン関数を大域関数として生成します。これがデフォルトで、1999 C 規格に準拠しています。-features=no%extinl を指定して新しいコードをコンパイルすると、extern インライン関数は、C および C++ コンパイラの古いバージョンで提供されていたのと同じ処理を受けます。

no%extinl

extern インライン関数を静的関数として生成します。 

%none

このオプションを無効にします。 

古い C および C++ オブジェクト (このリリースより前の Solaris Studio コンパイラで作成されたオブジェクト) は、そのオブジェクトの動作変更なしに、新しい C および C++ オブジェクトとリンクできます。規格に適合した動作を実現するには、最新のコンパイラを使って古いコードをコンパイルする必要があります。

-features に値を指定しない場合は、-features=extinl に設定されます。