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

c++ - Visual Lint のプロジェクトごとのオプション?

過去に Visual Lint を (PC-lint のフロントエンドとして) 使用したことがあり、プロジェクトごとに別の options.lnt ファイルを使用するように何らかの方法で構成しました。間違っているかもしれない私の記憶では、どのプロジェクトのディレクトリでも「options.lnt」と呼ばれるものを自動的に取得するように構成されていました。つまり、プロジェクトごとに個別に構成する必要はありませんでした。

たとえば、ProjX と ProjY の 2 つのプロジェクトがあり、それぞれに異なる options.lnt ファイルがあるとします。

おそらく、それらは他のファイルに保存されている一般的なオプションの特定のセットを参照している可能性があります。たとえば、非常に一般的なものには C:\MyProjects\Lint\options.lnt があり、特定のパッケージに関連するものにはより具体的なオプション ファイルがあります。たとえば、Boost を使用するプロジェクトで使用する C:\MyProjects\Lint\options_boost.lnt があります。したがって、ProjX が Boost を使用する場合、C:\MyProjects\ProjX\options.lnt には (少なくとも) 次の行が含まれます。

おそらくProjYはBoostを使用しないため、そのoptions.lntには「一般的な」行がありますが、Boost固有の行はありません。

これはすべて正常に機能していましたが、新しいコンピューターに移行したため、再び機能するようには見えません。ProjX に対して Visual Lint を実行すると、(たとえば) C:\MyProjects\Lint\options_boost.lnt のエントリによって抑制されるべきメッセージが表示されます。

Visual Lint の [ツール/オプション] に移動し、[分析] タブで [優先分析方法] を [プロジェクトごと] に設定しました。この機能には Professional エディションが必要だと思います。私はバージョン 5 を使用しています (これが機能していた以前のマシンはバージョン 4 でした)。

Visual Lint がプロジェクトのオプション ファイルに注意を払うようにするために設定する必要がある追加の構成が不足している可能性がありますか?

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

regex - テキストファイルをインデントパターンで処理する

sed と s/regex/../ の組み合わせをいくつか試しましたが、成功しませんでした。だからここに私の質問があります:私はこのようなテキストファイルを持っています(PCLint出力)

結果を次のようなものに変更したい (teamcity サービス メッセージ):

したがって、テキストは「---」ごとに何らかの形でブロックに分割されることを知っています。次に、テキストブロックを正規表現の力でラップ/置換する必要があります。しかし、これを効率的に行う方法がわかりません。理想的には、ツールを「シンプル」に保つために、busybox で利用可能なツール (sed、awk など) を使用するのが好きです (Win64 で作業する必要があります)。

正規表現はうまく機能しますが、これをスコープすることはできませんでした。そこに私のためのヒントはありますか?

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

c - IAR EWARM PC-LINT -header オプションに含まれるヘッダーからのメッセージを禁止する

IAR EWARM 7.4 を使用しています

ここの指示に従いました: http://www.safetycritical.info/library/static/pc-lint/ewb-pclint-v2.pdf

--predef_macros コンパイラ オプションを使用して、コンパイラ定義でいっぱいのヘッダーを作成しました。

iar-co-arm-v6.lnt に以下を追加しました。

そのファイル内から大量の MISRA 違反について不満を漏らします。

編集:行を追加してみました

これにより、多くの MISRA 違反の多くが削減されますが、まだいくつかの違反が発生しています。

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

c - MISRA C 2012はboolを使用しないと言っていますか

私は、新しいプロジェクトのフレームを作成する初期段階にいます。

戻り値の型が「bool」の関数を定義しました

PC-Lint からこの出力を取得しました

私は先に進み、これを別のヘッダーで定義して、lint をシャットダウンしました。

それから、なぜそれをしなければならなかったのか、なぜそれが何かを変えたのか疑問に思い始めました. MISRA 2012 Dir 4.6 に変更しました。主に、short、int、long などのプリミティブ型の幅、それらの幅、およびそれらがどのように署名されているかに関心があります。

標準では、bool の増幅、合理的、例外、または例は示されていません。

bool は、C99 の stdbool.h で _Bool として明示的に定義されています。では、この基準は本当に bool に当てはまるのでしょうか?

C99のセクション6.2.5によると、_Boolは常に明示的に「値0と1を格納するのに十分な大きさの最小の標準符号なし整数型」であると思いました。したがって、bool が署名されていないことがわかります。_Bool が固定幅ではなく、サブジェクトが何らかの形で昇格されているという事実の問題ですか? 理性はその概念と矛盾するように見えるからです。

int 型のサイズによって、式が整数昇格の対象となるかどうかが決まる可能性があるため、このガイドラインを順守しても移植性は保証されません。

置くだけでtypedef bool bool_t;何かが変わるのはなぜですか?bool_t の幅もプラットフォームに依存します。bool を再定義するより良い方法はありますか?

実装された型が実際にその長さでない限り、型を特定の長さで定義してはなりません

したがってtypedef bool bool8_t;、完全に違法であるべきです。

Gimpel の指令 4.6 の解釈は間違っているのでしょうか、それとも的を射ていますか?

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

c++ - Pc Lint + Eigen ライブラリ

私は c++ で PCLint を使用しようとしています。cmake ファイルでインクルード ディレクトリとして定義されている Eigen ヘッダーのみのライブラリを使用しています。次のコマンドを試しました:

問題は、std.lnt に何を書かなければならないのか、lnt が Eigen ライブラリのエラーを無視することを知らないことです。私は試した :

誰でも経験がありますか?

次のような多くのエラーが発生します。

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

c++ - lint エラー「参照の初期化により const/volatile の整合性が失われる」の解決方法

PC-lint で次のエラーが表示されます。

このコードの最後の行を処理するとき:

このエラーが表示される理由と修正方法はどこに_sortedSelectedItemsありstd::vector<SmartPointer<DataItem>> ますか?

編集

このコードは const メンバー関数内にありません。