LINT(1) FreeBSD 一般コマンドマニュアル LINT(1)
名称
lint − C プログラムの検証を行う |
書式
lint [−abceghprvwxzHFV] [−s | −t] [−i | −nu] [−D name[=def]] [−U name] [−I directory] [−d directory] [−L directory] [−l library] [−o outputfile] [−B directory] [−X id[,id ...]] file ... |
lint [−abceghprvwzHFV] [−s | −t] −C library [−D name[=def]] [−U name] [−I directory] [−d directory] [−B directory] [−X id[,id ...]] file ... |
解説 |
lint ユーティリティは、指定された C のプログラムファイルを解析し、バグの 可能性がある部分、移植性がないと考えられる部分、あるいは無駄なコードと考 えられる部分の検出を試みます。加えて、 lint ユーティリティは、C コンパイ ラより厳密な型チェックを行います。 lint は最初のフェーズでシンボル ‘‘lint’’ を定義して C プリプロセッサを起動します。これにより、ある疑わし いコード部分を lint に変更あるいはスキップさせることができます。それゆ え、 lint がチェックする全てのコードにおいては、シンボル lint は予約語と みなすべきです。 現在 lint が指摘する問題点は以下のものです。到達しない文、先頭から入らな いループ、宣言したものの使用しない変数、定数値となる論理式。関数呼び出し に関しては以下のような矛盾点が指摘されます。あるところでは値を返すが別の 場所では値を返さない関数の呼び出し、引数の個数が変化する関数の呼び出し、 関数側で想定していない型の引数を渡す関数呼び出し、返値を使用しない関数呼 び出し、返値のない関数の存在しない返値を使用している関数呼び出し。 ファイル名引数のうち、末尾が .c で終わるものは C のソースファイルとみなさ れます。ファイル名が .ln で終わるものは、以前 lint を −i, −o あるいは −C オプション付きで起動した際の結果を格納したファイルとみなされます。 .ln ファイルは、 cc(1) が .c から生成するオブジェクトファイル .o に相当しま す。 lint ユーティリティはまた、 −l オプションによって指定された特別なラ イブラリを受け付けます。これは、ライブラリ関数と変数の定義を含むもので す。 lint ユーティリティは、全ての .c, .ln ファイルと llib-llibrary.ln (lint ライブラリ) ファイルを受け取り、それらをコマンドラインで指定した順に処理 します。デフォルトでは、 lint は標準 C lint ライブラリ (llib-lc.ln) を ファイルリストの最後に付け加えます。 −i オプションが指定されていれば、 .ln ファイルは無視されます。また、 −o オプションあるいは −i オプションが 指定されていれば、 llib-llibrary.ln ファイルは無視されます。 −i オプショ ンが指定されて いなければ、 lint の 2番目のパスでこのファイルリストが相互 一貫性チェックに用いられます。このとき、もし問題箇所が与えられたソース ファイルからではなくインクルードファイルのひとつに端を発するものならば、 表示されるソースファイル名の後ろに疑問符が付けられます。 特別な入力ファイル名 ‘‘-’’ は、 lint に (ファイルの終端まで) 標準入力から 入力を取らせ、これを .c ファイルとして処理させます。 −i フラグが指定され ‘‘-’’ が入力ファイルの 1 個として指定された場合、出力ファイル名を指定する ために −o フラグもまた指定される必要があります。オプションは次の通りです: |
−a
long 型以外の変数に対する long 値の代入を報告します。 −aa −b −c −e −g −h −i −n −p −r −s −t −u −v −x −z −B path −C library −D name[=def] −I directory −d directory −l library −L directory −F −H −o outputfile −U name −V −w −X id[,id ...] 入力文法 /* ARGSUSEDn */ /* BITFIELDTYPE */ /* CONSTCOND */ 又は /* CONSTANTCOND */ 又は /*
CONSTANTCONDITION */ /* FALLTHRU */ 又は /* FALLTHROUGH */ /* LINTLIBRARY */ /* LINTED [ /* LONGLONG */ /* NOTREACHED */ /* PRINTFLIKEn */ /* PROTOLIBn */ /* SCANFLIKEn */ /* VARARGSn */ −i オプションおよび −o オプションを用いると、ひと組の C ソースファイルに 対してインクリメンタルに lint を適用することが可能です。一般に、各ソース ファイルに対して −i オプション付きで lint を一度起動します。このとき、 .c に対応して .ln ファイルが作成され、それらのソースファイルに関する全ての メッセージが表示されます。全てのソースファイルに対して個別の lint 処理が 済んだ後、全ての .ln ファイルと必要な −l library オプションを付け、( −i オプション無しで) もう一度 lint を起動します。ここでファイル間の一貫性に 関する問題点が表示されます。この方式は make(1) を用いるとうまくいきます。 make(1) を用いると、前回ソースファイルの組が lint された後、修正のあった ファイルに対してのみ lint を起動することができます。 環境変数 |
LIBDIR
−l library オプションで指定されたライブラリが存在するディレクト リ。この環境変数が定義されていない場合は、ライブラリ検索のために デフォルトパスとして /usr/libdata/lint が用いられます。 TMPDIR CC 関連ファイル |
/usr/libexec/lint[12]
プログラム 関連項目 |
作者
Jochen Pohl |
バグ
exit(3) や longjmp(3) および戻って来ない他の関数は正しく理解されません。 これらは様々な不正診断の原因となります。 最初の extern 宣言の前でのみ用いられる static 関数は、未使用であると報告 されます。 −o オプションによって作られたライブラリは、のちの lint 実行で用いた場合、 ライブラリ作成時に報告されたある種のエラーが再度報告され、ライブラリ作成 時に用いたオリジナルのソースファイルの行番号およびファイル名がエラーメッ セージ中に表示されることがあります。そのため、lint ライブラリ作成には −C オプションを用いることを推奨します。 FreeBSD 10.0 May 24, 2001 FreeBSD 10.0 |