JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.3: C ユーザーガイド     Oracle Solaris Studio 12.3 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  C コンパイラの紹介

2.  C コンパイラ実装に固有の情報

3.  C コードの並列化

4.  lint ソースコード検査プログラム

4.1 基本 lint と拡張 lint

4.2 lint 使用方法

4.3 lint のコマンド行オプション

4.3.1 -#

4.3.2 -###

4.3.3 -a

4.3.4 -b

4.3.5 -C filename;

4.3.6 -c

4.3.7 -dirout=dir

4.3.8 -err=warn

4.3.9 -errchk=l(, l)

4.3.10 -errfmt=f

4.3.11 -errhdr=h

4.3.12 -erroff=tag(, tag)

4.3.13 -errsecurity=level

4.3.14 -errtags=a

4.3.15 -errwarn=t

4.3.16 -F

4.3.17 -fd

4.3.18 -flagsrc=file

4.3.19 -h

4.3.20 -Idir

4.3.21 -k

4.3.22 -Ldir

4.3.23 -lx

4.3.24 -m

4.3.25 -m32|-m64

4.3.26 -Ncheck=c

4.3.27 -Nlevel=n

4.3.27.1 -Nlevel=1

4.3.27.2 -Nlevel=2

4.3.27.3 -Nlevel=3

4.3.27.4 -Nlevel=4

4.3.28 -n

4.3.29 -ox

4.3.30 -p

4.3.31 -Rfile

4.3.32 -s

4.3.33 -u

4.3.34 -V

4.3.35 -v

4.3.36 -Wfile

4.3.37 -XCC=a

4.3.38 -Xalias_level[=l ]

4.3.39 -Xarch=amd64

4.3.40 -Xarch=v9

4.3.41 -Xc99[= o]

4.3.42 -Xkeeptmp=a

4.3.43 -Xtemp=dir

4.3.44 -Xtime=a

4.3.45 -Xtransition=a

4.3.46 -Xustr={ascii_utf16_ushort| no}

4.3.47 -x

4.3.48 -y

4.4 lint のメッセージ

4.4.1 メッセージを抑制するオプション

4.4.2 lint メッセージの形式

4.5 lint の指令

4.5.1 事前定義された値

4.5.2 指令

4.6 lint の参考情報と例

4.6.1 lint が行う診断

4.6.1.1 整合性の検査

4.6.1.2 移植性の検査

4.6.1.3 疑わしい言語構造

4.6.2 lint ライブラリ

4.6.3 lint フィルタ

5.  型に基づく別名解析

6.  ISO C への移行

7.  64 ビット環境に対応するアプリケーションへの変換

8.  cscope: 対話的な C プログラムの検査

A.  機能別コンパイラオプション

B.  C コンパイラオプションリファレンス

C.  ISO/IEC C 99 の処理系定義の動作

D.  C99 の機能

E.  ISO/IEC C90 の処理系定義の動作

F.  ISO C データ表現

G.  パフォーマンスチューニング

H.  Oracle Solaris Studio C: K&R C と ISO C の違い

索引

4.3 lint のコマンド行オプション

lint プログラムは、静的なアナライザです。そのため、検出した依存性に関する実行時の結果を評価できません。たとえば、特定のプログラム内に到達不可能な break 文が数百個含まれており、それらは重要度が低いにもかかわらず、lint によってフラグが付けられるものとします。たとえば、lint のコマンド行オプションやソーステキスト内にコメントとして埋め込まれる特殊な指令を、次のように使用できます。

lint のオプションを次にアルファベット順に説明します。いくつかの lint オプションは、lint 診断メッセージの抑制に関連しています。アルファベット順の説明のあと、表 4-8 にこれらのオプションとそれが抑制するメッセージの一覧を示します。拡張 lint を呼び出すオプションは -N で始まります。

lint は、-A-D-E-g-H-O-P-U-Xa-Xc-Xs-Xt-Y を含む多くの cc コマンド行オプションを認識しますが、-g-O は無視します。認識されないオプションがあると警告が出され、そのオプションは無視されます。

4.3.1 -#

冗長モードを有効にし、呼び出されるときに各構成要素を表示します。

4.3.2 -###

呼び出すごとに各構成要素を表示しますが、実際には実行しません。

4.3.3 -a

一定のメッセージを抑制します。表 4-8 を参照してください。

4.3.4 -b

一定のメッセージを抑制します。表 4-8 を参照してください。

