C++ および C 言語用の静的コード アナライザー cppcheck 2.6 のリリース

静的コード アナライザー cppcheck 2.6 の新バージョンがリリースされました。これを使用すると、組み込みシステムに典型的な非標準構文を使用する場合など、C および C++ 言語のコード内のさまざまなクラスのエラーを識別できます。 プラグインのコレクションが提供されており、これを介して cppcheck をさまざまな開発、継続的統合、テスト システムと統合し、コード スタイルへのコードの準拠性をチェックするなどの機能も提供します。 コードを解析するには、独自のパーサーまたは Clang の外部パーサーを使用できます。 また、Debian パッケージの共同コード レビュー作業を行うためのローカル リソースを提供する donate-cpu.py スクリプトも含まれています。 プロジェクトのソース コードは GPLv3 ライセンスに基づいて配布されます。

cppcheck の開発は、未定義の動作や安全性の観点から危険な設計の使用に関連する問題を特定することに重点を置いています。 目標は、誤検知を最小限に抑えることでもあります。 特定された問題には、存在しないオブジェクトへのポインタ、ゼロによる除算、整数オーバーフロー、不正なビット シフト演算、不正な変換、メモリ操作時の問題、STL の不正な使用、null ポインタの逆参照、実際のアクセス後のチェックの使用などが含まれます。バッファへの書き込み、バッファ オーバーラン、初期化されていない変数の使用。

収録曲:

  • 次のチェックがアナライザー コアに追加されました。
    • 関数本体に return 演算子が存在しない。
    • 重複するデータを記録し、未定義の動作を決定します。
    • 比較されている値が型の値表現の範囲外にあります。
    • コピーの最適化は、戻り std::move(local) には適用されません。
    • ファイルを同時に開いて、異なるストリーム (ストリーム) で読み取りと書き込みを行うことはできません。
  • Unix プラットフォームの場合、診断メッセージを異なる色で表示するためのサポートが追加されました。
  • ValueFlow のシンボリック分析を追加しました。 XNUMX つの未知の変数の差を計算するときに単純なデルタを使用します。
  • トークンのリスト「define」に使用されるルールは、#include にも一致します。
  • ライブラリタグタグを含めることができるようになりました、それに応じて、 std::size、std::empty、std::begin、std::end などのコンテナを受け入れることができる無料関数も含まれます。 コネクタのyeldまたはactionを指定できます。
  • ライブラリタグタグを含めることができるようになりました固有の所有権を持つスマート ポインターの場合。 この種のスマート ポインタへのダングリング参照について警告が発行されるようになりました。
  • —cppcheck-build-dir パラメータの処理に関する問題を修正しました。
  • htmlreport で作成者に関する情報を表示できるようになりました (gitblame を使用)。
  • 定数ではないが定数である可能性がある変数に関する拡張警告。
  • アナライザーの蓄積されたエラーと欠点が修正されました。

さらに、修正 2012 および修正 1 を含むミスラ C 2 のチェックは、規則 1.1、1.2、および 17.3 を除いて完全に実装されています。 チェック 1.1 と 1.2 はコンパイラによって実行される必要があります。 検証 17.3 は、GCC などのコンパイラーによって実行できます。

出所: オープンネット.ru

コメントを追加します