問題タブ [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.
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
?
このリントの問題を免除する他の方法はありますか?
c++ - このリントエラー抑制の試みで何が間違っていますか? そして、より良い方法はありますか?
次のコード行があります。
そして、lint (具体的には Visual Lint 経由の PC-lint) は、メッセージ 1924 を表示します (「C スタイルのキャスト -- より効果的な C++ #2」)。
FT_BITS_8 はサード パーティのヘッダー ファイルで #defined であり、キャストは次の場所にあります。
UCHAR は、別のサードパーティのヘッダー ファイルからの typedef です。
それが割り当てられているもの (ftDCB.ByteSize) は BYTE であり、これは unsigned char の typedef でもあります。
サードパーティのヘッダーを変更したくないので、コードでメッセージを抑制しようとしました:
しかし、同じ 1924 メッセージが表示されます。
ここで何が間違っていますか?そして、私が達成したいことを行うためのよりクリーンな方法はありますか (サードパーティのヘッダーを変更する以外に)?
c++ - テンプレート使用時の PC Lint エラー
以下のコードに対して PC lint アプリケーションを実行すると、エラーが発生します。
行 (1) のエラーは次のとおりです。
エラー 129: 宣言が予期されますが、識別子 '__created' は無視されます
エラー 10: 識別子または他の宣言子
が予期されます エラー 129: 宣言が予期されますが、識別子 'typename' は無視されます
どうすればエラーを取り除くことができますか?
macros - LINT 評価からマクロを除外
LINT を使用して、自動生成された C ソースファイルをチェックしています。これらのソースファイルでは、これらのマクロが使用されています (簡略化):
コードでは、これらのマクロは次のように使用されます。
私の LINT 分析では、次のメッセージが表示されます。
LINT Note 9007: side effects on right hand of logical operator
私のマクロはグローバル変数に値を書き込んでいるので、LINT メッセージ自体は正当化されます。ただし、アーキテクチャ上の理由により、このメッセージを無視できることはわかっています。このため、メモ 9007 のチェックからマクロを除外したいと考えています。自動コード生成を使用しているため、LINT を挿入するのに苦労しています。コメント (Lint メッセージを無効にするため) をソース ファイルの適切な場所に挿入します。よりクリーンなアプローチは、LINT-Ruleset のチェックからマクロを除外することです。そこで、次の行を LINT ルールセットに追加しようとしました。
ただし、マクロ自体のコードはチェックから除外されますが、論理演算子は含まれていない&&
ため、注 9007 が表示されるため、これはうまくいきません。エラーを無効にする方法はありますか?私のマクロに何らかの形で関連するすべてのメッセージに対して?
c++ - PC Lint が、静的メンバ ポインタ変数でのヌル ポインタの使用の可能性を検出しない
シングルトン クラスの静的メンバー関数内では、getInstance() を使用する代わりに、静的ポインター メンバー変数を直接使用しました。
null チェックを行わず、実行時に null だったため、null ポインター例外が発生しました。
PC lint はこれを通知しませんでした。通常、Prio 2 警告として通知されます: null ポインターの使用の可能性。
なぜ私に通知しなかったのですか?
c - PC-Lint: ライブラリ エラーを無視する
PC-Lint を使用して C プロジェクトをリントしています。サードパーティ ライブラリのエラーと警告を無視したいのですが、これを取得できません。マニュアルを読んで、山括弧で指定されたすべての #include ファイルがライブラリと見なされることを確認しました。
[...] このヘッダーをライブラリ ヘッダーと見なしたい場合は、次のように山かっこを使用します。 #include <\include\graph.h>
または、たとえば、-libh コマンドを使用して、ヘッダー ファイルがライブラリであることを示します。
オプション -vf を使用して、ライブラリ ファイルがライブラリとして含まれていることを確認しました。だからすべてがOKです。
問題は、これらのファイルから多くのエラーが発生することです。これらのファイルはライブラリと見なされるため、エラーは無視されると思いました。
ライブラリ ファイルのエラーを無視するにはどうすればよいですか? -wlib(0) を試してみましたが、このオプションはヘッダー ファイルのエラーも無視します。さらに、umcofortable 警告が生成されます。
警告 686: オプション '-wlib(0)' は、'意味のない出力を引き起こす可能性がある' ため疑わしいです。ライブラリ ファイルで構文エラーが発生する場合は、Lint の構成に問題がある可能性が高いことを意味します。
なにか提案を?前もって感謝します