4.3.5 -C filename;

指定されたファイル名を持つ .ln ファイルを作成します。これらの .ln ファイルは lint の最初のパスだけで作成されます。filename; は絶対パス名でもかまいません。

4.3.6 -c

コマンド行で指定された .c ファイルごとに、lint の第 2 パスに関連する情報からなる .ln ファイルを作成します。第 2 パスは実行されません。

4.3.7 -dirout=dir

lint 出力ファイル (.ln ファイル) を入れるディレクトリを指定します。このオプションは -c オプションに影響を与えます。

4.3.8 -err=warn

-err=warn-errwarn=%all のマクロです。「4.3.15 -errwarn=tを参照してください。

4.3.9 -errchk=l(, l)

l で指定した検査を実行します。デフォルトは、-errchk=%none です。-errchk を指定するのは、-errchk=%all を指定するのと同じです。l は、次の表の 1 つ以上のフラグ (-errchk=longptr64,structarg など) から成るコンマ区切り検査リストです。

表 4-1 -errchk のフラグ

意味
%all
-errchk による検査をすべて実行します。
%none
-errchk による検査を行いません。これはデフォルト値です。
[no%]locfmtchk
printf のような書式文字列を lint の第 1 のパスで検査します。-errchk=locfmtchk を使用するかどうかに関係なく、lint は常に第 2 のパスで printf のような書式文字列を検査します。
[no%]longptr64
long 整数およびポインタのサイズが 64 ビットで標準整数のサイズが 32 ビットの環境への移植性を検査します。明示的なキャストが使用されているときでも、ポインタ式と long 整数式の標準整数への代入を検査します。
[no%]structarg
値渡しされた構造体引数を検査します。仮引数の型が不明の場合は、その旨が報告されます。
[no%]parentheses
コード内の優先順位を明確に検査します。このオプションは、コードの保守性を高めるために使用します。-errchk=parentheses で警告が返された場合は、さらに括弧を使用して、コード内の演算の優先順位を明確に指示することを検討してください。
[no%]signext
符号なし整数型の式における符号付き整数値の符号拡張を、ISO C の通常の値保持規則が認める状態について検査します。このオプションは、-errchk=longptr64 が一緒に指定された場合にはエラーメッセージを出力するだけです。
[no%]sizematch
小さな整数に大きな整数が代入される場合について検査し、警告します。これらの警告は、サイズが同じであっても符号が異なる整数間の代入 (unsigned intsigned int を取得する) についても発行されます。

4.3.10 -errfmt=f

lint 出力の書式を指定します。f には、macrosimplesrctab のいずれか 1 つを指定できます。

表 4-2 -errfmt のフラグ

意味
macro
マクロを展開して、エラーのあるソースコード、行番号、場所を表示します。
simple
エラーのある行番号と場所番号 (大括弧内) を表示し、1 行の (簡単な) 診断メッセージを示します。-s オプションと同様ですが、エラー位置に関する情報が入っています。
src
エラーのあるソースコード、行番号、場所を表示します。マクロは展開しません。
tab
表形式で表示します。これはデフォルト値です。

デフォルトは -errfmt=tab です。-errfmt だけを指定すると、-errfmt=tab を指定するのと同じことになります。

複数の書式を指定すると最後に指定した書式が使用され、lint は使用されない書式について警告を出します。

4.3.11 -errhdr=h

-Ncheck も指定すると、lint でヘッダーファイルの一定のメッセージレポート作成ができます。h には、次の 1 つまたは複数の項目をコンマで区切って指定します。dirno%dir%all%none%user

表 4-3 -errhdr のフラグ

意味
dir
ディレクトリ dir からインクルードされたヘッダーファイル用の -Ncheck のメッセージを報告します。
no%dir
ディレクトリ dir からインクルードされたヘッダーファイル用の -Ncheck のメッセージを報告しません。
%all
使用されているすべてのヘッダーファイルを検査します。
%none
ヘッダーファイルを検査しません。これはデフォルト値です。
%user
使用されているすべてのユーザー定義のヘッダーファイルを検査します。すなわち、/usr/include およびそのサブディレクトリに入っているヘッダーファイルとコンパイラが提供しているヘッダーファイルを除く、すべてのヘッダーファイルを検査します。

デフォルトは -errhdr=%none です。-errhdr だけを指定すると、-errhdr=%user を指定するのと同じことになります。

例:

% lint -errhdr=inc1 -errhdr=../inc2

