ポインタ値の関数引数を制限付き (restricted) ポインタとして扱います。f には、%all、%none、あるいは 1 つまたは複数の関数名をコンマで区切ったリストを指定します。例: {%all| %none|fn[,fn...]
関数リストの指定にこのオプションを入れると、指定された関数内のポインタ引数は制限付きとして扱われます。-xrestrict=%all を指定すると、C ファイル全体のすべてのポインタ引数が制限付きとして扱われます。詳細については、「3.8.2 制限付きポインタ」を参照してください。
このコマンド行オプションは独立して使用できますが、最適化時に使用するのがもっとも適しています。たとえば、次のようなコマンドを使用します。
%cc -xO3 -xrestrict=%all prog.c |
このコマンドでは、ファイル prog.c 内のすべてのポインタ引数を制限付きポインタとして扱います。次のようなコマンド行があるとします。
%cc -xO3 -xrestrict=agc prog.c |
このコマンドでは、ファイル prog.c 内の関数 agc のすべてのポインタ引数を制限付きポインタとして扱います。
デフォルトは %none で、-xrestrict と指定すると -xrestrict=%all と指定した場合と同様の結果が得られます。