Klocwork 2025.3 の新機能

2025 年 9 月発行

Klocwork 2025.3 の主な特長は、以下のとおりです。Klocwork をアップグレードする場合は、アップグレードと使用方法に影響を与える可能性がある項目を制限事項で参照してください。

Klocwork と Validate の機能強化

このリリースには、次の機能強化が含まれています。

Validate と Klocwork の刷新された新しいインターフェイスを探索する

Validate ポータル、インストーラー、Klocwork プラグインを含め、Klocwork インターフェイスと Validate インターフェイス全体で一貫性のある最新のエクスペリエンスが実現されるようにするため、ロゴとアイコンが更新されました。

MISRA 準拠の全体像を一目で把握する

MISRA レポートに以下の改善が加えられました。

  • コンプライアンスレポートの汎用形式の「ルールサマリー」セクションに、マッピングされていないチェッカーも含め、すべてのルールカテゴリが表示されるようになりました。これにより、規格全体に対するコンプライアンスを確認できます。

  • MISRA コンプライアンスレポートには、「適用なし(Disapplied)」と「適用なし(Disabled)」という 2 つの新しいコンプライアンスレベルが追加されました。これらのレベルにより、ルールにマッピングされたすべてのチェッカーが無効化されているインスタンスを特定できます。詳細はMISRA 準拠レベルをご覧ください。

C、C++、および C# の機能強化

このリリースには、次の機能強化が含まれています。

  • KAST チェッカーについて読みやすさとメンテナンス性を向上させるため、KAST 式で (: comment :) 構文を使用して単一行および複数行のコメントがサポートされるようになりました。詳細については、「C/C++ KAST 構文リファレンス」を参照してください。

  • Checker Studio には、最新の IDE に類似した、KAST パターン向けのインテリジェントなコード補完と構文ハイライト機能が追加されました。詳細については、Checker Studio を使用して目的の KAST ノードを検索するをご覧ください。

Java の機能強化

このリリースには、以下の機能強化が含まれています。

  • Java 分析では、プロジェクトの分析時に JDK 1.8 ではなく JDK 15 がデフォルトとなるようになりました。JDK 16 および JDK 17 でコンパイルされたプロジェクトでは、未解決のセマンティックエラーや MIR 生成エラーが減少し、誤検知も減少します。例えば、Android 14 (JDK 17) の分析では大幅な改善が見られます。分析対象の Java バージョンがサポートされていない場合、Java 分析エンジンはデフォルトで最新のサポートされている Java バージョンを使用します。

  • バージョン 2024.2 から 2025.2 におけるバグ追跡機能の不具合は、review_action.py の内部実装を更新することで修正されました。そのため、review_action.py スクリプトを Python 3 に移行する必要があります。

プラグインと拡張機能

Visual Studio プラグインで、分類基準と参照データを直接表示できるようになりました。詳細については、「検出された指摘に関する詳細の表示」を参照してください。

コーディング標準の対象範囲の拡大

このリリースでは、以下のように、CERT C/C++ 分類基準に関する規則と推奨事項の機能強化が図られています。

  • レベル計算が更新されました。
  • 比較を簡素化し、適用を明確にするため、POSIX および Windows 固有の規則が追加されました。

チェッカーの改善

新しいチェッカー

このリリースでは、以下のチェッカーが追加されました:

チェッカー 説明
CXX.ARRAY_INDEX.WITHOUT_CHECK この C/C++ Community チェッカーは、インデックスチェック不要で配列アクセスを検出します。
DBZ.GENERAL.FLOAT

このチェッカーは、ゼロ定数値をローカルで割り当てられた、または関数呼び出しの結果として、変数が、後で、ゼロチェックなしに除算やモジュロ演算の除数として使用される可能性がある状況にフラグを立てます。

DBZ.ITERATOR.FLOAT

このチェッカーは、ループの実行でゼロ定数値を割り当てられたループ反復子が、後で、除算やモジュロ演算の除数として、先にゼロ値がチェックされずに使用される可能性がある状況にフラグを立てます。

変更されたチェッカー

チェッカー 説明
CXX.SUSPICIOUS_INDEX_CHECK チェッカーのさらなる改善
CXX.SUSPICIOUS_INDEX_CHECK.CALL チェッカーのさらなる改善
CXX.SUSPICIOUS_INDEX_CHECK.ZERO 誤検知の検出が少なくなる
DBZ.GENERAL 誤検知の検出が少なくなる
MISRA.MEMB.NON_CONST 誤検知の検出が少なくなる
MISRA.MEMB.NON_STATIC 誤検知の検出が少なくなる
MISRA.VAR.MIN.VIS 追加の欠陥を検出する
MISRA.VAR.NEEDS.CONST 誤検知の検出が少なくなる
NNTS.TAINTED 追加の欠陥を検出する
NPD.GEN.MUST 追加の欠陥を検出する
RETVOID.GEN チェッカーのさらなる改善
STRONG.TYPE.ASSIGN.RETURN 誤検知の検出が少なくなる
VA_UNUSED.INIT 誤検知の検出が少なくなる

有効または無効なチェッカー

このリリースでチェッカー構成ファイルのデフォルトの enabled フィールドに追加されたチェッカーはありません。

分類基準の改善