ディレクトリ inc1../inc2 内で使用されているヘッダーファイルを検査します。

% lint -errhdr=%all,no%../inc

ディレクトリ ../inc 内のものを除き、使用されているすべてのヘッダーファイルを検査します。

4.3.12 -erroff=tag(, tag)

lintエラーメッセージ を抑制または使用可能にします。

t には、次の 1 つまたは複数の項目をコンマで区切って指定します。tagno%tag%all%none

表 4-4 -erroff のフラグ

意味
tag
tag で指定したメッセージを抑制します。-errtags=yes オプションで、メッセージのタグを表示することができます。
no%tag
tag で指定したメッセージを使用可能にします。
%all
すべてのメッセージを抑制します。
%none
すべてのメッセージを使用可能にします。これはデフォルト値です。

デフォルトは -erroff=%none です。-erroff と指定すると、-erroff=%all を指定した場合と同じ結果が得られます。

例:

% lint -erroff=%all,no%E_ENUM_NEVER_DEF,no%E_STATIC_UNUSED

「列挙型が定義されていません」と「静的シンボルが使用されていません」のメッセージだけを出力し、その他のメッセージは抑制します。

% lint -erroff=E_ENUM_NEVER_DEF,E_STATIC_UNUSED

「列挙型が定義されていません」と「静的シンボルが使用されていません」のメッセージだけを抑制します。

4.3.13 -errsecurity=level

-errsecurity オプションを使用して、コードのセキュリティーに問題がないか検査することができます。

level は、次の表に示す値のいずれかでなければいけません。

表 4-5 -errsecurity のフラグ

level の値
意味
core
このレベルでは、たいていの場合で安全でない、または検査することの難しいソースコードの構文がないかどうかを検査します。このレベルで行われる検査には次のものがあります。
  • printf() および scanf() 系の関数での変数書式文字列の使用

  • scanf() 関数における非結合文字列 (%s) 形式の使用

  • 安全な使用法のない関数の使用: gets()cftime()ascftime() creat()

  • O_CREAT と組み合わせた open() の不正使用

    このレベルで警告が生成されるソースコードはバグと考えてください。問題のコードを変更することを推奨します。どんな場合でも、単純明快でより安全な別の方法があります。

standard
このレベルには、core レベルのすべての検査に加えて、安全かもしれないが、より良い別の方法がある構文のすべての検査が含まれます。新しく作成したコードを検査をするときは、このレベルを推奨します。このレベルで追加される検査には、次のものがあります。
  • strlcpy() 以外の文字列コピー関数の使用

  • 脆弱な乱数関数の使用

  • 安全でない関数を使った一時ファイルの生成

  • fopen() を使ったファイルの作成

  • シェルを呼び出す関数の使用

    このレベルで警告を生成するソースコードは、新しいコードまたは大幅に修正したコードに書き換えてください。従来のコードに含まれるこうした警告に対処することと、アプリケーションを不安定にするリスクとのバランスを検討してください。

extended
このレベルには、core および standard レベルのすべての検査など、もっとも完全な検査セットが含まれます。また、状況によっては安全でない可能性がある構文について、多数の警告が生成されます。このレベルの検査は、コードを見直す際の一助になりますが、許容しうるソースコードが守る必要のある基準と考える必要はありません。このレベルで追加される検査には、次のものがあります。
  • ループ内での getc() または fgetc() の呼び出し

  • パス名競合になりがちな関数の使用

  • exec() 系の関数の使用

  • stat() とほかの関数との間の競合

    安全上の潜在的な問題があるかどうかを判定するために、警告を生成するコードをこのレベルで見直してください。

%none
-errsecurity の検査を無効にします。

-errsecurity の値が指定されていない場合は、-errsecurity=%none に設定されます。-errsecurity は指定されているが、引数が指定されていない場合は、-errsecurity=standard に設定されます。

4.3.14 -errtags=a

各エラーメッセージのメッセージタグを表示します。a には yes または no のいずれかを指定します。デフォルトは -errtags=no です。-errtags だけを指定すると、-errtags=yes を指定するのと同じことになります。

すべての -errfmt オプションに使用できます。

4.3.15 -errwarn=t

指定された警告メッセージが表示された場合、lint はエラーステータスを返して終了します。t には、次の 1 つまたは複数の項目をコンマで区切って指定します。tagno%tag%all%none。タグの順番が重要です。たとえば、%all,no%tag は、tag 以外の警告が発行されると、lint が致命的なステータスで終了します。-errwarn の値を次の表に示します。

