Klocwork 2026.2 の新機能

2026年6 月発行

Klocwork 2026.2 の主なハイライトを以下に示します。 をアップグレードする場合は、アップグレードや使用に影響する可能性がある項目について 制限事項 を参照してください。

新機能および機能強化

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

MCP Desktop サーバーで複数の欠陥をクエリ可能に

MCP Desktop サーバーでは kw_list_defects ツールが利用可能になり、複数の欠陥を自然言語でクエリできるようになりました。これまでは ID を指定して単一の欠陥のみ取得できましたが、今後は「このファイル内の重大欠陥をすべて表示して」や「未解決の CERT 問題はいくつあるか」といった依頼にもエージェントが対応できます。

kw_list_defects は、重大度、ステータス、分類、スコープ、ファイルパス、チェッカーコードによるフィルタリングをサポートし、エージェント主導のワークフローに適したサマリー付きの構造化結果を返します。

詳細については、Klocwork 欠陥を一覧表示する を参照してください。

品質ゲート構成の操作性を向上

Validate でプロジェクトを作成または編集するときに、品質ゲートを割り当てられるようになりました。品質ゲートは有効な条件にのみ適用され、未対応の条件は評価時に除外されます。未対応の条件と、実際に適用される品質ゲートパラメータは Validate に表示されます。

詳細については、CI 品質ゲート を参照してください。

MySQL エンティティデータの保存効率を改善

MySQL エンティティデータの保存と読み込みを最適化し、ロード時間の短縮とデータベース使用量の削減を実現しました。効果はプロジェクトによって異なりますが、速度と容量の両方で改善が見込まれます。必要なデータ変換のため、このリリースでは一部のプロジェクト移行に時間がかかる場合があります。

ロード時間の短縮と保存効率の改善

kwadmin set-project-property でプロジェクト設定 skip_entity_signatures=true を指定することにより、プロジェクトでエンティティシグネチャの読み込みをスキップできるようになりました。これにより、ビルドロード性能が向上し、総ディスク使用量も削減されます。

このオプションを有効にすると、エンティティシグネチャは XRef ビューや Complexity Details レポートに表示されず、エンティティ名のみが表示されます。

詳細については、統合プロジェクトとビルドプロパティのリファレンス を参照してください。

IntelliJ IDEA 2025.3.5 までのサポートを追加

Klocwork は IntelliJ IDEA 2025.3(2025.3.5 まで)をサポートするようになりました。RuntimeExceptionWithAttachments が発生したというメッセージが表示される場合がありますが、これはプラグイン構成、解析、欠陥表示には影響しないため無視して問題ありません。

サポートされる Java IDE の詳細については、サポートされる IDE を参照してください。

静的解析の改善

パフォーマンス

今回のリリースでは、以下に関するパフォーマンス改善が含まれています。

  • トレースファイルからビルド仕様への変換を並列処理できる新しいオプション

  • 問題抑制設定(sconf)ファイル

コーディング標準

今回のリリースでは、以下の分類ルールと推奨事項が強化されています。

  • MISRA C:2023 必須ルール(100% カバー)

  • C++ Core Guidelines への新しいコミュニティサポート

チェッカー

新規チェッカー

Checker Description

MISRA.ATOMIC.MEMBER.ACCESS.2023

この MISRA チェッカーは、アトミックオブジェクトの構造体または共用体メンバーへの直接アクセスを検出します。これはアトミック保護を回避し、データ競合を引き起こす可能性があるためです。

MISRA.ATOMIC.VOID.QUALIFIER.2023

この MISRA チェッカーは、不完全型 void に適用された _Atomic 修飾子の使用を検出します。このチェッカーは、モダンエンジンにのみ適用されます。

MISRA.C_SYNTAX.ANONYMOUS.UNION.2012