インストールの一部として、Klocwork チェッカーを MISRA、CWE、OWASP、DISA STIG などのコーディング標準にマップするカスタム分類基準ファイルがいくつか提供されています。

分類基準 改善

autosar_cpp_18_10.tconf および autosar_cpp_18_10_ja.tconf

autosar_cpp_18_10_strict.tconf および autosar_cpp_18_10_strict_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • A5-6-1

cert_c_all.tconf および cert_c_all_ja.tconf

cert_c_rules.tconf および cert_c_rules_ja.tconf

cert_cpp_rules.tconf および cert_cpp_rules_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • INT33-C(L2)

レベル計算が更新されました。

比較を簡素化し、適用を明確にするため、POSIX および Windows 固有の規則が追加されました。

cwe_all_cxx.tconf および cwe_all_cxx_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • CWE-369
hkmc_c.tconf および hkmc_c_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • C-INT-005
iso_iec_ts_17961_c.tconf および iso_iec_ts_17961_c_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • 5.26

misra_c_2012_with_amd2_c90.tconf および misra_c_2012_with_amd2_c90_ja.tconf

misra_c_2012_with_amd2_c99.tconf および misra_c_2012_with_amd2_c99_ja.tconf

misra_c_2012_with_amd2_c11.tconf および misra_c_2012_with_amd2_c11_ja.tconf

misra_c_2023_c90.tconf および misra_c_2023_c90_ja.tconf

misra_c_2023_c99.tconf および misra_c_2023_c99_ja.tconf

misra_c_2023_c11.tconf および misra_c_2023_c11_ja.tconf

misra_c_2025_c90.tconf および misra_c_2025_c90_ja.tconf

misra_c_2025_c99.tconf および misra_c_2025_c99_ja.tconf

misra_c_2025_c11.tconf および misra_c_2025_c11_ja.tconf

以下の規則でチェッカーマッピングを追加または修正しました。

  • Dir.4.1

サポートされているコンパイラへの改善

次のコンパイラのサポートを追加または改善しました。

  • clang

  • QNX

  • GNU C compilers (GCC)

サポートされる C/C++ コンパイラの全リストについては、「ビルド統合でサポートされる C/C++ コンパイラ」を参照してください。

ライセンス

Klocwork は、Reprise License Manager (RLM) をサポートします。

システム要件の変更

以下の環境のサポートが追加されました。

  • AlmaLinux 9.6
  • Amazon Linux 2 (2.0.20250818.2 Update)
  • Android Studio Narwhal (up to 2025.1.2 Patch 1)
  • CLion 2024.3 (up to 2024.3.6), 2025.1 (up to 2025.1.4), and 2025.2
  • Eclipse 4.36 (2025-06)
  • glibc 2.42
  • Google Chrome 129.x to 139.x
  • gradle, gradlew 8.14.3
  • IntelliJ IDEA 2024.3 (up to 2024.3.6)
  • Jenkins 2.479.3 and newer
  • Maven 3.9.11
  • Microsoft Edge 129.x to 139.x
  • Mozilla Firefox 130.x to 142.x
  • Oracle Linux 9.6
  • Red Hat Enterprise Linux 9.6
  • Rocky Linux 9.6
  • SUSE Enterprise 15 SP5 to 15 SP7
  • Ubuntu 24.04.3 LTS
  • Visual Studio 2017 (up to 15.9.76), 2019 (up to 16.11.50), and 2022 (up to 17.14.13)
  • VS Code 1.94.2 to 1.103.1

境のサポートが終了しました。

  • Google Chrome 126.x to 128.x
  • Microsoft Edge 126.x to 128.x
  • Mozilla Firefox 127.x to 129.x
  • VS Code 1.91.1 to 1.93.1

サポート対象のバージョンの完全なリストについては、「システム要件」を参照してください。

2025.4 における Visual Studio 2015 プラグインのサポート終了のお知らせ

Microsoft による Visual Studio 2015 の延長サポート終了に伴い、リリース 2025.4 からは、Visual Studio 2015 について、Visual Studio 用の Klocwork Desktop プラグインがサポートされなくなります。

2025.2 におけるコンプライアンスレポートのコンプライアンスライセンスの削除

リリース 2025.2 以降では、(サマリではなく) 完全なコンプライアンスレポートを生成する際にコンプライアンスライセンスが必要なくなりました。 コンプライアンスレポートの詳細については、「コンプライアンスレポートの作成」を参照してください。

2025.2 における kwmatch ユーティリティの削除

リリース 2025.2 以降では、kwmatch ユーティリティが削除されました。以前のバージョンからアップグレードする場合は、プロジェクト分岐の管理にはストリームを使用し、指摘のプロジェクト間同期には kwxsync を使用することをお勧めします。

以前に特定のプロジェクトで kwmatch を使用してデータベースを作成し、それらのプロジェクトを 2025.2 以降に移行した場合、該当のデータベースは使用されなくなるため、削除することができます。

2025.2 における dbvalidate クリーンアップユーティリティの削除

リリース 2025.2 以降では、dbvalidate クリーンアップユーティリティを直接実行できなくなりました。重複した指摘やコメントを削除するための一部の dbvalidate コマンドは、Klocwork サポートから特に指示があった場合は、引き続き使用することができます。

2025.1 でのストリーム用の別個ライセンスの廃止

リリース 2025.1 以降では、ストリーム用の個別のライセンスは不要になりました。