表 4-6 -errwarn のフラグ

tag の値
意味
tag
tag に指定されたメッセージが警告メッセージとして発行された場合、lint は致命的なエラーステータスで終了します。tag に指定されたメッセージが発行されない場合は無効です。
no%tag
タグに指定されたメッセージが警告メッセージとしてだけ発行された場合に、lint が致命的なエラーステータスで終了することがないようにします。tag に指定されたメッセージが発行されない場合は無効です。このオプションは、tag または %all を使用して以前に指定されたメッセージが警告メッセージとして発行されても lint が致命的なエラーステータスで終了しないようにする場合に使用してください。
%all
警告メッセージが何か発行される場合に lint が致命的なエラーステータスで終了するようにします。%all に続いて no%tag を使用して、特定の警告メッセージを対象から除外することもできます。
%none
どの警告メッセージが発行されても lint が致命的なエラーステータスで終了することがないようにします。

デフォルトは -errwarn=%none です。-errwarn のみを指定することは、-errwarn=%all と同等です。

4.3.16 -F

コマンド行で指定された .c ファイルを参照するとき、そのベース名ではなくコマンド行に与えられたパス名を出力します。

4.3.17 -fd

古い形式の関数定義または宣言について報告します。

4.3.18 -flagsrc=file

ファイル中に格納されたオプションを用いて lint を実行します。ファイルには、1 行に 1 つずつ、複数のオプションを指定できます。

4.3.19 -h

一定のメッセージを抑制します。表 4-8 を参照してください。

4.3.20 -Idir

インクルード用ヘッダーファイルをディレクトリから検索します。

4.3.21 -k

/* LINTED [メッセージ] */ 指令または注釈 NOTE(LINTED(message)) の動作を変更します。通常 lint は、前述のような指令のあとにコードが続く場合、警告メッセージを抑制します。lint は、メッセージを抑制する代わりに、指令または注釈の中のコメントを含むメッセージを出力します。

4.3.22 -Ldir

-l とともに使用し、ディレクトリlint ライブラリを検索します。

4.3.23 -lx

lint ライブラリ llib-lx.ln にアクセスします。

4.3.24 -m

一定のメッセージを抑制します。表 4-8 を参照してください。

4.3.25 -m32|-m64

分析するプログラムのメモリーモデルを指定します。また、選択したメモリーモデル (32 ビットまたは 64 ビット) に対応する lint ライブラリを検索します。

32 ビット C プログラムの確認には -m32 を使用し、64 ビット C プログラムの確認には -m64 を使用します。

ILP32 メモリーモデル (32 ビット int、long、ポインタデータ型) は 64 ビット対応ではないすべての Oracle Solaris プラットフォームおよび Linux プラットフォームのデフォルトです。LP64 メモリーモデル (64 ビット long、ポインタデータ型) は 64 ビット対応の Linux プラットフォームのデフォルトです。-m64 は LP64 モデルに対応しているプラットフォームでのみ許可されます。

以前のリリースのコンパイラでは、メモリーモデル、ILP32 または LP64 は、-Xarch オプションを選択して指定されていました。Oracle Solaris Studio 12 コンパイラからは、この動作は本当ではなくなりました。ほとんどのプラットフォームでは、コマンド行に -m64 を追加するだけで 64 ビットプログラムで lint を実行することができます。

4.3.26 -Ncheck=c

ヘッダーファイル内で対応する宣言を検査し、マクロを検査します。c は、macroextern%all%noneno%macrono%extern の 1 つ以上の項目で構成されるコンマ区切りのリストです。

表 4-7 -Ncheck のフラグ

意味
macro
ファイル間でのマクロ定義の一貫性を検査します。
extern
ソースファイルとそれに関連するヘッダーファイルとの間の宣言の 1 対 1 対応を検査します (たとえば file1.cfile1.h)。ヘッダーファイル内で余分なまたは見つからない extern 宣言がないことを確認します。
%all
-Ncheck のすべての検査を実行します。
%none
-Ncheck の検査を実行しません。これはデフォルト値です。
no%macro
-Ncheck のマクロ検査を実行しません。
no%extern
-Ncheckextern 検査を実行しません。

デフォルトは -Ncheck=%none です。-Ncheck だけを指定すると、-Ncheck=%all を指定するのと同じことになります。

