Oracle® Solaris Studio 12.4: C ユーザーガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

7.2.2 lint によるチェック

lint プログラムの -errchk オプションは、64 ビットへの移植でエラーになる可能性のある問題を検出します。cc -v を指定して、より厳密な追加の意味検査を行うようコンパイラに指示することもできます。-v オプションは、指定されたファイルに対してある種 lint に似た検査も有効にします。

コードを拡張して 64 ビット対応にするときは、Oracle Solaris オペレーティングシステムに存在するヘッダーファイルを使用してください。これらのファイルが、64 ビットコンパイル環境用の派生型とデータ構造体の正しい定義を持っているためです。

32 ビットおよび 64 ビットの両方のコンパイル環境用に作成したコードの検査には、lint を使用してください。LP64 の警告を生成するには、-errchk=longptr64 オプションを指定します。また、ロング整数とポインタのサイズが 64 ビットで普通の整数のサイズが 32 ビットの環境への移植性を検査する場合も -errchk=longptr64 フラグを使用してください。-errchk=longptr64 フラグは、明示的な型変換が使用されているときにも、ポインタ式とロング整数式の普通の整数への代入を検査します。

符号なし整数型の式における符号付き整数値の符号拡張を ISO C の通常の値保持規則が認めるコードを検索するには、-errchk=longptr64,signext オプションを使用してください。

Oracle Solaris の 64 ビットコンパイル環境でだけ実行することを意図するコードを検査するときは、lint-m64 オプションを使用してください。

lint の警告は、問題のコードの行番号、問題について説明するメッセージ、ポインタが関係しているかどうかの兆候を示します。また、関係するデータ型のサイズも示します。ポインタが関係していること、データ型のサイズがわかれば、64 ビットの問題を特定し、32 ビットとそれより小さい型の間に以前から存在している問題を避けることできます。

ただし、64 ビット環境でエラーになる可能性のある問題について警告を出すといっても、lint によってすべての問題が検出できるわけではありません。多くの場合、意図したとおりであり、正しいコードであっても、警告は出されます。

行の前に “NOTE(LINTED(“<optional message”>))” の形式のコメントを挿入すると、特定の行に対する警告を抑止できます。このコメント指令は、キャストや代入などの特定のコード行を lint に無視させるときに役立ちます。ただし、現実には存在する問題が隠される可能性があるため、“NOTE(LINTED(“<optional message”>))” コメントを使用するときは、細心の注意を払ってください。NOTE を使用するときには、#include<note.h> をインクルードしてください。詳細は、lint のマニュアルページを参照してください。