この MISRA チェッカーは、対象言語の標準 C 構文で許可されていない匿名共用体の使用を検出します。

  • MISRA.C_SYNTAX.ARRAY.ZERO_LENGTH.C90.2012
  • MISRA.C_SYNTAX.ASM.INLINE.2012
  • MISRA.C_SYNTAX.COMPOUND_LITERAL.C90.2012
  • MISRA.C_SYNTAX.CONTROL_FLOW_NESTING.C90.2012
  • MISRA.C_SYNTAX.ENUM.TRAILING_COMMA.C90.2012
  • MISRA.C_SYNTAX.ENUM_CONST_LIMIT.C90.2012
  • MISRA.C_SYNTAX.FOR.VAR_DECL.C90.2012
  • MISRA.C_SYNTAX.INCL.DEPTH_LIMIT.C90.2012
  • MISRA.C_SYNTAX.INCL.EXTRA_TOKEN.2012
  • MISRA.C_SYNTAX.INTEGER_CONSTANT.RANGE.C90.2012
  • MISRA.C_SYNTAX.LONG_LONG.C90.2012
  • MISRA.C_SYNTAX.MACRO_LIMIT.C90.2012
  • MISRA.C_SYNTAX.MEMBER_LIMIT.C90.2012
  • MISRA.C_SYNTAX.MIXED_DECL.C90.2012
  • MISRA.C_SYNTAX.PREP.DIR.NON_STANDARD.2012
  • MISRA.C_SYNTAX.STRUCT.DEPTH_LIMIT.C90.2012
  • MISRA.C_SYNTAX.STRUCT.EMPTY.C90.2012
  • MISRA.C_SYNTAX.CONTROL_FLOW_NESTING.C99.2012
  • MISRA.C_SYNTAX.ENUM_CONST_LIMIT.C99.2012
  • MISRA.C_SYNTAX.INCL.DEPTH_LIMIT.C99.2012
  • MISRA.C_SYNTAX.MACRO_LIMIT.C99.2012
  • MISRA.C_SYNTAX.MEMBER_LIMIT.C99.2012
  • MISRA.C_SYNTAX.STRUCT.DEPTH_LIMIT.C99.2012

これらの MISRA チェッカーは、プログラムに標準 C 構文および制約への違反が含まれ、実装の翻訳限界を超える場合を検出します。

MISRA.CONC.RESOURCE.DESTROY_WHILE_USE.MIGHT.2023

この MISRA チェッカーは、スレッド同期オブジェクトまたはスレッド固有ストレージが、それらにアクセスするすべてのスレッドの終了前に破棄される可能性がある場合を検出します。

MISRA.ETYPE.INAPPR.OPERAND.2023

この MISRA チェッカーは、本質的に複雑な浮動小数点型を関係演算子やインクリメントまたはデクリメント演算子で使用することに対して制限を追加します。このチェッカーは、モダンエンジンにのみ適用されます。

MISRA.MEMORDER.SEQ_CST.2023

このMISRAチェッカーは逐次一貫性のある順序でメモリ同期操作を実行します。

MISRA.MTX_TIMEDLOCK.TYPE.2023

この MISRA チェッカーは、標準ライブラリ関数 mtx_timedlock() が適切な型のミューテックスオブジェクト(mtx_timed または mtx_timed | mtx_recursive)に対してのみ呼び出されることを要求します。

MISRA.STDLIB.MUTEX.DBL_LOCK.2023

これらの MISRA チェッカーは、非再帰ミューテックスが再帰的にロックされる場合を検出します。

MISRA.STDLIB.MUTEX.NO_LOCK.2023

この C チェッカーは、スレッドが以前にロックしていないミューテックスに対してロック解除を行ったり、cnd_wait()/cnd_timedwait() を呼び出したりする場合を検出します。

MISRA.STDLIB.MUTEX.NO_UNLOCK.2023

このMISRAチェッカーはスレッドがミューテックスをロックし、そのミューテックスを明示的にアンロックする前に終了し得るパスを検出します。このような終了はロックがされたままになり未定義の動作を引き起こす可能性があります。

MISRA.THREAD.JOIN.DETACH.2023

この MISRA チェッカーは、スレッドオブジェクトが複数回 join または detach された場合、あるいはそれらの操作が連続して実行された場合を検出します。以前に処理済みのスレッドを再度 join または detach すると未定義動作が発生するためです。

MISRA.THREAD.SYNC.CONDITION.SINGLE_MUTEX.2023

この MISRA チェッカーは、複数スレッドが異なるミューテックスで同じ条件変数を使用した場合の未定義動作を防ぐため、条件変数が最大 1 つのミューテックスオブジェクトにのみ関連付けられることを要求します。

MISRA.THREAD_OBJ.STORAGE.DURATION.2023

この MISRA チェッカーは、自動ストレージ期間またはスレッドストレージ期間を持つ C11 スレッドオブジェクト、同期オブジェクト、およびスレッド固有ストレージポインタを検出します。これらはスレッド実行をまたぐと寿命が無効になり、ダングリングアクセスにつながる可能性があります。このチェッカーは、モダンエンジンにのみ適用されます。

変更されたチェッカー

Checker Description

AUTOSAR.LAMBDA.REF_LIFETIME

チェッカーの誤検知を削減しました。

CXX.ID_VIS.GLOBAL_VARIABLE.*

チェッカーの欠陥マッチング問題を修正し、ストリーム間で ID の不整合が発生しないようにしました。

FUNCRET.GEN

チェッカーの誤検知を削減しました。

INVARIANT_CONDITION.*

チェッカーの誤検知を削減しました。

MISRA.INIT.DESIGNATOR_LIST.2023

チェッカーの誤検知を削減しました。

MISRA.OBJ.FUNC.PARAMS.IDENT.

このチェッカーが原因でリンカー内で発生していた未処理例外を修正しました。

MISRA.THREAD.OBJECT.MUTEX.2023

