問題タブ [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 投票する
2 に答える
556 参照

c++ - スイッチ ケース ラベルの PC 糸くず: MISRA C++ 2008 Required Rule 5-0-12 に違反

//いくつかの static const 変数が定義されています

//スイッチケース

// この "Note 1960: Violates MISRA C++ 2008 Required Rule 5-0-12, Disallowed use of non-numeric value in a case label" に対する PC-lint の苦情

問題は、なぜ PC-lint が static const メンバーを数値と見なさないのかということです。

キャスト ケース ラベルを明示的に入力することをお勧めします (これで解決するはずです)。

ケースのラベルを型キャストする必要があるのはどの型ですか? やるだけuint8_t

このリントの問題を免除する他の方法はありますか?

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

c++ - このリントエラー抑制の試みで何が間違っていますか? そして、より良い方法はありますか?

次のコード行があります。

そして、lint (具体的には Visual Lint 経由の PC-lint) は、メッセージ 1924 を表示します (「C スタイルのキャスト -- より効果的な C++ #2」)。

FT_BITS_8 はサード パーティのヘッダー ファイルで #defined であり、キャストは次の場所にあります。

UCHAR は、別のサードパーティのヘッダー ファイルからの typedef です。

それが割り当てられているもの (ftDCB.ByteSize) は BYTE であり、これは unsigned char の typedef でもあります。

サードパーティのヘッダーを変更したくないので、コードでメッセージを抑制しようとしました:

しかし、同じ 1924 メッセージが表示されます。

ここで何が間違っていますか?そして、私が達成したいことを行うためのよりクリーンな方法はありますか (サードパーティのヘッダーを変更する以外に)?

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

c++ - テンプレート使用時の PC Lint エラー

以下のコードに対して PC lint アプリケーションを実行すると、エラーが発生します。

行 (1) のエラーは次のとおりです。

エラー 129: 宣言が予期されますが、識別子 '__created' は無視されます
エラー 10: 識別子または他の宣言子
が予期されます エラー 129: 宣言が予期されますが、識別子 'typename' は無視されます

どうすればエラーを取り除くことができますか?

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

macros - LINT 評価からマクロを除外

LINT を使用して、自動生成された C ソースファイルをチェックしています。これらのソースファイルでは、これらのマクロが使用されています (簡略化):

コードでは、これらのマクロは次のように使用されます。

私の LINT 分析では、次のメッセージが表示されます。

LINT Note 9007: side effects on right hand of logical operator

私のマクロはグローバル変数に値を書き込んでいるので、LINT メッセージ自体は正当化されます。ただし、アーキテクチャ上の理由により、このメッセージを無視できることはわかっています。このため、メモ 9007 のチェックからマクロを除外したいと考えています。自動コード生成を使用しているため、LINT を挿入するのに苦労しています。コメント (Lint メッセージを無効にするため) をソース ファイルの適切な場所に挿入します。よりクリーンなアプローチは、LINT-Ruleset のチェックからマクロを除外することです。そこで、次の行を LINT ルールセットに追加しようとしました。

ただし、マクロ自体のコードはチェックから除外されますが、論理演算子は含まれていない&&ため、注 9007 が表示されるため、これはうまくいきません。エラーを無効にする方法はありますか?私のマクロに何らかの形で関連するすべてのメッセージに対して?

0 投票する
0 に答える
348 参照

c++ - PC Lint が、静的メンバ ポインタ変数でのヌル ポインタの使用の可能性を検出しない

シングルトン クラスの静的メンバー関数内では、getInstance() を使用する代わりに、静的ポインター メンバー変数を直接使用しました。

null チェックを行わず、実行時に null だったため、null ポインター例外が発生しました。

PC lint はこれを通知しませんでした。通常、Prio 2 警告として通知されます: null ポインターの使用の可能性。

なぜ私に通知しなかったのですか?

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

c - PC-Lint: ライブラリ エラーを無視する

PC-Lint を使用して C プロジェクトをリントしています。サードパーティ ライブラリのエラーと警告を無視したいのですが、これを取得できません。マニュアルを読んで、山括弧で指定されたすべての #include ファイルがライブラリと見なされることを確認しました。

[...] このヘッダーをライブラリ ヘッダーと見なしたい場合は、次のように山かっこを使用します。 #include <\include\graph.h>

または、たとえば、-libh コマンドを使用して、ヘッダー ファイルがライブラリであることを示します。

オプション -vf を使用して、ライブラリ ファイルがライブラリとして含まれていることを確認しました。だからすべてがOKです。

問題は、これらのファイルから多くのエラーが発生することです。これらのファイルはライブラリと見なされるため、エラーは無視されると思いました。

ライブラリ ファイルのエラーを無視するにはどうすればよいですか? -wlib(0) を試してみましたが、このオプションはヘッダー ファイルのエラーも無視します。さらに、umcofortable 警告が生成されます。

警告 686: オプション '-wlib(0)' は、'意味のない出力を引き起こす可能性がある' ため疑わしいです。ライブラリ ファイルで構文エラーが発生する場合は、Lint の構成に問題がある可能性が高いことを意味します。

なにか提案を?前もって感謝します