問題タブ [pc-lint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
3370 参照

compiler-construction - Gimpel の PC-lint と Flexelint。使った人いますか?

そこで、いくつかの雑誌の記事と、Gimpel の PC-lint および Flexelint C/C++ コンパイラーの Web サイトを読みました。

(少なくとも私にとっては)本当に高価ですが、コストを正当化するメリットがあるようです。

それで、他の誰かがそれらを使用/購入して、意見を提供できるかどうか疑問に思っていますか?

0 投票する
4 に答える
1383 参照

c++ - pc-lint を使用するための良いヒントはありますか?

pc-lint を使用するためのベスト プラクティスは何ですか?

出力ファイルを読み取り/解析するより良い方法に特に興味があります。

0 投票する
1 に答える
282 参照

static-analysis - Gimpel の PC-lint はダングリング ポインタを追跡できませんか?

最近、さまざまなエラーを見つけるために PC-lint9 を使用していますが、本当に驚きましたが、PC-lint9 はダングリング ポインターをトレースできないようです。ここに、私が調べたコードのスナップショットを示します。

PC-Lint によって検出されたエラーはありません。広告に「ぶら下がっているポインターと初期化されていないポインターの検出」と記載されているため、構成に問題がある可能性があります (エラーを抑制せず、警告レベルを 3 に設定しませんでした)。誰もこれを解決する方法を知っていますか?

0 投票する
2 に答える
2423 参照

c - PC Lint while(TRUE) vs for(;;)

初めて PC Lint を使用しています。PC Lint が私のwhile(TRUE).

これはそれが言うことです:

716: while(1) ... -- while(1) ... という形式の構造が見つかりました。

これは、ブール値を期待するコンテキストでは定数を表しますが、無限ループの前にこの構文を付けるというプログラミング ポリシーを反映している可能性があります。したがって、別の番号が与えられ、情報カテゴリに配置されています。無限ループ プレフィックスのより一般的な形式は for(;;) です。

私はこの声明を理解していませんでした。誰かがそれを理解するのを手伝ってくれますか?

0 投票する
2 に答える
6151 参照

c - PCリントエラー714

CRC8.cにはこの機能があります:

で宣言されCRC8.hていますが、PCLintは次のように返します。

ヘルプによると、714は次のとおりです。

714:シンボル'シンボル'(場所)が参照されていません-指定された外部変数または外部関数が定義されていますが、参照されていません。このメッセージは、ユニットのチェックアウト(-uオプション)では抑制されます。

830は:

830前のメッセージで引用された場所-メッセージ830は、他のメッセージに埋め込まれた場所情報を「標準形」で伝えるための手段です。たとえば、(やや簡略化された)メッセージについて考えてみます。

これには、メッセージのテキストに埋め込まれた場所(「22行目」)が含まれます。埋め込まれた位置情報は、通常、編集者やIDE(インタラクティブ開発環境)では理解されません。IDE(インタラクティブ開発環境)は、名目上の位置(この例では37行目)にしか配置できません。22行目の名目上の位置でこの追加メッセージを追加することにより、ユーザーは次のメッセージにステップアップすることで、この場合、「競合」が何であるかを確認できます。このメッセージと以下のメッセージ831は、メッセージ抑制の通常の規則に従っていません。もしそうなら、オプション-w2を使用して警告レベルを2に下げると、これらのメッセージ(レベル3)も消えます。代わりに、それらは期待どおりに機能し続けます。それらを禁止するには、次のいずれかを使用して明示的にオフにする必要があります。

+e830および+e831を介して復元できます。抑制状態は、-save-restoreオプションを使用して保存および復元できます。-e8*や-e{831}などのオプションは効果がありません。

私はPCLintの初心者であり、Cの比較的初心者なので、この問題の解決には至っていません。

誰かがこの問題で私を助けることができますか?

0 投票する
3 に答える
7902 参照

c - PC Lint警告537:インクルードファイルが繰り返されました

PC Lintからのこの警告に対処するにはどうすればよいですか?

私はいくつかのファイルに#include <GenericTypeDefs.h>。PC Lintは、Warning 537: Repeated include file 'filepath\filename.h'この宣言を削除するとコンパイルできないというメッセージを表示します。

可能であれば、この警告を抑制したいと思います。

あなたはここで報告された同じものを見ることができます。

これは私のコードであり、私のコンパイラは警告を発します:

checksum.h

cryptography.h

crc8.h

明らかに、私は繰り返しませんでし#include <GenericTypeDefs.h>checksum.ccryptography.cそしてcrc8.c

0 投票する
2 に答える
1888 参照

c++ - makeを使用してインクリメンタルPC-Lintを実行するにはどうすればよいですか?

Makeを使用して、GimpelPC-Lintをソースコードに段階的に適用したいと思います。前回lintを実行してからソースファイルが変更された場合にのみ、ソースファイルに対してlintを実行するようにします。誰かこれをやっていますか?どのようにアプローチしていますか?

0 投票する
1 に答える
766 参照

lint - Gimpel の PC Lint バリュー トラッキング

私はこのサイトの初心者なので、ここで質問のエチケットを台無しにしてしまった場合は、事前にお詫び申し上げます... ありがとうございます!

これは非常に単純化されたサンプル コードですが、私が話していることを示していると思います。別のメソッドを呼び出して値をテストする C++ メソッドがあります...

char m_array[MAX]; // class member, MAX is a #define

どこ:validNumber(unsigned int val) { return ((val > 0) && (val <= MAX)); }

私が抱えている苛立ちは、PC Lint の Value Tracking がvalidNumber()呼び出しを無視しているように見え、演算子 '[' による境界外ポインター (データの終わりを超えた 1) への 661 アクセスの可能性があるという警告を出すことです。

ただし、次のようにすると、Lint は満足します。

では、テストがメソッド呼び出しの場合、Lint の Value Tracking は機能しないのでしょうか?

再度、感謝します、

HF

0 投票する
3 に答える
1703 参照

c - ダイレクト レジスタ アドレッシング使用時の PC-Lint エラー

PC-Lint (バージョン 9.0) で受け入れられない既存の C コード (サードパーティのソース、変更できません) があります。コードは組み込み環境で実行され、Green Hills Compiler が使用されます。

コード定義を受け入れるように PC-Lint を構成する方法に関するノウハウはありますか? 構造体の最初のメンバーのエラー メッセージのみを添付しました。

ヘッダーファイルからの定義は次のとおりです。