-Ncheck=extern,macro のように、値をコンマで結合してもかまいません。

次の例は、マクロ検査以外のすべての検査を実行します。

% lint -Ncheck=%all,no%macro

4.3.27 -Nlevel=n

拡張 lint 解析のレベルを指定することによって、問題報告の拡張 lint モードを有効にします。このオプションは、検出されるエラーの量の制御を提供します。レベルが高いほど検証にかかる時間は長くなります。n は数値で、1234 のいずれかです。デフォルトはありません。-Nlevel が指定されなかった場合は、lint の基本解析モードが使用されます。引数なしで -Nlevel が指定された場合は、-Nlevel=4 に設定されます。

基本および拡張 lint モードについては、「4.2 lint 使用方法」を参照してください。

4.3.27.1 -Nlevel=1

個々の手続きを解析します。いくつかのプログラムの実行パスで発生する無条件エラーを報告します。大域的なデータおよび制御のフロー解析は行いません。

4.3.27.2 -Nlevel=2

大域的なデータおよびフローを含め、プログラム全体を解析します。いくつかのプログラムの実行パスで発生する無条件エラーを報告します。

4.3.27.3 -Nlevel=3

-Nlevel=2 で実行される解析に加えて、定数の伝播 (定数が実際の引数として使用されている場合) を含め、プログラム全体を解析します。

この解析レベルでの C プログラムの検査は、前述のレベルより 2 倍から 4 倍長い時間がかかります。これは、lint がプログラムの変数に対して取り得る値の集合を作成し、プログラムの部分解釈を行うためです。これらの変数値の集合は、定数と、プログラムで使用可能な定数オペランドを含む条件文に基づいて作成され、ほかの集合 (定数伝播の形式) を作成するときの基準になります。

そのあと、解析の結果として受け取った集合は、次のアルゴリズムに従って誤りがないか評価されます。

4.3.27.4 -Nlevel=4

-Nlevel=3 で実行される解析に加えて、プログラム全体を解析して一定のプログラム実行パスが使用された場合に発生する条件付きエラーも報告します。

この解析レベルでは、さらに多くの診断メッセージが出力されます。一般的に、この解析アルゴリズムは、不正な値に対してエラーメッセージが生成されることを除けば、-Nlevel=3 の解析アルゴリズムと同じです。このレベルでの解析に要する時間は、2 桁ほど増加する可能性があります (約 20 倍から 100 倍遅い)。この場合、余分な所要時間は、再帰や条件文などで特徴づけられるプログラムの複雑さに直接比例します。結果として、100,000 行を超えるプログラムでこのレベルの解析を使用するのは困難である可能性があります。

4.3.28 -n

デフォルトの lint 標準ライブラリとの互換性検査を抑制します。

4.3.29 -ox

lintllib-lx.ln という名前の lint ライブラリを作成します。このライブラリは、lint が第 2 パスで使用する .ln ファイルから作成されます。-c オプションを使用すると、すべての -o オプションが無効になります。不要なメッセージを表示しないで llib-lx.ln を作成するには、-x オプションを使用します。lint ライブラリのソースファイルが外部インタフェースだけである場合は、-v オプションが便利です。作成された lint ライブラリは、あとで lint-lx で呼び出された場合に使用することができます。

デフォルトでは、ライブラリは lint の基本形式で作成されます。拡張 lint モードを使用した場合は、ライブラリは拡張モードで作成されるため、それ以外のモードでは使用できなくなります。

4.3.30 -p

移植性に関連する一定のメッセージを使用可能にします。

4.3.31 -Rfile

cxref(1) で使用する .ln ファイルをファイルに書き込みます。拡張モードがオンに切り替えられている場合、このオプションは無効にします。

4.3.32 -s

「警告:」または「エラー:」で始まる単一の診断メッセージを生成します。デフォルトでは、lint は複合的な出力を生成するためにいくつかのメッセージをバッファリングします。

4.3.33 -u

一定のメッセージを抑制します。表 4-8 を参照してください。このオプションは、大型プログラムのファイルの一部分に対して lint を実行する場合に適しています。

4.3.34 -V

製品名とリリース時期を標準エラーに書き込みます。

4.3.35 -v

一定のメッセージを抑制します。表 4-8 を参照してください。

4.3.36 -Wfile

cflow(1) で使用する .ln ファイルをファイルに書き込みます。拡張モードがオンに切り替えられている場合、このオプションは無効にします。

4.3.37 -XCC=a

