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

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 の初回受け渡しで検査します。-errchk=locfmtchk を使用するかどうかに関係なく、lint は常に 2 回目の受け渡しで printf のような書式文字列を検査します。

[no%]longptr64

ロング整数、およびポインタのサイズが 64 ビットと標準整数のサイズが 32 ビットの環境への移植性を検査します。明示的なキャストが使用されている場合でも、ポインタ式とロング整数式の標準整数への代入を検査します。 

[no%]structarg

値渡しされた構造体引数を検査します。仮引数の型が不明の場合は、その旨が報告されます。 

[no%]parentheses

コード内の優先順位を明確に検査します。このオプションは、コードの保守性を高めるために使用します。-errchk=parentheses で警告が返された場合は、さらに括弧を使用して、コード内の演算の優先順位を明確に指示することを検討してください。

[no%]signext

符号なし整数型の式における符号付き整数値の符号拡張を、ISO C の通常の値保持規則が認める状態について検査します。このオプションは、-errchk=longptr64 が一緒に指定された場合にはエラーメッセージを出力するだけです。

[no%]sizematch

小さな整数に大きな整数が代入される場合について検査し、警告します。この警告は、サイズが同じであっても、符号が異なる整数間の代入 (unsigned int を signed int になど) についても出力されます。