トレースメッセージを改善しました。

PY3.C0204

チェッカーの誤検知を削減しました。

分類(タクソノミー)

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

Taxonomy Improvements

cpp_core_guidelines_community.tconf および cpp_core_guidelines_community_ja.tconf

C++ Core Guidelines 用の新しい分類を追加しました。

cwe_all_cxx.tconf および cwe_all_cxx_ja.tconf

以下のルールへのチェッカーマッピングを追加または変更しました。

  • CWE-667
  • CWE-832

disa_stig_v5_cxx.tconf および disa_stig_v5_cxx_ja.tconf

以下のルールへのチェッカーマッピングを追加または変更しました。

  • V-222648

misra_c_2012_with_amd2_c11.tconf および misra_c_2012_with_amd2_c11_ja.tconf

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

以下のルールへのチェッカーマッピングを追加または変更しました。

  • Rule 1.1

misra_c_2023_c11.tconf および misra_c_2023_c11_ja.tconf

misra_c_2025_c11.tconf および misra_c_2025_c11_ja.tconf

以下のルールへのチェッカーマッピングを追加または変更しました。

  • Rule 1.1
  • Rule 10.1
  • Rule 11.10
  • Rule 12.6
  • Rule 21.25
  • Rule 21.26
  • Rule 22.11
  • Rule 22.13
  • Rule 22.15
  • Rule 22.16
  • Rule 22.17
  • Rule 22.18
  • Rule 22.19

misra_c_2023_c90.tconf および misra_c_2023_c90_ja.tconf

misra_c_2023_c99.tconf および misra_c_2023_c99_ja.tconf

misra_c_2025_c90.tconf および misra_c_2025_c90_ja.tconf

misra_c_2025_c99.tconf および misra_c_2025_c99_ja.tconf

以下のルールへのチェッカーマッピングを追加または変更しました。

  • Rule 1.1
  • Rule 10.1

perforce_qac.tconf および perforce_qac_ja.tconf

分類名を perforce_qac_c_cpp.tconf および perforce_qac_c_cpp_ja.tconf から perforce_qac.tconf および perforce_qac_ja.tconf に変更しました。

コンパイラ

以下のコンパイラに対するサポートを追加または改善しました。

  • Clang
  • Clang-cl
  • cl(Microsoft Visual Studio コンパイラ)
  • GCC
  • ccac(Synopsys ARC MetaWare コンパイラ)
  • icc, icpc
  • llvm-ar、mcx(Microtec コンパイラ)
  • qdsp-gcc, qdsp-g++, hexagon-gcc, hexagon-g++, qdsp6-gcc, qdsp6-g++(Hexagon)
  • rustc(Rust compiler)

  • Tensilica Xtensa C/C++

サポートされる C および C++ コンパイラの完全な一覧については、ビルド統合でサポートされる C/C++ コンパイラ を参照してください。

ライセンス

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

システム要件の変更

以下の環境のサポートを追加しました。

  • Amazon Linux 2(2.0.20260515.0 Update)

  • Ant 1.10.17

  • CLion 2025.2(2025.2.6.1 まで) 2025.3(2025.3.5 まで) 2026.1(2026.1.2 まで)

  • Debian 12.14、13.0 から 13.5

  • Eclipse 4.39(2026-03)

  • glibc 2.43

  • Google Chrome 137.x から 148.x

  • Gradle 8.14.5

  • IntelliJ IDEA 2024.3(2024.3.7.1 まで)、2025.3(2025.3.5 まで)

  • Java 21

  • Maven 3.9.16

  • Microsoft Edge 137.x から 148.x

  • Mozilla Firefox 140.x から 151.x

  • openSUSE Leap 16.0

  • RHEL 9.8、10.2

  • SUSE Enterprise 16.0

  • Ubuntu 26.04 LTS

  • Visual Studio 2017(15.9.79 まで)、2019(16.11.56 まで)、2022(17.14.33 まで)

  • Visual Studio Code 1.121

以下の環境のサポートを終了しました。

  • Google Chrome 134.x から 136.x

  • Microsoft Edge 134.x から 136.x

  • Mozilla Firefox 136.x から 139.x

  • openSUSE Leap 15.6

  • SUSE Enterprise 15 SP5 から SP6

  • Visual Studio Code 1.100.3

  • Windows 10 v22H2

  • Windows Server 2016

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

非推奨事項

  • リリース 2026.2+: Structure101 のサポートは 2024.3 で終了し、2026.2 で削除されました。

  • リリース 2026.1+: Visual Studio 用 Klocwork プラグインからハイブリッド解析エンジンが削除されました。

  • リリース 2025.4+: Visual Studio 用 Klocwork Static Analysis プラグインは、Microsoft による Visual Studio 2015 の延長サポート終了 に合わせて、Visual Studio 2015 向けの提供およびサポートを終了しました。