C++ 形式のコメントを受け入れます。このオプションを使用すると、// を使用してコメントの始まりを示すことができます。a には yes または no のいずれかを指定します。デフォルトは -XCC=no です。-XCC だけを指定すると、-XCC=yes を指定するのと同じことになります。


注 - -xc99=none を使用する場合のみ、このオプションを指定する必要があります。デフォルトの -xc99=all では、lint は // で指定したコメントを受け入れます。


4.3.38 -Xalias_level[=l ]

このオプションの l は、 anybasicweaklayoutstrictstdstrong のいずれか 1 つです。各レベルの明確化の詳細については、表 B-13 を参照してください。

-Xalias_level を指定しない場合、フラグのデフォルトは -Xalias_level=any です。これは、型に基づく別名解析が実行されないことを意味します。-Xalias_level を指定してもレベルを設定しない場合、デフォルトは -Xalias_level=layout になります。

lint を実行するときの明確化のレベルは、コンパイラを実行するときのレベルよりも緩やかにしてください。明確化のレベルをコンパイルするときのレベルより厳しくして lint を実行すると、結果は解釈するのが困難になり、誤解を招く恐れがあります。

明確化の詳細と、明確化を支援するために作成されたプラグマのリストについては、「4.6.3 lint フィルタ」を参照してください。

4.3.39 -Xarch=amd64

(Solaris オペレーティングシステム) 推奨されていません。使用しないでください。「4.3.25 -m32|-m64を参照してください。

4.3.40 -Xarch=v9

(Solaris オペレーティングシステム) 推奨されていません。使用しないでください。「4.3.25 -m32|-m64を参照してください。

4.3.41 -Xc99[= o]

-Xc99 フラグは、C99 規格 (『Programming Language - C (ISO/IEC 9899:1999)』) からの実装機能に対するコンパイラの認識状況を制御します。

o には、次のいずれかを指定します。allnone

-Xc99=none は、C99 機能の認識を無効にします。-Xc99=all は、サポートされている C99 機能の認識を有効にします。

引数を付けずに -Xc99 を発行すると、-Xc99=all と同じ結果になります。


注 - コンパイラサポートレベルは、表 C-6 でリストしている C99 の機能がデフォルトですが、Oracle Solaris が提供する /usr/include の標準ヘッダーファイルは、1999 ISO/IEC C 規格にまだ準拠していません。エラーメッセージが生成される場合は、-Xc99=none を指定して、前述のヘッダー用に 1990 ISO/IEC C 規格を使用してみてください。


4.3.42 -Xkeeptmp=a

lint の実行中、一時ファイルを自動的に削除せず、作成した状態のままにします。a には yes または no のいずれかを指定します。デフォルトは -Xkeeptmp=no です。-Xkeeptmp だけを指定すると、-Xkeeptmp=yes を指定するのと同じことになります。

4.3.43 -Xtemp=dir

一時ファイルのディレクトリをディレクトリに設定します。このオプションを指定しないと、一時ファイルは /tmp に格納されます。

4.3.44 -Xtime=a

lint パスの実行時間を報告します。a には yes または no のいずれかを指定します。デフォルトは -Xtime=no です。-Xtime だけを指定すると、-Xtime=yes を指定するのと同じことになります。

4.3.45 -Xtransition=a

K&R C と Oracle Solaris Studio ISO C との間の相違について警告を発行します。ayes または no が可能です。デフォルトは -Xtransition=no です。-Xtransition だけを指定すると、-Xtransition=yes を指定するのと同じことになります。

4.3.46 -Xustr={ascii_utf16_ushort| no}

このオプションは、U"ASCII 文字列" 書式の文字列リテラルの認識を unsigned short int の配列として有効にします。デフォルトは -Xustr=no で、U"ASCII 文字列" 文字列リテラルのコンパイラ認識を無効にします。-Xustr=ascii_utf16_ushort は、U"ASCII 文字列" 文字列リテラルのコンパイラ認識を有効にします。

4.3.47 -x

一定のメッセージを抑制します。表 4-8 を参照してください。

4.3.48 -y

コマンド行で指定されたすべての .c ファイルを、/* LINTLIBRARY */ 指令で開始した場合または注釈 NOTE(LINTLIBRARY) が付いている場合と同じように扱います。lint ライブラリは、通常、/* LINTLIBRARY */ 指令または注釈 NOTE(LINTLIBRARY) を使用して作成します。