このリリースには以下の拡張が含まれます。

リリース日: 2025年05月28日

Automotive Compliance パックの拡張

  • このリリースでは、最近発行された MISRA C:2025 コーディング ガイドラインの完全サポートが導入されました。
  • MISRA C:2025 コーディング ガイドラインをサポートする MISRA C:2025 テスト コンフィギュレーションが新しく追加されました。このコンフィギュレーションを使用すると、「 Guidelines for the use of the C language in critical systems (MISRA C:2025)」コーディング標準を完全に適用することができます。

Security Compliance パックの拡張

Common Weakness Enumeration (CWE) ルール セットが拡張され、60 以上の新しい CWE に対応するルール マッピングが追加されました。

AI アシスタント

C/C++test で新しく AI アシスタントが利用できるようになりました。製品に関して自然言語で質問すると、AI アシスタントがドキュメントおよび事前に設定された LLM プロバイダーとの統合に基づいて回答します。AI アシスタントを使用すると、新規ユーザーも既存ユーザーも製品について知ることができ、より効率的に支援を得ることができます。AI アシスタントにアクセスするには、デスクトップで [Parasoft ] > [ビューの表示] > [AI アシスタント] をクリックします。詳細については「AI アシスタント」を参照してください。

静的解析の拡張

  • 新しいテスト コンフィギュレーション オプション [同等のルールの違反を自動的に抑制する] が追加されました。このオプションにより、同等なルールの違反に既存の抑制を自動的に適用できるため、複数のコーディング標準に対処したり、1 つの標準から別の標準に移行したりするのが容易になります。詳細は「同等のルールの違反を自動的に抑制する」を参照してください。
  • 新規コード解析ルールが追加され、より広くコンプライアンス規格がカバーされるようになりました。新規ルールの一覧は「新規ルール」を参照してください。
  • 静的解析ルールが更新され、レポートされる違反がより正確になりました。更新されたルールの一覧は「更新されたルール」を参照してください。
  • フロー解析のパフォーマンスが向上しました。
  • コード解析エンジンが拡張され、モダン C/C++ 構文のサポートが改善されました。

コード カバレッジの拡張

サポート対象コンパイラ

以下のコンパイラがサポートされています。

コンパイラ名コンパイラ識別子
ARM Compiler 6.22armclang_6_22
Clang C/C++ Compiler v 19.0 (aarch64)clang_19-aarch64
Clang C/C++ Compiler v 19.0 (x86_64)clang_19-x86_64
GNU GCC 12.x (arm/aarch32)gcc_12-aarch32
GNU GCC 13.x (arm/aarch32)gcc_13-aarch32
GNU GCC 14.x (arm/aarch32)gcc_14-aarch32
GNU GCC 14.x (aarch64/arm64)gcc_14-aarch64
GNU GCC 14.x (x86_64)gcc_14-64
Hexagon Clang Compiler v. 19hexagon-clang_19
Intel C/C++ Compiler 2021.6 (x86_64)intelicc_2021_6
Intel oneAPI C/C++ Compiler 2022.1 (x86_64)intelicx_2022_1

サポート対象コンパイラ」を参照してください。

IDE のサポート

以下の IDE がサポートされています。

  • Eclipse 4.34 (2024-12)
  • Eclipse 4.35 (2025-03)

追加または更新されたテスト コンフィギュレーション

以下のテスト コンフィギュレーションが追加されました。

  • MISRA C 2025

以下のテスト コンフィギュレーションに新規ルールが追加されました。

  • AUTOSAR C++14 Coding Guidelines
  • CWE Top 25 + On the Cusp 2022
  • CWE Top 25 + On the Cusp 2023
  • CWE Top 25 2022
  • Joint Strike Fighter
  • MISRA C 2004
  • MISRA C 2023 (MISRA C 2012)
  • MISRA C++ 2008
  • MISRA C++ 2023

プラットフォームのサポート

以下のプラットフォームがサポートされました。

  • Windows Server 2025

その他のアップデート

  • リモートの場所から設定をインポートできるようになりました。詳細は「設定のインポート」および「-settings」を参照してください。
  • Bazel 統合パッケージが改善されました。
  • 違反を抑制する際、抑制コメントまたは抑制レコードに <rule-id>-<severity> というパターンで指定された重要度 (例: BD-PB-NP-3) が考慮されるようになりました。違反の重要度が抑制パターンで指定された重要度と一致する場合、またはそれより低い場合、違反は抑制されます。ルールの重要度が上がった場合、既存の抑制は適用されなくなります。
  • FIPS 140-3 に準拠するよう C/C++test を構成できるようになりました。

サポートの非推奨および廃止

非推奨のテスト コンフィギュレーション

以下のルール カテゴリおよび対応するビルトイン テスト コンフィギュレーションは非推奨になり、今後のリリースで削除される予定です。

  • MISRA C 1998
  • MISRA C 2004
  • MISRA C 2012 (Legacy)

非推奨になったオペレーティング システム

次の OS のサポートは非推奨になりました。

  • Windows 10

非推奨予定のコンパイラ

次のコンパイラのサポートは、将来のリリースで非推奨になる予定です。

  • GNU GCC 7.x
  • GNU GCC 7.x (x86_64)
  • IAR Compiler for ARM v. 8.20x
  • IAR Compiler for ARM v. 8.22x
  • Renesas RX C/C++ Compiler 2.5x
  • TI ARM C/C++ Compiler v18.1
  • Wind River Clang 8.0.x

非推奨のコンパイラ

次のコンパイラのサポートは非推奨であり、将来のリリースで削除される予定です。

  • ARM Compiler 6.9
  • Clang C/C++ Compiler v 8.0 (x86_64)
  • Clang C/C++ Compiler v 10.0 (x86_64)
  • Green Hills Software Compiler for ARM v. 2017.5.x
  • Green Hills Software Compiler for ARM64 v. 2017.5.x
  • Green Hills Software Compiler for PPC v. 2017.1.x
  • Hexagon Clang Compiler v. 8.4.x
  • IAR Compiler for ARM v. 8.11.x
  • Microchip MPLAB C32 Compiler for PIC32 v2.0x
  • QNX GCC 5.x
  • QNX GCC 5.x (ARM)
  • QNX GCC 5.x (ARM64)
  • QNX GCC 5.x (x86-64)
  • TI ARM C/C++ Compiler GNU GCC 7.x

廃止されたコンパイラ

以下のコンパイラはサポートされなくなりました。

  • GNU GCC 4.9.x (mips64el)
  • Green Hills Software Compiler for PPC v. 2013.1.x
  • IAR Compiler for MSP430 v. 6.1x
  • Microchip MPLAB C30 Compiler for dsPIC v3.2x
  • National Instruments LabWindows/CVI 2015 Clang C/C++ Compiler v3.3 for Win32

解決済みのバグおよび FR

バグ/FR ID

説明

CPP-44863

[engine] Microsoft の 2 フェーズ ルックアップのエミュレーションが誤っている

CPP-53006

[static] 初期化子リストで typedef が使用されている場合、GLOBAL-UNUSEDTYPE (MISRA2008-0_1_5) が違反を誤検出する

CPP-53020

[static] AUTOSAR-M0_1_3 (MISRA2008-0_1_3_b) のマッピングを改善する

CPP-57853

[engine] va_list AARCH64 で再構築されないプロパティ

CPP-57896

[engine] カバレッジ セットアップの問題 - 競合する関数 (同じ関数が C としてコンパイルされた場合と C++ としてコンパイルされた場合で IL ツリーが異なる)

CPP-58059

[static] MISRA C 2012 Rule 11.9 のマッピングを改善する

CPP-58200

[static] MISRAC2012 Dir 4.3 のマッピングの改善

CPP-58298

[static] MISRACPP2023-7_0_1-a は std::atomic std::atomic に暗黙的なコンストラクターがあるにもかかわらず <bool> オブジェクトのコンストラクトに対して違反をレポートするべきではない

CPP-58306

[static] CODSTA-CPP-43 (MISRACPP2023-10_1_1-c) が非 const オブジェクトを初期化するパラメーターに対して違反を誤検出する

CPP-58606

[static] MISRA2004-19_16 (MISRAC2012-RULE_20_13) がバックスラッシュの後の '##' に対して違反を誤検出する

CPP-58613

[engine] cpptesttrace が次のエラーで失敗する。 ERROR: ld.so: object '.../libcpptesttrace64.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

CPP-58633

[static] CERT_C-DCL31 のサポートを改善する

CPP-58645

[static] MISRA-004_a rule の実装およびドキュメントを改善する

CPP-58677

[engine] error: call to consteval function did not produce a valid constant expression

CPP-58701

[engine] error: static assertion failed static_assert(!std::is_move_constructible_v<non_movable_tagged_tuple>);

CPP-58755

[engine] 静的カバレッジ データの収集時に競合する関数が検出された

CPP-58772

[engine] インストゥルメントされたコードがコンパイルできない (誤った初期化子)

CPP-58780

[static] asm コードを含む関数で無名のパラメーターが宣言されている場合、OPT-38 が python エラーをレポートする

CPP-58793

[engine] パーミッションが拒否された: ./.cpptest/cpptestcc/.../.lock

CPP-58810

[bazel] include ディレクティブ内の空白でエラー

CPP-58820

[coverage] フォークされたプロセスからのコード カバレッジ収集を改善する

CPP-58823

[static] 配列の次元が何らかの型にキャストされている場合、MISRA2004-9_2_b (MISRAC2012-RULE_9_3-a) が違反をレポートしない

CPP-58828

[static] 'if constexpr' ブロック内でローカル変数が使用されている場合、OPT-01 (MISRA2008-3_4_1_a) が違反を誤検出する

CPP-58829

[engine] 解析エラー: no instance of constructor "InputFilter" matches the argument list

CPP-58853

[engine] AMX Intrinsic を使用する未定義のリファレンス

CPP-58856

[engine] インストゥルメント コンパイル エラー: 'constexpr const char FOO::foo_name 4' is private within this context

CPP-58857

[static] CODSTA-CPP-78 (MISRA2008-9_3_3) がクラス データを変更する関数に対して違反を誤検出する

CPP-58861

[static] 戻り値がデストラクターの呼び出しで 'new' 演算子のオペランドとして使用されている場合、CODSTA-CPP-58 (MISRACPP2023-0_1_2-a) が違反を誤検出する

CPP-58864

[static] MISRACPP2023 Rule 11.3.1 のマッピングの改善

CPP-58909

[static] 関数ポインターではなく関数ポインターへの参照が使用されている場合、CODSTA-CPP-96 (CERT_CPP-EXP56-a) が違反をレポートしない

CPP-58920

[static] MISRA-043_c (CERT_C-FLP36-a) が集約型初期化子に対して違反を誤検出する

CPP-58946

[static] 単純または複合代入演算子以外の式で整数定数が暗黙的に 'long' 型にキャストされている場合、PORT-08 が違反をレポートしない

CPP-58952

[engine] 高階関数で SCA 解析エラー

CPP-58953

[engine] テンプレート メソッドに対してスタブを作成すると、(ユーザー コードではなく) テスト ケースでだけインスタンス化された場合、複数定義につながる

CPP-58955

[engine] clang の __builtin_neon 拡張に関するコンパイラ構成を改善する

CPP-58957

[static] MISRA2004-2_4 (MISRAC2012-DIR_4_4-a) 複数の連続するコメントで解析がハングする

CPP-58964

[static]CODSTA-MCPP-04 (MISRACPP2023-7_11_1-a) がラムダ内のメンバー変数への代入に対して違反を誤検出する

CPP-59002

[engine] cpptestcc: error when -O2 is used: undefined reference to `_open_missing_mode' and `_open_too_many_args'

CPP-59007

[static] MISRACPP2023-0_2_2 - 未使用パラメーターに対する違反の誤検出

CPP-59080

[static] INIT-06 ルールを拡張する

CPP-59090

[engine] テンプレートでのインストゥルメント エラー - has no member

CPP-59117

[engine] error: 'auto' parameter not permitted in this context

CPP-59118

[engine] error: 'struct hardware::hamr_sync_interface::LocalDatabase::SampleContainerMetadata' is protected within this context

CPP-59185

[compiler] Clang ベースのコンパイラで C++ モードでの C 言語モード コンパイラ オプションのキャプチャを可能にする

CPP-59191

[bazel] cpptest run コマンドがサポートしていない --symlink_prefix Bazel 引数

CPP-59198

[engine] #pragma GCC unroll がある関数に対する C/C++test のインストゥルメンテーションを無効化するオプションの追加

CPP-59578

[compiler] Floating-point flags of GHS ツールチェーンの浮動小数点フラグがリンクに伝播されない

CPP-59580

[static] MISRACPP2023-7_0_3-a ルールの違反誤検出

CPP-59594

[engine] internal error: assertion failed at: "decl_inits.c" 7038 in def_initializer

CPP-59602

[engine] インストゥルメンテーション エラー: Program received signal 11

CPP-59603

[engine] インストゥルメンテーション エラー: Template-Based Span Constructor Fails with cpptestcc

FA-10031

BD-PB-LIFETIME の違反誤検出

FA-10061

std::shared_ptr::get() メソッドの不適切な処理の結果 BD-PB-NP が違反を誤検出する (MSVC の場合)

FA-10078

constexpr 関数が constexpr コンテキストでだけ使用されている場合、MISRACPP2023-0_2_4-a (BD-PB-UCMETH) が違反を誤検出する

FA-10104

BD-PB-CC の結果の不一致

FA-10214

まったく errno を設定していないユーザー定義の time() 関数に対して CERT_C-ERR33-d が違反を検出する

FA-10235

BD-TRS-REVLOCK の違反誤検出の可能性

FA-10244

BD-PB-VOVR がループ内で更新され、1 回だけ処理される変数に対して違反を誤検出する

FA-10252

あらかじめ非ゼロ終端値で完全に置換された配列の要素としてゼロが代入された場合、BD-PB-OVERFNZT が違反を誤検出する

FA-10255

BD-SECURITY-TDINTOVERF の違反誤検出 - modulo 演算の結果の可能な範囲が不明

ルールの更新

新規ルール

ルール ID

ヘッダー

AUTOSAR-M5_2_9-b

ポインター型から数値型への変換を行うべきではない

CODSTA-128_b

void へのポインターをオブジェクトへのポインターに変換してはならない

CODSTA-223_d

標準の浮動小数点型の名前を使用するべきではない

CODSTA-245

ヘッダー ファイルに仮定義があってはならない

CODSTA-246

外部リンケージを持つオブジェクトはファイル スコープで宣言するべきである

CODSTA-247

外部リンケージを持つ関数を実装ファイルで宣言するべきではない

CODSTA-318

関数の可変長パラメーターに引数を渡すことで引数の型が暗黙的に変わるべきではない

CODSTA-319

'assert' マクロを使用した結果として 'abort' 関数が呼び出されるべきではない

CODSTA-320

ポインターを暗黙的に NULL と比較してはならない

CODSTA-321

数値型からポインター型への変換を行うべきではない

CODSTA-322

ポインター型から数値型への変換を行うべきではない

CODSTA-CPP-214

パラメーターが overload-independent ではない場合、関数呼び出しの引数とパラメーターは同じ型であるべき

CWE-121-a

配列の境界を超えてアクセスしてはならない

CWE-121-b

範囲外の配列およびポインターへのアクセスを避ける

CWE-121-c

不正な書式指定子によるバッファー オーバーフローを避ける

CWE-121-d

バッファーからの読み取り時のオーバーフローを避ける

CWE-121-e

バッファー書き込み時のオーバーフローを避ける

CWE-121-f

汚染されたデータを配列添え字として使用しない

CWE-121-g

汚染されたデータによるバッファー オーバーフローを避ける

CWE-121-h

汚染されたデータによるバッファー読み込み時のオーバーフローを避ける

CWE-121-i

汚染されたデータによるバッファー書き込み時のオーバーフローを避ける

CWE-121-j

コピー元バッファーのサイズをチェックしていない、疑わしい strcpy の使用

CWE-121-k

パス操作関数を使用するときは、出力バッファーに十分な大きさがあることを確認する

CWE-121-l

コレクションの境界外にアクセスしてはならない

CWE-122-a

配列の境界を超えてアクセスしてはならない

CWE-122-b

範囲外の配列およびポインターへのアクセスを避ける

CWE-122-c

不正な書式指定子によるバッファー オーバーフローを避ける

CWE-122-d

バッファーからの読み取り時のオーバーフローを避ける

CWE-122-e

バッファー書き込み時のオーバーフローを避ける

CWE-122-f

汚染されたデータを配列添え字として使用しない

CWE-122-g

汚染されたデータによるバッファー オーバーフローを避ける

CWE-122-h

汚染されたデータによるバッファー読み込み時のオーバーフローを避ける

CWE-122-i

汚染されたデータによるバッファー書き込み時のオーバーフローを避ける

CWE-122-j

コピー元バッファーのサイズをチェックしていない、疑わしい strcpy の使用

CWE-122-k

パス操作関数を使用するときは、出力バッファーに十分な大きさがあることを確認する

CWE-122-l

コレクションの境界外にアクセスしてはならない

CWE-124-a

配列の境界を超えてアクセスしてはならない

CWE-124-b

範囲外の配列およびポインターへのアクセスを避ける

CWE-124-c

不正な書式指定子によるバッファー オーバーフローを避ける

CWE-124-d

バッファー書き込み時のオーバーフローを避ける

CWE-124-e

汚染されたデータを配列添え字として使用しない

CWE-124-f

汚染されたデータによるバッファー オーバーフローを避ける

CWE-124-g

汚染されたデータによるバッファー書き込み時のオーバーフローを避ける

CWE-124-h

コピー元バッファーのサイズをチェックしていない、疑わしい strcpy の使用

CWE-124-i

パス操作関数を使用するときは、出力バッファーに十分な大きさがあることを確認する

CWE-124-j

コレクションの境界外にアクセスしてはならない

CWE-126-a

配列の境界を超えてアクセスしてはならない

CWE-126-b

範囲外の配列およびポインターへのアクセスを避ける

CWE-126-c

不正な書式指定子によるバッファー オーバーフローを避ける

CWE-126-d

バッファーからの読み取り時のオーバーフローを避ける

CWE-126-e

汚染されたデータを配列添え字として使用しない

CWE-126-f

汚染されたデータによるバッファー読み込み時のオーバーフローを避ける

CWE-126-g

コピー元バッファーのサイズをチェックしていない、疑わしい strcpy の使用

CWE-126-h

パス操作関数を使用するときは、出力バッファーに十分な大きさがあることを確認する

CWE-126-i

コレクションの境界外にアクセスしてはならない

CWE-127-a

配列の境界を超えてアクセスしてはならない

CWE-127-b

範囲外の配列およびポインターへのアクセスを避ける

CWE-127-c

不正な書式指定子によるバッファー オーバーフローを避ける

CWE-127-d

バッファーからの読み取り時のオーバーフローを避ける

CWE-127-e

汚染されたデータを配列添え字として使用しない

CWE-127-f

汚染されたデータによるバッファー読み込み時のオーバーフローを避ける

CWE-127-g

コピー元バッファーのサイズをチェックしていない、疑わしい strcpy の使用

CWE-127-h

パス操作関数を使用するときは、出力バッファーに十分な大きさがあることを確認する

CWE-127-i

コレクションの境界外にアクセスしてはならない

CWE-134-a

フォーマット文字列からサニタイズされていないユーザー入力を除外する

CWE-188-a

アクティブではない共用体フィールドの値を読み取らない

CWE-188-b

ポインター オペランドと、そのオペランドを使用したポインター算術の結果であるポインターは、同じ配列の要素を指していなければならない

CWE-191-a

整数の算術演算によるラップアラウンドを避ける

CWE-191-b

結果をより広い整数型にキャストしている式での整数オーバーフローの可能性を避ける

CWE-191-c

結果がより広い整数型に代入されている式での整数オーバーフローの可能性を避ける

CWE-191-d

結果がより広い整数型の式と比較されている式での整数オーバーフローの可能性を避ける

CWE-191-e

'+', '-', '*' 演算子の定数式における整数オーバーフローまたはアンダーフロー

CWE-191-f

'<<' 演算子の定数式における整数オーバーフローまたはアンダーフロー

CWE-191-g

符号なし整数定数式の評価はラップアラウンドするべきではない

CWE-191-h

符号付き整数のオーバーフローを避ける

CWE-191-i

プリプロセッサ ディレクティブ内の符号なし整数定数式の評価はラップアラウンドするべきではない

CWE-191-j

整数型の変換によるデータの損失を避ける

CWE-191-k

汚染されたデータの潜在的な整数オーバーフロー/アンダーフローを避ける

CWE-194-a

string.h の関数に渡される size_t 引数には適切な値がなければならない

CWE-194-b

負の値ではない引数を期待する関数に負の値を渡してはならない

CWE-194-c

バッファー書き込み時のオーバーフローを避ける

CWE-195-a

汚染されたデータの潜在的な整数オーバーフロー/アンダーフローを避ける

CWE-195-b

整数型の変換による値の変化を避ける

CWE-195-c

負の値ではない引数を期待する関数に負の値を渡してはならない

CWE-196-a

情報の損失を引き起こす可能性がある、より広い型からより狭い型への暗黙的な変換を使用してはならない

CWE-226-a

fgets() または fgetws() が失敗した場合、文字列をリセットする

CWE-23-a

ファイル名インジェクションから防御する

CWE-242-a

gets() を使用しない

CWE-244-a

機密データの割り当てを解除する前に消去するべきである

CWE-252-a

常に非 void 関数の戻り値をチェックする

CWE-338-a

乱数生成関数 'rand()' および 'srand()' を使用するべきではない

CWE-36-a

ファイル名インジェクションから防御する

CWE-364-a

シグナル ハンドラーを適切に定義する

CWE-367-a

シンボリック リンクの存在を確認する際の競合状態を避ける

CWE-369-a

ゼロによる除算を避ける

CWE-377-a

安全な一時ファイル名関数を使用する

CWE-391-a

errno 値を適切に使用する

CWE-396-a

catch-all 例外ハンドラーを使用しない

CWE-398-a

すべての空でない文は、どのように実行されても1つ以上の副作用を持つか、制御フローを変えなければならない

CWE-398-b

意味のない 'case' および 'default' 句を使用するべきではない

CWE-398-c

void 型の戻り値を持つ関数は空であってはならない

CWE-398-d

変数を自分自身に代入してはならない

CWE-398-e

空の文を使用するべきではない

CWE-398-f

空の複合文を使用するべきではない

CWE-400-b

汚染されている可能性があるデータをループの制御式で使用する前に検証する

CWE-404-a

リソースが解放されていることを確認する

CWE-427-b

環境変数インジェクションから防御する

CWE-440-a

例外をスローしないよう宣言された関数から例外をスローしてはならない

CWE-457-a

初期化の前に使用しない

CWE-459-a

リソースが解放されていることを確認する

CWE-467-a

sizeof 演算子をポインタ型に使用して、malloc、calloc、realloc 関数で割り当てるメモリのサイズを指定してはならない

CWE-468-a

ポインターに対して、スケールされた整数値の加算または減算を行わない

CWE-469-a

同じ配列の要素を指していない 2 つのポインターを減算しない

CWE-475-a

オーバーラップするオブジェクトにオブジェクトを代入またはコピーしてはならない

CWE-478-a

必ず switch 文にデフォルト ブランチを用意する

CWE-479-a

シグナル ハンドラーを適切に定義する

CWE-480-a

関数型から関数へのポインター型への変換は適切なコンテキストでだけ行う

CWE-481-a

組み込みの代入演算子の結果を使用するべきではない

CWE-482-a

すべての空でない文は、どのように実行されても1つ以上の副作用を持つか、制御フローを変えなければならない

CWE-483-a

'if' または 'else' 文の本体を構成するステートメントは複合文であるべきである

CWE-484-a

switch 文の case に break 文が足りない

CWE-500-a

public データ メンバを使用しない

CWE-506-a

ログ ファイルに書き込む関数に機密データを渡さない

CWE-526-a

汚染されたデータを出力コンソールに出力してはならない

CWE-534-a

ログ ファイルに書き込む関数に機密データを渡さない

CWE-535-a

ログ ファイルに書き込む関数に機密データを渡さない

CWE-561-a

else ブロックに到達しないコードがあってはならない

CWE-561-b

return、break、continue、goto、throw 文の後、および noreturn 属性を持つ関数の呼び出しの後に到達しないコードがあってはならない

CWE-561-c

if、do while、while、for ブロックに到達しないコードがあってはならない

CWE-561-d

switch 文に到達しないコードがあってはならない

CWE-561-e

for ループに到達しないコードがあってはならない

CWE-561-f

if または switch の後に到達しないコードがあってはならない

CWE-561-g

while、for、do...while ループの中の if または switch の後に到達できないコードがあってはならない

CWE-561-h

到達できないメソッドを避ける

CWE-562-a

自動記憶域のオブジェクトのアドレスを関数から返してはいけない

CWE-563-a

未使用の値を避ける

CWE-570-a

常に同じ値に評価される条件式を避ける

CWE-571-a

常に同じ値に評価される条件式を避ける

CWE-590-a

無効なポインタを使用してリソースを解放してはならない

CWE-591-a

機密データの割り当てを解除する前に消去するべきである

CWE-606-a

汚染されている可能性があるデータをループの制御式で使用する前に検証する

CWE-665-a

ゼロで終わっていない文字列の読み込みによるオーバーフローを避ける

CWE-665-b

常に同じ値に評価される条件式を避ける

CWE-667-a

解放されていないロックを放棄してはならない

CWE-672-a

コンテナーを反復処理中に変更しない

CWE-674-a

無限の再帰を避ける

CWE-675-a

解放されたリソースを使用してはならない

CWE-685-a

文字列書式関数の呼び出しで、書式文字列中の書式指定子の数と対応する引数の数は同じでなければならない

CWE-688-a

文字列書式関数の呼び出しで、書式文字列の '%s' または '%c' 書式指定子と対応する引数の間に不整合があってはならない

CWE-690-a

null ポインターの間接参照を避ける

CWE-758-a

初期化の前に使用しない

CWE-761-a

無効なポインタを使用してリソースを解放してはならない

CWE-762-a

動的に割り当てられたリソースを適切に割り当て解除する

CWE-773-a

リソースが解放されていることを確認する

CWE-775-a

リソースが解放されていることを確認する

CWE-785-a

パス操作関数を使用するときは、出力バッファーに十分な大きさがあることを確認する

CWE-789-a

メモリ割り当サイズの決定に使用する前に、汚染されている可能性があるデータを検証する

CWE-832-a

獲得されていないロックを解放しない

JSF-209_c

標準の浮動小数点型の名前を使用するべきではない

JSF-209_d

標準の浮動小数点型への typedef の名前にはサイズを示す数値が含まれているべきである

MISRA2004-6_3_c

標準の浮動小数点型の名前を使用するべきではない

MISRA2004-6_3_d

標準の浮動小数点型の typedef の名前にはサイズを示す数値が含まれているべきである

MISRA2008-5_2_9_b

キャストでポインター型を汎整数型に変換してはならない

MISRA2012-DIR-4_6_d

標準の浮動小数点型の名前を使用するべきではない

MISRA2012-DIR-4_6_e

標準の浮動小数点型への typedef の名前にはサイズを示す数値が含まれているべきである

MISRA2012-RULE-10_1_i

ポインターを暗黙的に NULL と比較してはならない

MISRAC2012-DIR_4_6-d

標準の浮動小数点型の名前を使用するべきではない

MISRAC2012-DIR_4_6-e

関数がエラー情報を返す場合、エラー情報をテストしなければならない

MISRAC2012-RULE_10_1-i

ポインターを暗黙的に NULL と比較してはならない

MISRAC2025-DIR_4_1-a

配列の境界を超えてアクセスしてはならない

MISRAC2025-DIR_4_1-b

null ポインターの間接参照を避ける

MISRAC2025-DIR_4_1-c

ゼロによる除算を避ける

MISRAC2025-DIR_4_1-d

不正な書式指定子によるバッファー オーバーフローを避ける

MISRAC2025-DIR_4_1-e

ゼロで終わっていない文字列の読み込みによるオーバーフローを避ける

MISRAC2025-DIR_4_1-g

バッファーからの読み取り時のオーバーフローを避ける

MISRAC2025-DIR_4_1-h

バッファー書き込み時のオーバーフローを避ける

MISRAC2025-DIR_4_1-i

同じ配列の要素を指していない 2 つのポインターを減算しない

MISRAC2025-DIR_4_1-j

関連のない 2 つのポインターを比較してはならない

MISRAC2025-DIR_4_1-k

整数の算術演算によるラップアラウンドを避ける

MISRAC2025-DIR_4_1-l

符号付き整数のオーバーフローを避ける

MISRAC2025-DIR_4_1-m

整数型の変換によるデータの損失を避ける

MISRAC2025-DIR_4_10-a

多重インクルード ガードを使用する

MISRAC2025-DIR_4_11-a

ライブラリ関数に渡される値を検証する

MISRAC2025-DIR_4_12-a

動的メモリを使用するべきではない

MISRAC2025-DIR_4_13-a

リソースが解放されていることを確認する

MISRAC2025-DIR_4_13-b

解放されたリソースを使用してはならない

MISRAC2025-DIR_4_13-c

無効なポインタを使用してリソースを解放してはならない

MISRAC2025-DIR_4_13-d

解放されていないロックを放棄してはならない

MISRAC2025-DIR_4_13-e

二重ロックを避ける

MISRAC2025-DIR_4_13-f

獲得されていないロックを解放しない

MISRAC2025-DIR_4_14-a

汚染されたデータを配列添え字として使用しない

MISRAC2025-DIR_4_14-b

汚染されたデータの潜在的な整数オーバーフロー/アンダーフローを避ける

MISRAC2025-DIR_4_14-c

汚染されたデータによるバッファー読み込み時のオーバーフローを避ける

MISRAC2025-DIR_4_14-d

汚染されたデータによるバッファー書き込み時のオーバーフローを避ける

MISRAC2025-DIR_4_14-e

コマンド インジェクションから防御する

MISRAC2025-DIR_4_14-f

ファイル名インジェクションから防御する

MISRAC2025-DIR_4_14-g

SQL インジェクションから防御する

MISRAC2025-DIR_4_14-h

汚染されたデータによるバッファー オーバーフローを避ける

MISRAC2025-DIR_4_14-i

不正な書式制限の定義によるバッファー オーバーフローを避ける

MISRAC2025-DIR_4_14-j

環境変数インジェクションから防御する

MISRAC2025-DIR_4_14-k

汚染されたデータを出力コンソールに出力してはならない

MISRAC2025-DIR_4_14-l

フォーマット文字列からサニタイズされていないユーザー入力を除外する

MISRAC2025-DIR_4_15-a

結果が NaN 値および無限大値の可能性がある浮動小数点式を使用してはならない

MISRAC2025-DIR_4_2-a

アセンブラの使用をすべて文書化する

MISRAC2025-DIR_4_3-a

アセンブリ言語は、カプセル化して分離しなければならない

MISRAC2025-DIR_4_4-a

コード セクションを "コメント アウト" してはならない

MISRAC2025-DIR_4_4-b

Doxygen コメントを使用してコード セクションを「コメント アウト」してはならない

MISRAC2025-DIR_4_5-a

同じ名前空間にあり可視性が重なる識別子は見た目で明確に区別できるべきである

MISRAC2025-DIR_4_6-a

標準の整数型への typedef の名前にはサイズを示す数値が含まれているべきである

MISRAC2025-DIR_4_6-b

標準の符号付き整数型および符号なし整数型の名前を使用するべきではない

MISRAC2025-DIR_4_6-c

C99 規格のコードでは、独自の typedef を宣言する代わりに stdint.h の typedef を使用する

MISRAC2025-DIR_4_7-a

非 void 関数の戻り値を必ずチェックする

MISRAC2025-DIR_4_7-b

常に非 void 関数の戻り値をチェックする

MISRAC2025-DIR_4_8-a

構造体または共用体を指すポインターが翻訳単位内で 1 回も間接参照されない場合、オブジェクトの実装を隠すべきである

MISRAC2025-DIR_4_9-a

関数形式マクロよりも関数を用いるべきである

MISRAC2025-DIR_5_1-a

異なるロック間でグローバル変数を使用しない

MISRAC2025-DIR_5_1-b

変数は単一の critical セクションのコンテキストで使用するべきである

MISRAC2025-DIR_5_1-c

スレッド間のデータ競合があってはならない

MISRAC2025-DIR_5_2-a

異なる順序でロックを獲得しない

MISRAC2025-DIR_5_3-a

スレッドでスレッドを作成するべきではない

MISRAC2025-RULE_10_1-a

オペランドがブール値として解釈される場合、常に実質的なブール型の式を使用するべきである

MISRAC2025-RULE_10_1-b

オペランドが数値として解釈される場合、実質的なブール型のオペランドを使用するべきではない

MISRAC2025-RULE_10_1-c

オペランドがブール値として解釈される場合、常に実質的なブール型の式を使用するべきである

MISRAC2025-RULE_10_1-d

オペランドが数値として解釈される場合、実質的な文字型のオペランドを使用するべきではない

MISRAC2025-RULE_10_1-e

質的な signed 型または列挙型のオペランドに対してシフトおよびビット演算を行うべきではない

MISRAC2025-RULE_10_1-f

ビット シフト演算の右辺のオペランドとして実質的な signed 型または列挙型のオペランドを使用するべきではない

MISRAC2025-RULE_10_1-g

単項マイナス演算子のオペランドとして実質的な unsigned 型のオペランドを使用するべきではない

MISRAC2025-RULE_10_1-h

浮動小数点式の等価性 (==) および非等価性 (!=) を明示的に (文法的に) テストしてはならない

MISRAC2025-RULE_10_2-a

実質的な文字型の式を加算または減算演算で不適切に使用するべきではない

MISRAC2025-RULE_10_3-a

式の値をより小さい実質的な型を持つオブジェクトに代入してはならない

MISRAC2025-RULE_10_3-b

式の値を実質的な型カテゴリが異なるオブジェクトに代入してはならない

MISRAC2025-RULE_10_4-a

通常の算術変換が行われる演算子の 2 つのオペランドは、同じ実質的な型カテゴリでなければならない

MISRAC2025-RULE_10_4-b

3 項演算子の 2 番目および 3 番目のオペランドは同じ実質的な型カテゴリでなければならない

MISRAC2025-RULE_10_5-a

実質的な列挙型へのキャスト演算は許されない

MISRAC2025-RULE_10_5-b

実質的なブール型から、また実質的なブール型にキャストしてはならない

MISRAC2025-RULE_10_5-c

質的な文字型と実質的な浮動小数点型の間でキャストしてはならない

MISRAC2025-RULE_10_6-a

複合式の値をより大きい実質的な型を持つオブジェクトに代入してはならない

MISRAC2025-RULE_10_7-a

通常の数値変換が行われる演算子のオペランドの 1 つとして複合式が使用される場合、他方のオペランドはより大きい実質的な型を持つ型であってはならない

MISRAC2025-RULE_10_7-b

条件演算子の (2 つ目または 3 つ目の) オペランドとして複合式が使用される場合、他のオペランドはより大きい実質的な型を持つ型であってはならない

MISRAC2025-RULE_10_8-a

複合式の値を別の実質的な型カテゴリまたはより大きい実質的な型にキャストしてはならない

MISRAC2025-RULE_11_1-a

関数へのポインターとそれ以外の型との間で変換を行ってはならない

MISRAC2025-RULE_11_1-b

互換性のない関数型へのポインターの間で変換を行ってはならない

MISRAC2025-RULE_11_10-a

'void' 型に '_Atomic' 修飾子を使用するべきではない

MISRAC2025-RULE_11_11-a

ポインターを暗黙的に NULL と比較してはならない

MISRAC2025-RULE_11_2-a

不完全型へのポインターと他の型との間で変換を行ってはならない

MISRAC2025-RULE_11_3-a

オブジェクト型へのポインターと別のオブジェクト型へのポインターとの間で変換を行ってはならない

MISRAC2025-RULE_11_4-b

数値型からポインター型への変換を行うべきではない

MISRAC2025-RULE_11_4-c

ポインター型から数値型への変換を行うべきではない

MISRAC2025-RULE_11_5-b

void へのポインターをオブジェクトへのポインターに変換してはならない

MISRAC2025-RULE_11_6-b

数値型からポインター型への変換を行うべきではない

MISRAC2025-RULE_11_6-c

ポインター型から数値型への変換を行うべきではない

MISRAC2025-RULE_11_8-a

ポインターまたは参照によってアクセスされる型から変換によって 'const'、'volatile'、'_Atomic' 修飾子を取り除いてはならない

MISRAC2025-RULE_11_9-a

リテラルのゼロ (0) を null ポインター定数として使用してはならない

MISRAC2025-RULE_11_9-b

null ポインター定数としてリテラルのゼロ (0) ではなく NULL を使用する

MISRAC2025-RULE_12_1-a

括弧を使用して式の演算子の優先順位を示す

MISRAC2025-RULE_12_1-c

sizeof 演算子のオペランドを括弧で囲むべきである

MISRAC2025-RULE_12_2-a

誤ったシフト演算を避ける

MISRAC2025-RULE_12_2-b

シフト演算子の右辺のオペランドは、ゼロと左辺のオペランドの実質型のビット数より 1 少ない数の間でなければならない

MISRAC2025-RULE_12_3-a

カンマ演算子は、用いてはならない

MISRAC2025-RULE_12_4-a

'+', '-', '*' 演算子の定数式における整数オーバーフローまたはアンダーフロー

MISRAC2025-RULE_12_4-b

'<<' 演算子の定数式における整数オーバーフローまたはアンダーフロー

MISRAC2025-RULE_12_5-a

sizeof 演算子のオペランドは「配列型」として宣言された関数のパラメーターであってはならない

MISRAC2025-RULE_12_6-a

構造体および共用体型の atomic オブジェクトのメンバーに直接アクセスするべきではない

MISRAC2025-RULE_13_1-a

初期化リストに永続的な副作用が含まれていてはならない

MISRAC2025-RULE_13_2-a

式の値は、規格が認めるどのような順序で評価されようとも、同じでなければならない

MISRAC2025-RULE_13_2-b

関数の引数の評価順序に依存するコードを書いてはならない

MISRAC2025-RULE_13_2-c

関数呼び出しおよび関数引数の評価順序に依存するコードを記述してはならない

MISRAC2025-RULE_13_2-d

関数呼び出しを含む式の評価順序に依存するコードを書いてはならない

MISRAC2025-RULE_13_2-e

オブジェクトは、シーケンス ポイントの間で、格納された値が式の評価によって 2 回以上変更されてはならない

MISRAC2025-RULE_13_2-f

2 つの隣接するシーケンス ポイント間で複数の volatile を使用してはならない

MISRAC2025-RULE_13_2-g

関数呼び出しの評価順序に依存するコードを書いてはならない

MISRAC2025-RULE_13_2-h

atomic 型の式の値は、スレッドの交互アクセスの影響を受けるべきではない

MISRAC2025-RULE_13_3-a

インクリメント (++) またはデクリメント (--) 演算子がある完全な式は、他の副作用の可能性があってはならない

MISRAC2025-RULE_13_4-a

組み込みの代入演算子の結果を使用するべきではない

MISRAC2025-RULE_13_5-a

論理演算子 && または || の右側のオペランドには、副作用があってはならない

MISRAC2025-RULE_13_6-a

sizeof 演算子のオペランドに副作用を持つ式が含まれていてはならない

MISRAC2025-RULE_13_6-b

sizeof 演算子のオペランドで volatile 左辺値として指定されたオブジェクトにアクセスするべきではない

MISRAC2025-RULE_13_6-c

関数の呼び出しを sizeof 演算子のオペランドとして使用してはならない

MISRAC2025-RULE_14_1-a

for ループのカウンターは、実質的な浮動小数点型であってはならない

MISRAC2025-RULE_14_1-b

while および do-while ループのカウンターは、実質的な浮動小数点型であってはならない

MISRAC2025-RULE_14_2-a

for ループにはループ カウンターが 1 つだけあること、またループ カウンターが for ループ本文で変更されてはならない

MISRAC2025-RULE_14_2-b

for ループの最初の句は整形式でなければならない

MISRAC2025-RULE_14_2-c

for ループの 2 番目の句は整形式でなければならない

MISRAC2025-RULE_14_2-d

for ループの 3 番目の句は整形式でなければならない

MISRAC2025-RULE_14_3-ac

常に同じ値に評価される条件式を避ける

MISRAC2025-RULE_14_4-a

オペランドが実質的にブール型である場合を除き、 0 との比較テストは明示的に行うべきである

MISRAC2025-RULE_15_1-a

goto 文を使用するべきではない

MISRAC2025-RULE_15_2-a

goto 文は同じ関数ボディ内の後の部分に宣言されたラベルにジャンプしなければならない

MISRAC2025-RULE_15_3-a

goto 文によって参照されるラベルは、同じブロックまたは goto 文を含む外側のブロックで宣言されなければならない

MISRAC2025-RULE_15_4-a

反復文では、ループを終了するために複数の break 文または goto 文を使用してはならない

MISRAC2025-RULE_15_5-a

関数では、関数の最後に唯一の出口がなければならない

MISRAC2025-RULE_15_6-a

switch、while、do...while 、for 文の本体を構成する文は、複合文でなければならない

MISRAC2025-RULE_15_6-b

'if' または 'else' 文の本体を構成するステートメントは複合文であるべきである

MISRAC2025-RULE_15_7-a

すべての 'if...else-if' 構文は、'else' 句で終わる必要がある

MISRAC2025-RULE_16_1-a

switch 文には switch ラベルと switch 節のみ使用し、他のコードを入れるべきではない

MISRAC2025-RULE_16_1-b

switch ラベルは、それを直接内包している複合文が switch 文の本文である場合にだけ用いなければならない

MISRAC2025-RULE_16_1-e

必ず switch 文にデフォルト ブランチを用意する

MISRAC2025-RULE_16_1-f

default ラベルの終了の break の前に 文またはコメントがなければならない

MISRAC2025-RULE_16_1-g

'default' ラベルがある場合、 'default' ラベルは switch 文の最初または最後の switch ラベルとして出現しなければならない

MISRAC2025-RULE_16_1-h

switch 文には少なくとも 2 個の switch 句がなければならない

MISRAC2025-RULE_16_1-i

すべての switch ブランチが無条件で終了するべきである

MISRAC2025-RULE_16_2-a

switch ラベルは、それを直接内包している複合文が switch 文の本文である場合にだけ用いなければならない

MISRAC2025-RULE_16_3-c

すべての switch ブランチが無条件で終了するべきである

MISRAC2025-RULE_16_4-a

必ず switch 文にデフォルト ブランチを用意する

MISRAC2025-RULE_16_4-b

default ラベルの終了の break の前に 文またはコメントがなければならない

MISRAC2025-RULE_16_5-a

'default' ラベルがある場合、 'default' ラベルは switch 文の最初または最後の switch ラベルとして出現しなければならない

MISRAC2025-RULE_16_6-a

switch 文には少なくとも 2 個の switch 句がなければならない

MISRAC2025-RULE_16_7-a

switch 式では、実質的なブール型になる値を用いてはならない

MISRAC2025-RULE_16_7-b

switch 式では、実質的なブール型になる値を用いてはならない

MISRAC2025-RULE_17_1-a

識別子 va_list、va_arg、va_start、va_end、va_copy を使用するべきではない

MISRAC2025-RULE_17_1-b

識別子 va_list、va_arg、va_start、va_end を使用するべきではない

MISRAC2025-RULE_17_1-c

標準ヘッダー ファイル <stdarg.h> または <cstdarg> を使用してはいけない

MISRAC2025-RULE_17_10-a

'noreturn' として宣言された関数の戻り値の型は 'void' でなければならない

MISRAC2025-RULE_17_11-a

return しない関数は、return しないことを示す属性付きで宣言する

MISRAC2025-RULE_17_12-a

関数識別子を使用する場合、必ず前に & を付けるか、括弧で囲んだパラメーター リスト (空でも構わない) を付ける

MISRAC2025-RULE_17_13-a

関数型の仕様に修飾子を含めてはならない

MISRAC2025-RULE_17_2-a

関数は直接的にも間接的にも自分自身を呼び出してはならない

MISRAC2025-RULE_17_3-a

関数は、関数呼び出しから見えるプロトタイプを持たなければならない

MISRAC2025-RULE_17_4-a

戻り値の型が非 void の関数の場合、すべての出口で、式を持つ明示的な return 文を記述しなければならない

MISRAC2025-RULE_17_4-b

main() を除く戻り値の型が非 void の関数の場合、すべての出口で、式を持つ明示的な return 文を記述しなければならない

MISRAC2025-RULE_17_5-a

配列型として宣言されたパラメーターに対応する関数引数には、適切な数の要素がなければならない

MISRAC2025-RULE_17_7-a

戻り型が void ではない関数によって返却される値を使用しなければならない

MISRAC2025-RULE_17_7-b

戻り型が void ではない関数によって返却される値を使用しなければならない

MISRAC2025-RULE_17_8-a

関数のパラメーターを変更するべきではない

MISRAC2025-RULE_17_9-a

return するべきでない関数から return してはならない

MISRAC2025-RULE_18_1-a

配列の境界を超えてアクセスしてはならない

MISRAC2025-RULE_18_1-b

範囲外の配列およびポインターへのアクセスを避ける

MISRAC2025-RULE_18_1-c

ポインター オペランドと、そのオペランドを使用したポインター算術の結果であるポインターは、同じ配列の要素を指していなければならない

MISRAC2025-RULE_18_10-a

可変的に変更された配列へのポインター型を使用するべきではない

MISRAC2025-RULE_18_2-a

同じ配列の要素を指していない 2 つのポインターを減算しない

MISRAC2025-RULE_18_3-a

関連のない 2 つのポインターを比較してはならない

MISRAC2025-RULE_18_4-a

+、-、+= および -= 演算子をポインター型の式に適用するべきではない

MISRAC2025-RULE_18_5-a

オブジェクトの宣言には、3 階層以上のポインター間接参照があってはならない

MISRAC2025-RULE_18_6-a

自動記憶域のオブジェクトのアドレスを関数から返してはいけない

MISRAC2025-RULE_18_6-b

自動記憶域のオブジェクトのアドレスを、オブジェクトが存在しなくなった後にも存在し続ける可能性がある別のオブジェクトに代入してはならない

MISRAC2025-RULE_18_6-c

スレッド記憶域期間を持つオブジェクトのアドレスを静的記憶域期間を持つオブジェクトに代入してはならない

MISRAC2025-RULE_18_7-a

フレキシブル配列メンバーを宣言してはいけない

MISRAC2025-RULE_18_8-a

可変長配列を使用するべきではない

MISRAC2025-RULE_18_9-a

一時的な生存期間を持つオブジェクトを変更しない

MISRAC2025-RULE_19_1-a

オブジェクトを重複するオブジェクトに代入してはならない

MISRAC2025-RULE_19_1-b

オブジェクトを重複するオブジェクトに代入してはならない

MISRAC2025-RULE_19_1-c

オーバーラップするオブジェクトにオブジェクトを代入またはコピーしてはならない

MISRAC2025-RULE_19_2-a

union キーワードを使用してはいけない

MISRAC2025-RULE_19_3-a

アクティブではない共用体フィールドの値を読み取らない

MISRAC2025-RULE_1_1-a

プログラムは規格によって定められた翻訳限界を超えてはならない (c90)

MISRAC2025-RULE_1_1-b

プログラムは規格によって定められた翻訳限界を超えてはならない (c99)

MISRAC2025-RULE_1_1-c

プログラムは規格によって定められた翻訳限界を超えてはならない (c90)

MISRAC2025-RULE_1_1-d

プログラムは規格によって定められた翻訳限界を超えてはならない (c99)

MISRAC2025-RULE_1_3-a

ゼロによる除算を避ける

MISRAC2025-RULE_1_3-b

初期化の前に使用しない

MISRAC2025-RULE_1_3-c

解放されたリソースを使用してはならない

MISRAC2025-RULE_1_3-d

バッファーからの読み取り時のオーバーフローを避ける

MISRAC2025-RULE_1_3-e

バッファー書き込み時のオーバーフローを避ける

MISRAC2025-RULE_1_3-f

式の値は、規格が認めるどのような順序で評価されようとも、同じでなければならない

MISRAC2025-RULE_1_3-g

関数の引数の評価順序に依存するコードを書いてはならない

MISRAC2025-RULE_1_3-h

関数呼び出しおよび関数引数の評価順序に依存するコードを記述してはならない

MISRAC2025-RULE_1_3-i

関数呼び出しを含む式の評価順序に依存するコードを書いてはならない

MISRAC2025-RULE_1_3-j

オブジェクトは、シーケンス ポイントの間で、格納された値が式の評価によって 2 回以上変更されてはならない

MISRAC2025-RULE_1_3-k

2 つの隣接するシーケンス ポイント間で複数の volatile を使用してはならない

MISRAC2025-RULE_1_3-l

関数呼び出しの評価順序に依存するコードを書いてはならない

MISRAC2025-RULE_1_3-m

自動記憶域のオブジェクトのアドレスを関数から返してはいけない

MISRAC2025-RULE_1_3-n

自動記憶域のオブジェクトのアドレスを、オブジェクトが存在しなくなった後にも存在し続ける可能性がある別のオブジェクトに代入してはならない

MISRAC2025-RULE_1_3-o

右シフト演算の左辺のオペランドは負数であってはならない

MISRAC2025-RULE_1_4-j

'__STDC_WANT_LIB_EXT1__' マクロを '0' 以外の値に定義するべきではない

MISRAC2025-RULE_1_4-k

'rsize_t' 型を使用するべきではない

MISRAC2025-RULE_1_4-l

'errno_t' 型を使用するべきではない

MISRAC2025-RULE_1_4-m

次のマクロを使用しない: RSIZE_MAX、L_tmpnam_s、TMP_MAX_S

MISRAC2025-RULE_1_4-n

Annex K of ISO/IEC 9899:2011 規格で定義された関数を使用してはならない

MISRAC2025-RULE_1_5-a

static 記憶域クラス指定子は、内部結合を持つオブジェクト並びに関数の定義および宣言に対して用いなければならない

MISRAC2025-RULE_1_5-b

ストレージタイプ修飾子は、変数や関数ではなく、型に関連付けなければならない

MISRAC2025-RULE_1_5-c

関数型はプロトタイプ形式でなければならない

MISRAC2025-RULE_1_5-d

ATOMIC_VAR_INIT マクロを使用しない

MISRAC2025-RULE_1_5-e

#undef ディレクティブで 'bool'、'false' または 'true' 識別子を使用してはならない

MISRAC2025-RULE_1_5-f

ファイル位置インジケーターがゼロのストリームに ungetc 関数を使用してはならない

MISRAC2025-RULE_1_5-g

realloc 関数のサイズ引数として 0 値を渡してはならない

MISRAC2025-RULE_20_1-a

ファイルの中で、#include 文の前には、他の前処理指令またはコメントだけを記述すべきである

MISRAC2025-RULE_20_10-a

前処理演算子 # および ## を使用するべきではない

MISRAC2025-RULE_20_11-a

直後に # 演算子があるマクロ パラメーターは、直後に ## 演算子があってはいけない

MISRAC2025-RULE_20_12-a

# または ## 演算子のオペランドとして使用されており、それ自体がマクロ置換の対象であるマクロ パラメーターは、それらの演算子のオペランドとしてだけ使用されなければならない

MISRAC2025-RULE_20_13-a

前処理指令は、前処理で除外されたとしても、構文的に意味を持つようにしなければならない

MISRAC2025-RULE_20_14-a

すべての #else、#elif、#endif 前処理指令は、それに関連する #if 指令または #ifdef 指令と同じファイル内に存在しなければならない

MISRAC2025-RULE_20_15-a

名前がアンダースコアで始まる識別子を #define または #undef してはならない

MISRAC2012-RULE_20_15-b

予約済み識別子及び標準ライブラリのマクロや関数は、定義または再定義または定義の解消をしてはならない (C90 コード)

MISRAC2025-RULE_20_15-c

予約済み識別子及び標準ライブラリのマクロや関数は、定義または再定義または定義の解消をしてはならない (C99 コード)

MISRAC2025-RULE_20_15-d

defined 識別子を #define または #undef してはならない

MISRAC2025-RULE_20_2-a

文字 '、"、/* または // をヘッダー ファイル名で使用してはならない

MISRAC2025-RULE_20_2-b

ヘッダー ファイル名に \\ 文字を使用するべきではない

MISRAC2025-RULE_20_3-a

#include 指令の後には <filename> または "filename" が続かなければならない

MISRAC2025-RULE_20_4-a

C90 のキーワードと同じ名前を持つマクロを定義してはならない

MISRAC2025-RULE_20_4-b

C99 のキーワードと同じ名前を持つマクロを定義してはならない

MISRAC2025-RULE_20_5-a

#undef を使用するべきではない

MISRAC2025-RULE_20_6-a

関数形式マクロの引数には、前処理指令のような字句を記述してはならない

MISRAC2025-RULE_20_7-b

マクロ パラメーターの展開結果の式は適切に区切られている必要がある

MISRAC2025-RULE_20_8-a

#if または #elif プリプロセッサ ディレクティブの制御式は 0 または 1 に評価されなければならない

MISRAC2025-RULE_20_9-b

翻訳単位中に定義されていない前処理指令 #if および #elif マクロを使用してはならない

MISRAC2025-RULE_21_10-a

標準ヘッダー ファイル <time.h> または <ctime> を使用してはいけない

MISRAC2025-RULE_21_10-b

<time.h> ライブラリの時間操作関数およびマクロを使用してはいけない

MISRAC2025-RULE_21_10-c

<time.h> ライブラリに定義されている型を使用してはいけない

MISRAC2025-RULE_21_11-a

<tgmath.h> ヘッダーをインクルードしない

MISRAC2025-RULE_21_12-a

<fenv.h> が提供する機能を使用するべきではない

MISRAC2025-RULE_21_12-b

標準ヘッダー ファイル <fenv.h> を使用してはいけない

MISRAC2025-RULE_21_13-a

ctype.h ライブラリ関数に誤った値を渡してはならない

MISRAC2025-RULE_21_14-a

標準ライブラリ関数 memcmp を null 終端文字の比較に使用してはならない

MISRAC2025-RULE_21_15-a

標準ライブラリ関数 memcmp、memmove および memcmp へのポインター引数は、互換性のある型の修飾付きおよび修飾なし版へのポインターでなければならない

MISRAC2025-RULE_21_16-a

標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、実質的な signed 型、実質的な unsigned 型、実質的なブール型、または実質的な列挙型を指していなければならない

MISRAC2025-RULE_21_17-a

ゼロで終わっていない文字列の読み込みによるオーバーフローを避ける

MISRAC2025-RULE_21_17-b

バッファー書き込み時のオーバーフローを避ける

MISRAC2025-RULE_21_18-a

string.h の関数に渡される size_t 引数には適切な値がなければならない

MISRAC2025-RULE_21_19-a

標準ライブラリ関数 localeconv、getenv、setlocale または strerror から返されたポインターは、const 修飾された型へのポインターとしてだけ使用する

MISRAC2025-RULE_21_19-b

lconv 構造体のメンバーによって指し示される文字列を変更してはならない

MISRAC2025-RULE_21_20-a

特定の標準ライブラリ関数から返されたポインターは、そのあとの同じ関数または関連する関数の呼び出しで使用してはならない

MISRAC2025-RULE_21_21-a

stdlib.h または cstdlib ライブラリの system() 関数を使用するべきではない

MISRAC2025-RULE_21_22-a

<tgmath.h> で宣言された型総称マクロのすべての引数は、適切な実質型でなければならない

MISRAC2025-RULE_21_23-a

<tgmath.h> で宣言された複数引数の型総称マクロのすべての引数は、同一の標準型でなければならない

MISRAC2025-RULE_21_24-a

乱数生成関数 'rand()' および 'srand()' を使用するべきではない

MISRAC2025-RULE_21_25-a

明示的なメモリ順序引数として 'memory_order_seq_cst' だけを使用するべきである

MISRAC2025-RULE_21_26-a

タイムアウトをサポートしていない mutex で標準ライブラリ関数 mtx_timedlock() を呼び出すべきではない

MISRAC2025-RULE_21_3-a

動的メモリを使用するべきではない

MISRAC2025-RULE_21_4-a

<setjmp.h> が提供する機能を使用するべきではない

MISRAC2025-RULE_21_4-b

<setjmp.h> または <csetjmp> 標準ヘッダー ファイルを使用してはいけない

MISRAC2025-RULE_21_5-a

標準ヘッダー ファイル <signal.h> または <csignal> を使用してはいけない

MISRAC2025-RULE_21_5-b

<signal.h> のシグナル処理機能を使用してはいけない

MISRAC2025-RULE_21_6-a

'cstdio' および 'cwchar' ライブラリの入力/出力関数を使用するべきではない

MISRAC2025-RULE_21_7-a

'stdlib.h' または 'cstdlib'ライブラリの 'atof'、'atoi'、'atol' および 'atoll' 関数を使用するべきではない

MISRAC2025-RULE_21_8-a

stdlib.h または cstdlib ライブラリの abort() 関数を使用しない

MISRAC2025-RULE_21_8-b

stdlib.h または cstdlib ライブラリの exit() 関数を使用しない

MISRAC2025-RULE_21_8-c

stdlib.h または cstdlib ライブラリの関数 quick_exit() および _Exit() は使用してはならない

MISRAC2025-RULE_21_8-d

'assert' マクロを使用した結果として 'abort' 関数が呼び出されるべきではない

MISRAC2025-RULE_21_9-a

<stdlib.h> のライブラリ関数 bsearch および qsort を使用してはいけない

MISRAC2025-RULE_22_1-a

リソースが解放されていることを確認する

MISRAC2025-RULE_22_10-a

errno 値を適切に使用する

MISRAC2025-RULE_22_11-a

すでに結合または切り離しされたスレッドを結合または切り離ししない

MISRAC2025-RULE_22_12-a

スレッド オブジェクト、スレッド同期オブジェクト、スレッド固有記憶域ポインターは、適切な標準ライブラリ関数を使用してアクセスする

MISRAC2025-RULE_22_13-a

スレッド オブジェクト、スレッド同期オブジェクト、スレッド固有記憶域ポインターは自動記憶域期間を持ってはならない

MISRAC2025-RULE_22_14-a

スレッド同期オブジェクトをスレッドで初期化するべきではない

MISRAC2025-RULE_22_14-b

'mtx_init()' 関数の呼び出しに渡される 2 番目の引数は、 'mtx_plain'、'mtx_timed'、'mtx_plain | mtx_recursive'、または 'mtx_timed | mtx_recursive' にするべきである

MISRAC2025-RULE_22_15-a

スレッド同期オブジェクトをスレッドで破棄するべきではない

MISRAC2025-RULE_22_16-a

解放されていないロックを放棄してはならない

MISRAC2025-RULE_22_17-a

獲得されていないロックを解放しない

MISRAC2025-RULE_22_18-a

二重ロックを避ける

MISRAC2025-RULE_22_19-a

1 つの条件変数に対する並行待機処理に複数の mutex を使用しない

MISRAC2025-RULE_22_2-a

解放されたリソースを使用してはならない

MISRAC2025-RULE_22_2-b

無効なポインタを使用してリソースを解放してはならない

MISRAC2025-RULE_22_20-a

スレッド固有のストレージをスレッドで作成するべきではない

MISRAC2025-RULE_22_3-a

1 つのファイルを別のストリームで同時に読み取りアクセス用と書き込みアクセス用に開いてはならない

MISRAC2025-RULE_22_4-a

読み取り専用として開かれたストリームへの書き込みを避ける

MISRAC2025-RULE_22_5-a

FILE オブジェクトへのポインターを間接参照している

MISRAC2025-RULE_22_5-b

FILE オブジェクトへのポインターをライブラリ関数から間接参照してはいけない

MISRAC2025-RULE_22_6-a

解放されたリソースを使用してはならない

MISRAC2025-RULE_22_7-a

マクロの EOF と標準ライブラリ関数から返された未変更の戻り値を比較するべきである

MISRAC2025-RULE_22_8-a

errno 値を適切に使用する

MISRAC2025-RULE_22_9-a

errno 値を適切に使用する

MISRAC2025-RULE_23_1-a

総称選択はマクロからだけ展開するべきである

MISRAC2025-RULE_23_1-b

マクロ定義で使用される総称選択は、制御式でマクロのパラメーターを使用するべきである

MISRAC2025-RULE_23_2-a

マクロから展開されない総称選択の制御式に潜在的な副作用があってはならない

MISRAC2025-RULE_23_3-a

総称選択にデフォルト以外の関連を少なくとも 1 つ指定する必要がある

MISRAC2025-RULE_23_4-a

総称関連は適切な型をリストする必要がある

MISRAC2025-RULE_23_5-a

総称選択はポインターの暗黙的な型変換に依存するべきではない

MISRAC2025-RULE_23_6-a

総称選択の制御式は、式の標準型と一致する実質的な型を持つ必要がある

MISRAC2025-RULE_23_6-b

総称選択で列挙型と整数型を混在させるべきではない

MISRAC2025-RULE_23_7-a

マクロから展開される総称選択は引数を 1 回だけ評価しなければならない

MISRAC2025-RULE_23_8-a

デフォルトの関連は関連リストの最初または最後に配置する

MISRAC2025-RULE_2_1-a

else ブロックに到達しないコードがあってはならない

MISRAC2025-RULE_2_1-b

return、break、continue、goto、throw 文の後、および noreturn 属性を持つ関数の呼び出しの後に到達しないコードがあってはならない

MISRAC2025-RULE_2_1-c

if、do while、while、for ブロックに到達しないコードがあってはならない

MISRAC2025-RULE_2_1-d

switch 文に到達しないコードがあってはならない

MISRAC2025-RULE_2_1-e

for ループに到達しないコードがあってはならない

MISRAC2025-RULE_2_1-f

if または switch の後に到達しないコードがあってはならない

MISRAC2025-RULE_2_1-g

while、for、do...while ループの中の if または switch の後に到達できないコードがあってはならない

MISRAC2025-RULE_2_1-h

到達できないメソッドを避ける

MISRAC2025-RULE_2_2-a

すべての空でない文は、どのように実行されても1つ以上の副作用を持つか、制御フローを変えなければならない

MISRAC2025-RULE_2_2-b

未使用の値を避ける

MISRAC2025-RULE_2_3-a

プロジェクトに未使用の型宣言が含まれるべきではない

MISRAC2025-RULE_2_3-b

ソース ファイルは未使用の型宣言を持つべきではない

MISRAC2025-RULE_2_4-a

関数は未使用のローカル タグ宣言を持つべきではない

MISRAC2025-RULE_2_4-b

ソース ファイルは未使用のタグ宣言を持つべきではない

MISRAC2025-RULE_2_5-a

ソース ファイルは未使用のマクロ定義を持つべきではない

MISRAC2025-RULE_2_6-a

プロジェクトに未使用の型宣言が含まれるべきではない

MISRAC2025-RULE_2_7-a

関数は未使用のパラメーターを持つべきではない

MISRAC2025-RULE_2_8-a

プロジェクトに外部リンケージを持つ未使用の型があるべきではない

MISRAC2025-RULE_2_8-b

プロジェクトに内部リンケージを持つ未使用の変数が含まれるべきではない

MISRAC2025-RULE_2_8-c

プロジェクトに未使用の変数が含まれるべきではない

MISRAC2025-RULE_3_1-a

文字列 /* を C スタイルコメント内で用いてはならない

MISRAC2025-RULE_3_1-b

文字シーケンス // を C スタイル コメントの中で使用してはいけない

MISRAC2025-RULE_3_1-c

文字シーケンス /* を C++ スタイル コメントの中で使用してはいけない

MISRAC2025-RULE_3_2-a

// コメントで行の結合を使用してはならない

MISRAC2025-RULE_4_1-a

8 進または 16 進のエスケープ シーケンスは終了させなければならない

MISRAC2025-RULE_4_2-a

3 文字表記は、用いてはならない

MISRAC2025-RULE_5_1-a

外部識別子は区別できなければならない

MISRAC2025-RULE_5_10-a

標準ライブラリのマクロ、オブジェクト、関数の名前を再利用してはならない

MISRAC2025-RULE_5_10-b

標準ライブラリのマクロ、オブジェクト、関数の名前を再利用してはならない (C90)

MISRAC2025-RULE_5_10-c

標準ライブラリのマクロ、オブジェクト、関数の名前を再利用してはならない (C99)

MISRAC2025-RULE_5_2-a

ファイル スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c90)

MISRAC2025-RULE_5_2-b

ファイル スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c99)

MISRAC2025-RULE_5_2-c

同じブロック スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c90)

MISRAC2025-RULE_5_2-d

同じブロック スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c99)

MISRAC2025-RULE_5_3-a

ローカルまたは関数プロトタイプ スコープで宣言された識別子は、グローバルまたは名前空間のスコープで宣言された識別子を隠蔽してはならない

MISRAC2025-RULE_5_3-b

内側のローカル スコープで宣言された識別子は、外側のローカル スコープで宣言された識別子を隠蔽してはならない

MISRAC2025-RULE_5_4-a

マクロの名前はマクロのパラメーターと違っているべきである(c90)

MISRAC2025-RULE_5_4-b

マクロの名前はマクロのパラメーターと違っているべきである(c99)

MISRAC2025-RULE_5_4-c

マクロの名前は現在定義されている他のマクロの名前と違っているべきである(c90)

MISRAC2025-RULE_5_4-d

マクロの名前は現在定義されている他のマクロの名前と違っているべきである(c99)

MISRAC2025-RULE_5_5-a

プリプロセスの前に存在するマクロの名前は、プリプロセス後に存在する識別子と違っているべきである (c90)

MISRAC2025-RULE_5_5-b

プリプロセスの前に存在するマクロの名前は、プリプロセス後に存在する識別子と違っているべきである (c99)

MISRAC2025-RULE_5_6-a

typedef 名は一意の識別子でなければならない

MISRAC2025-RULE_5_7-a

タグ名は一意の識別子でなければならない

MISRAC2025-RULE_5_8-a

外部リンケージを持つオブジェクトを定義する識別子は一意でなければならない

MISRAC2025-RULE_5_8-b

外部リンケージを持つ関数を定義する識別子は一意でなければならない

MISRAC2025-RULE_5_9-a

内部リンケージを持つオブジェクトを定義する識別子は一意でなければならない

MISRAC2025-RULE_5_9-b

内部リンケージを持つ関数を定義する識別子は一意でなければならない

MISRAC2025-RULE_6_1-a

ビットフィールドは、unsigned int 型または signed int 型だけで定義しなければならない

MISRAC2025-RULE_6_2-a

signed integer 型の名前付きのビットフィールドは 2 ビット以上の長さでなければならない

MISRAC2025-RULE_6_3-a

共用体のメンバーをビットフィールドとして宣言してはならない

MISRAC2025-RULE_7_1-a

ゼロ以外の 8 進定数を使用してはいけない

MISRAC2025-RULE_7_2-a

すべての符号なし型の定数には、接尾辞 U を付けなければならない

MISRAC2025-RULE_7_3-a

long 型を指示するには、小文字の l ではなく大文字の L を使用する

MISRAC2025-RULE_7_4-a

文字列リテラルを変更してはならない

MISRAC2025-RULE_7_5-a

整数定数マクロの引数は、適切な値を持つ 10 進数、8 進数、16 進数定数であるべきである

MISRAC2025-RULE_7_6-a

small integer 版の最少幅整数定数マクロを使用するべきではない

MISRAC2025-RULE_8_1-a

オブジェクトまたは関数を宣言または定義するときは、常にその型を明記しなければならない

MISRAC2025-RULE_8_1-b

オブジェクトまたは関数を宣言または定義するときは、常にその型を明記しなければならない

MISRAC2025-RULE_8_10-a

インライン関数は static 記憶域クラスを使って宣言しなければならない

MISRAC2025-RULE_8_11-a

外部リンケージを持つ配列を宣言する場合、明示的にサイズを指定するべきである

MISRAC2025-RULE_8_12-a

列挙子リストで、非明示的に指定された列挙定数の値は一意でなければならない

MISRAC2025-RULE_8_13-a

関数プロトタイプのポインタ仮引数は、指し示しているオブジェクトを変更する目的でポインタが用いられていない場合、 const へのポインタとして宣言すべきである

MISRAC2025-RULE_8_13-b

仮引数の型は、指し示しているオブジェクトを変更する目的でポインタが用いられていない場合、 const へのポインタの typedef として宣言すべきである

MISRAC2025-RULE_8_14-a

restrict 型修飾子を使用してはいけない

MISRAC2025-RULE_8_15-a

外部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない

MISRAC2025-RULE_8_15-b

内部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない

MISRAC2025-RULE_8_16-a

オブジェクトの宣言でゼロアライメント指定を使用するべきではない

MISRAC2025-RULE_8_17-a

オブジェクトの宣言に含まれるアライメント識別子は最大でも 1 つであるべきである

MISRAC2025-RULE_8_18-a

ヘッダー ファイルに仮定義があってはならない

MISRAC2025-RULE_8_19-a

外部リンケージを持つオブジェクトはファイル スコープで宣言するべきである

MISRAC2025-RULE_8_19-b

外部リンケージを持つ関数を実装ファイルで宣言するべきではない

MISRAC2025-RULE_8_19-c

外部オブリンケージを持つオブジェクトを実装ファイルで宣言するべきではない

MISRAC2025-RULE_8_19-d

関数をブロック スコープで宣言するべきではない

MISRAC2025-RULE_8_2-a

関数プロトタイプ宣言では、すべての仮引数に対して識別子を指定しなければならない

MISRAC2025-RULE_8_2-b

関数型には名前付きのパラメーターがなければならない

MISRAC2025-RULE_8_2-c

関数型はプロトタイプ形式でなければならない

MISRAC2025-RULE_8_3-a

オブジェクトまたは関数が 2 回以上宣言される場合、型は互換性がなければならない

MISRAC2025-RULE_8_3-b

関数の宣言とその定義で用いられる識別子とは一致しなければならない

MISRAC2025-RULE_8_3-c

1 つのオブジェクトまたは関数のすべての宣言は互換性のある型を持たなければならない

MISRAC2025-RULE_8_4-a

外部リンケージを持つオブジェクトまたは関数を定義する場合、宣言が参照できなければならない

MISRAC2025-RULE_8_4-b

オブジェクトまたは関数が 2 回以上宣言される場合、型は互換性がなければならない

MISRAC2025-RULE_8_5-a

翻訳単位の中で、外部オブジェクトまたは外部関数に 2 つ以上の非定義宣言があってはならない

MISRAC2025-RULE_8_6-a

外部リンケージを持つ識別子に複数の外部定義があってはならない

MISRAC2025-RULE_8_6-b

外部リンケージを持つ識別子は、外部定義を持たなければならない

MISRAC2025-RULE_8_7-a

関数およびオブジェクトが 1 つの翻訳単位でだけ参照される場合、外部リンケージが定義されてはならない

MISRAC2025-RULE_8_8-a

static 記憶域クラス指定子は、内部結合を持つオブジェクト並びに関数の定義および宣言に対して用いなければならない

MISRAC2025-RULE_8_9-a

オブジェクトが単一の関数内だけでアクセスされている場合は、そのオブジェクトをブロック スコープで定義しなければならない

MISRAC2025-RULE_9_1-a

初期化の前に使用しない

MISRAC2025-RULE_9_2-a

集成体または共用体の初期化は括弧に囲まれていなければならない

MISRAC2025-RULE_9_3-a

配列を部分的に初期化してはならない

MISRAC2025-RULE_9_4-a

オブジェクトの要素を複数回初期化してはならない

MISRAC2025-RULE_9_5-a

指定された初期化子が配列オブジェクトの初期化に使用されている場合、配列のサイズを明示的に指定する必要がある

MISRAC2025-RULE_9_6-a

連結された指示子を使用する初期化子に指示子なしの初期化子が含まれていてはならない

MISRAC2025-RULE_9_7-a

アトミック オブジェクトを使用する前に、適切に初期化する

MISRACPP2023-7_0_6-b

パラメーターが overload-independent ではない場合、関数呼び出しの引数とパラメーターは同じ型であるべき

MISRACPP2023-7_0_6-c

関数の可変長パラメーターに引数を渡すことで引数の型が暗黙的に変わるべきではない

MISRACPP2023-8_2_7-c

ポインター型から数値型への変換を行うべきではない

MISRACPP2023-8_2_8-b

ポインター型から数値型への変換を行うべきではない

NAMING-58

標準の浮動小数点型の typedef の名前にはサイズを示す数値が含まれているべきである

PREPROC-31

マクロ パラメーターの展開結果の式は適切に区切られている必要がある

更新されたルール

カテゴリ ID

ルール ID

AUTOSAR C++14 Coding Guidelines

AUTOSAR-A0_1_1-a, AUTOSAR-A0_1_2-a, AUTOSAR-A0_1_6-a, AUTOSAR-A12_1_1-b, AUTOSAR-A12_7_1-a, AUTOSAR-A12_8_4-a, AUTOSAR-A12_8_5-a, AUTOSAR-A12_8_5-b, AUTOSAR-A13_3_1-a, AUTOSAR-A14_5_1-a, AUTOSAR-A15_1_2-a, AUTOSAR-A18_1_1-a, AUTOSAR-A18_1_3-a, AUTOSAR-A18_1_6-a, AUTOSAR-A18_9_1-a, AUTOSAR-A18_9_2-a, AUTOSAR-A18_9_2-b, AUTOSAR-A18_9_3-a, AUTOSAR-A1_1_1-e, AUTOSAR-A1_1_1-g, AUTOSAR-A20_8_2-a, AUTOSAR-A20_8_3-a, AUTOSAR-A20_8_4-a, AUTOSAR-A20_8_5-a, AUTOSAR-A20_8_6-a, AUTOSAR-A27_0_1-e, AUTOSAR-A27_0_1-f, AUTOSAR-A27_0_1-g, AUTOSAR-A27_0_1-h, AUTOSAR-A27_0_2-a, AUTOSAR-A27_0_2-b, AUTOSAR-A27_0_2-f, AUTOSAR-A2_5_1-a, AUTOSAR-A4_10_1-b, AUTOSAR-A4_7_1-g, AUTOSAR-A5_0_1-a, AUTOSAR-A5_0_1-b, AUTOSAR-A5_0_1-c, AUTOSAR-A5_0_1-d, AUTOSAR-A5_0_1-e, AUTOSAR-A5_0_1-f, AUTOSAR-A5_0_1-g, AUTOSAR-A6_2_1-b, AUTOSAR-A8_4_11-a, AUTOSAR-A8_4_12-b, AUTOSAR-A8_4_12-c, AUTOSAR-A8_4_12-d, AUTOSAR-A8_4_13-a, AUTOSAR-A8_4_13-b, AUTOSAR-A8_4_13-c, AUTOSAR-A8_4_3-b, AUTOSAR-A8_4_5-a, AUTOSAR-A8_4_6-a, AUTOSAR-A8_4_9-a, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_3-f, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_1-h, AUTOSAR-M0_3_1-i, AUTOSAR-M16_0_1-a, AUTOSAR-M16_0_8-a, AUTOSAR-M3_4_1-a, AUTOSAR-M5_14_1-a, AUTOSAR-M5_3_4-c, AUTOSAR-M6_3_1-a, AUTOSAR-M6_4_1-a, AUTOSAR-M7_1_2-c, AUTOSAR-M8_4_4-a, AUTOSAR-M8_5_2-b, AUTOSAR-M9_3_3-a

C++ コーディング規約

CODSTA-CPP-105, CODSTA-CPP-113, CODSTA-CPP-206, CODSTA-CPP-211, CODSTA-CPP-43, CODSTA-CPP-58, CODSTA-CPP-78, CODSTA-CPP-96

モダン C++ コーディング規約

CODSTA-MCPP-04, CODSTA-MCPP-07, CODSTA-MCPP-10_b, CODSTA-MCPP-13, CODSTA-MCPP-13_b, CODSTA-MCPP-13_c, CODSTA-MCPP-13_d, CODSTA-MCPP-14, CODSTA-MCPP-16_b, CODSTA-MCPP-16_c, CODSTA-MCPP-16_d, CODSTA-MCPP-16_e, CODSTA-MCPP-21, CODSTA-MCPP-27, CODSTA-MCPP-29, CODSTA-MCPP-30, CODSTA-MCPP-34, CODSTA-MCPP-35, CODSTA-MCPP-36, CODSTA-MCPP-53, CODSTA-MCPP-54, CODSTA-MCPP-55

コーディング規約

CODSTA-105, CODSTA-108_c, CODSTA-108_d, CODSTA-131, CODSTA-161_a, CODSTA-194, CODSTA-203, CODSTA-316

Common Weakness Enumeration

CWE-119-c, CWE-119-d, CWE-119-e, CWE-119-h, CWE-119-i, CWE-125-c, CWE-125-d, CWE-190-k, CWE-20-b, CWE-20-d, CWE-20-e, CWE-20-f, CWE-20-g, CWE-20-h, CWE-20-i, CWE-200-a, CWE-22-a, CWE-668-a, CWE-704-k, CWE-77-a, CWE-770-a, CWE-78-a, CWE-787-c, CWE-787-d, CWE-787-f, CWE-798-a, CWE-89-a

DISA ASD STIG

APSC_DV-000480-a, APSC_DV-000650-a, APSC_DV-001290-a, APSC_DV-001300-a, APSC_DV-002400-a, APSC_DV-002480-a, APSC_DV-002485-a, APSC_DV-002510-a, APSC_DV-002520-a, APSC_DV-002520-b, APSC_DV-002520-c, APSC_DV-002520-f, APSC_DV-002520-h, APSC_DV-002520-i, APSC_DV-002520-j, APSC_DV-002530-a, APSC_DV-002530-b, APSC_DV-002530-c, APSC_DV-002530-f, APSC_DV-002530-h, APSC_DV-002530-i, APSC_DV-002530-j, APSC_DV-002540-a, APSC_DV-002550-a, APSC_DV-002550-b, APSC_DV-002550-c, APSC_DV-002550-f, APSC_DV-002550-h, APSC_DV-002550-i, APSC_DV-002550-j, APSC_DV-002560-a, APSC_DV-002560-b, APSC_DV-002560-c, APSC_DV-002560-f, APSC_DV-002560-h, APSC_DV-002560-i, APSC_DV-002560-j, APSC_DV-002570-b, APSC_DV-002580-b, APSC_DV-002590-a, APSC_DV-002590-b, APSC_DV-002590-c, APSC_DV-002590-d, APSC_DV-002590-g, APSC_DV-002590-i, APSC_DV-002590-j, APSC_DV-003110-a, APSC_DV-003120-b, APSC_DV-003280-a, APSC_DV-003320-c, APSC_DV-003320-d

例外

EXCEPT-09, EXCEPT-19

フロー解析

BD-PB-CC, BD-PB-CHECKRETGEN, BD-PB-LIFETIME, BD-PB-NAUNF, BD-PB-NZTS, BD-PB-OVERFFMT, BD-PB-OVERFNZT, BD-PB-OVERFRD, BD-PB-OVERFWR, BD-PB-UCMETH, BD-PB-VOVR, BD-SECURITY-OVERFRD, BD-SECURITY-OVERFWR, BD-SECURITY-TDALLOC, BD-SECURITY-TDCMD, BD-SECURITY-TDCONSOLE, BD-SECURITY-TDENV, BD-SECURITY-TDFNAMES, BD-SECURITY-TDINPUT, BD-SECURITY-TDINTOVERF, BD-SECURITY-TDLOOP, BD-SECURITY-TDSQL, BD-TRS-REVLOCK

書式

FORMAT-36

グローバル静的解析

GLOBAL-PREDICATENOSE, GLOBAL-UNUSEDTYPE

High Integrity C++

HICPP-12_4_2-a, HICPP-12_5_2-a, HICPP-13_1_2-a, HICPP-17_3_1-a, HICPP-17_3_2-a, HICPP-17_3_2-b, HICPP-17_3_2-c, HICPP-17_3_5-a, HICPP-17_4_2-a, HICPP-18_2_4-a, HICPP-1_2_1-h, HICPP-1_2_1-i, HICPP-2_2_1-b, HICPP-2_5_3-a, HICPP-3_4_3-b, HICPP-3_5_1-b, HICPP-5_1_2-a, HICPP-5_1_2-b, HICPP-5_1_2-c, HICPP-5_1_2-d, HICPP-5_1_2-e, HICPP-5_1_2-f, HICPP-5_1_2-g, HICPP-5_1_6-c, HICPP-5_1_6-d, HICPP-6_1_1-a, HICPP-6_1_1-b, HICPP-6_4_1-a, HICPP-9_1_1-a

初期化

INIT-06

Joint Strike Fighter

JSF-011, JSF-015, JSF-044, JSF-059_a, JSF-059_b, JSF-071_b, JSF-081, JSF-115_a, JSF-117.1, JSF-127_b, JSF-136_b, JSF-139_b, JSF-143_a, JSF-157, JSF-166_c, JSF-180_f, JSF-204.1_a, JSF-204.1_b, JSF-204.1_c, JSF-204.1_d, JSF-204.1_e, JSF-204.1_f, JSF-204.1_g, JSF-204_d, JSF-209, JSF-209_b

メモリおよびリソース管理

MRM-57, MRM-60, MRM-62_b

MISRA C 1998

MISRA-004_a, MISRA-020, MISRA-027_b, MISRA-043_c

MISRA C 2004

MISRA2004-12_2_a, MISRA2004-12_2_b, MISRA2004-12_2_c, MISRA2004-12_2_d, MISRA2004-12_2_e, MISRA2004-12_2_f, MISRA2004-12_2_g, MISRA2004-12_3_c, MISRA2004-12_4_a, MISRA2004-14_8, MISRA2004-14_9, MISRA2004-16_9, MISRA2004-19_1, MISRA2004-19_16, MISRA2004-2_1, MISRA2004-2_4_b, MISRA2004-4_2, MISRA2004-6_3, MISRA2004-6_3_b, MISRA2004-9_2_b

MISRA C 2012 (Legacy)

MISRA2012-DIR-4_13_f, MISRA2012-DIR-4_14_b, MISRA2012-DIR-4_14_c, MISRA2012-DIR-4_14_d, MISRA2012-DIR-4_14_e, MISRA2012-DIR-4_14_f, MISRA2012-DIR-4_14_g, MISRA2012-DIR-4_14_j, MISRA2012-DIR-4_14_k, MISRA2012-DIR-4_14_l, MISRA2012-DIR-4_1_d, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_g, MISRA2012-DIR-4_1_h, MISRA2012-DIR-4_3, MISRA2012-DIR-4_4_b, MISRA2012-DIR-4_6_a, MISRA2012-DIR-4_6_b, MISRA2012-DIR-4_7_b, MISRA2012-RULE-10_1_a, MISRA2012-RULE-11_9_b, MISRA2012-RULE-13_2_a, MISRA2012-RULE-13_2_b, MISRA2012-RULE-13_2_c, MISRA2012-RULE-13_2_d, MISRA2012-RULE-13_2_e, MISRA2012-RULE-13_2_f, MISRA2012-RULE-13_2_g, MISRA2012-RULE-13_5, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-15_6_a, MISRA2012-RULE-15_6_b, MISRA2012-RULE-17_12, MISRA2012-RULE-1_3_d, MISRA2012-RULE-1_3_e, MISRA2012-RULE-1_3_f, MISRA2012-RULE-1_3_g, MISRA2012-RULE-1_3_h, MISRA2012-RULE-1_3_i, MISRA2012-RULE-1_3_j, MISRA2012-RULE-1_3_k, MISRA2012-RULE-1_3_l, MISRA2012-RULE-20_1, MISRA2012-RULE-20_13, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_22, MISRA2012-RULE-21_23, MISRA2012-RULE-22_17, MISRA2012-RULE-2_1_h, MISRA2012-RULE-2_2_b, MISRA2012-RULE-2_7, MISRA2012-RULE-2_8_c, MISRA2012-RULE-4_2, MISRA2012-RULE-9_3

MISRA C 2023 (MISRA C 2012)

MISRAC2012-DIR_4_1-d, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-g, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_13-f, MISRAC2012-DIR_4_14-b, MISRAC2012-DIR_4_14-c, MISRAC2012-DIR_4_14-d, MISRAC2012-DIR_4_14-e, MISRAC2012-DIR_4_14-f, MISRAC2012-DIR_4_14-g, MISRAC2012-DIR_4_14-j, MISRAC2012-DIR_4_14-k, MISRAC2012-DIR_4_14-l, MISRAC2012-DIR_4_3-a, MISRAC2012-DIR_4_4-b, MISRAC2012-DIR_4_6-a, MISRAC2012-DIR_4_6-b, MISRAC2012-DIR_4_7-b, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_11_9-b, MISRAC2012-RULE_13_2-a, MISRAC2012-RULE_13_2-b, MISRAC2012-RULE_13_2-c, MISRAC2012-RULE_13_2-d, MISRAC2012-RULE_13_2-e, MISRAC2012-RULE_13_2-f, MISRAC2012-RULE_13_2-g, MISRAC2012-RULE_13_5-a, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_15_6-a, MISRAC2012-RULE_15_6-b, MISRAC2012-RULE_17_12-a, MISRAC2012-RULE_1_3-d, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_1_3-f, MISRAC2012-RULE_1_3-g, MISRAC2012-RULE_1_3-h, MISRAC2012-RULE_1_3-i, MISRAC2012-RULE_1_3-j, MISRAC2012-RULE_1_3-k, MISRAC2012-RULE_1_3-l, MISRAC2012-RULE_20_1-a, MISRAC2012-RULE_20_13-a, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_22-a, MISRAC2012-RULE_21_23-a, MISRAC2012-RULE_22_17-a, MISRAC2012-RULE_2_1-h, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_2_7-a, MISRAC2012-RULE_2_8-c, MISRAC2012-RULE_4_2-a, MISRAC2012-RULE_9_3-a

MISRA C++ 2008

MISRA2008-0_1_2_aa, MISRA2008-0_1_3_f, MISRA2008-0_1_5, MISRA2008-0_1_6, MISRA2008-0_1_7, MISRA2008-0_3_1_d, MISRA2008-0_3_1_e, MISRA2008-0_3_1_g, MISRA2008-0_3_1_h, MISRA2008-15_0_2, MISRA2008-16_0_1, MISRA2008-16_0_8, MISRA2008-2_3_1, MISRA2008-2_7_2_b, MISRA2008-2_7_3_b, MISRA2008-3_4_1_a, MISRA2008-5_0_1_a, MISRA2008-5_0_1_b, MISRA2008-5_0_1_c, MISRA2008-5_0_1_d, MISRA2008-5_0_1_e, MISRA2008-5_0_1_f, MISRA2008-5_0_1_g, MISRA2008-5_14_1, MISRA2008-5_3_4_c, MISRA2008-6_3_1, MISRA2008-6_4_1, MISRA2008-7_1_2_b, MISRA2008-8_4_4, MISRA2008-8_5_2_b, MISRA2008-9_3_3

MISRA C++ 2023

MISRACPP2023-0_0_2-a, MISRACPP2023-0_1_1-a, MISRACPP2023-0_1_2-a, MISRACPP2023-0_2_1-a, MISRACPP2023-0_2_4-a, MISRACPP2023-10_1_1-c, MISRACPP2023-11_3_1-a, MISRACPP2023-15_8_1-a, MISRACPP2023-15_8_1-b, MISRACPP2023-18_1_1-a, MISRACPP2023-19_0_1-a, MISRACPP2023-19_0_3-a, MISRACPP2023-21_6_2-c, MISRACPP2023-21_6_3-c, MISRACPP2023-25_5_1-b, MISRACPP2023-28_3_1-a, MISRACPP2023-28_6_1-a, MISRACPP2023-28_6_2-a, MISRACPP2023-28_6_2-b, MISRACPP2023-4_6_1-a, MISRACPP2023-4_6_1-b, MISRACPP2023-4_6_1-c, MISRACPP2023-4_6_1-d, MISRACPP2023-4_6_1-e, MISRACPP2023-4_6_1-f, MISRACPP2023-4_6_1-g, MISRACPP2023-5_0_1-a, MISRACPP2023-6_8_1-b, MISRACPP2023-6_8_1-c, MISRACPP2023-6_8_4-a, MISRACPP2023-7_0_1-a, MISRACPP2023-7_0_3-a, MISRACPP2023-7_11_1-a, MISRACPP2023-8_14_1-a, MISRACPP2023-8_7_1-c, MISRACPP2023-8_7_1-d, MISRACPP2023-8_7_1-e, MISRACPP2023-9_3_1-a, MISRACPP2023-9_3_1-b

オブジェクト指向

OOP-34, OOP-34_b

最適化

OPT-01, OPT-02, OPT-02_b, OPT-06, OPT-38

OWASP API Security Top 10 (2019)

OWASP2019-API3-d, OWASP2019-API3-e, OWASP2019-API3-f, OWASP2019-API3-g, OWASP2019-API3-i, OWASP2019-API3-j, OWASP2019-API3-p, OWASP2019-API4-a, OWASP2019-API8-a, OWASP2019-API8-b, OWASP2019-API8-c, OWASP2019-API8-d, OWASP2019-API8-e, OWASP2019-API8-f

OWASP API Security Top 10 (2023)

OWASP2023-API10-b, OWASP2023-API10-d, OWASP2023-API10-e, OWASP2023-API10-f, OWASP2023-API10-g, OWASP2023-API10-h, OWASP2023-API10-i, OWASP2023-API3-c, OWASP2023-API4-a, OWASP2023-API4-b

OWASP Top 10 (2017)

OWASP2017-A1-b, OWASP2017-A1-c, OWASP2017-A1-d, OWASP2017-A1-e, OWASP2017-A1-f, OWASP2017-A5-a

OWASP Top 10 (2021)

OWASP2021-A1-a, OWASP2021-A3-b, OWASP2021-A3-c, OWASP2021-A3-d, OWASP2021-A3-e, OWASP2021-A3-f

移植性

PORT-08

バグの可能性

PB-74

セキュリティ

SECURITY-15, SECURITY-50

SEI CERT C++

CERT_CPP-CON51-a, CERT_CPP-CON55-a, CERT_CPP-CTR55-a, CERT_CPP-ERR60-a, CERT_CPP-EXP50-a, CERT_CPP-EXP50-b, CERT_CPP-EXP50-c, CERT_CPP-EXP50-d, CERT_CPP-EXP50-e, CERT_CPP-EXP50-f, CERT_CPP-EXP52-c, CERT_CPP-EXP56-a, CERT_CPP-OOP54-a, CERT_CPP-STR50-b, CERT_CPP-STR50-c, CERT_CPP-STR50-f

SEI CERT C

CERT_C-API01-a, CERT_C-ARR38-a, CERT_C-ARR38-b, CERT_C-ARR38-c, CERT_C-ARR38-d, CERT_C-CON41-a, CERT_C-DCL19-a, CERT_C-DCL22-a, CERT_C-DCL31-a, CERT_C-ENV01-c, CERT_C-ERR33-d, CERT_C-EXP02-a, CERT_C-EXP10-a, CERT_C-EXP10-b, CERT_C-EXP10-c, CERT_C-EXP10-d, CERT_C-EXP19-a, CERT_C-EXP30-a, CERT_C-EXP30-b, CERT_C-EXP30-c, CERT_C-EXP30-d, CERT_C-EXP39-e, CERT_C-EXP39-f, CERT_C-EXP44-b, CERT_C-FIO32-a, CERT_C-FLP06-a, CERT_C-FLP36-a, CERT_C-INT04-a, CERT_C-INT04-b, CERT_C-INT04-c, CERT_C-INT31-a, CERT_C-MSC07-i, CERT_C-MSC12-i, CERT_C-MSC12-j, CERT_C-MSC13-a, CERT_C-MSC41-a, CERT_C-POS30-a, CERT_C-POS48-b, CERT_C-PRE07-a, CERT_C-STR02-a, CERT_C-STR02-b, CERT_C-STR02-c, CERT_C-STR03-a, CERT_C-STR31-b, CERT_C-STR31-d, CERT_C-STR32-a

STL Best Practices

STL-34, STL-35, STL-37, STL-39

テンプレート

TEMPL-07_b

削除されたルール

ルール ID

注意点

AUTOSAR-M5_2_9-a

AUTOSAR C++ 14 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、MISRA2004-11_3_a を代替として使用できます。

MISRA2008-5_2_9

MISRA C++ 2008 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、MISRA2004-11_3_a を代替として使用できます。

MISRACPP2023-8_2_7-a

MISRA C++ 2023 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、MISRA2004-11_3_a を代替として使用できます。

MISRACPP2023-8_2_7-b

MISRA C++ 2023 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-240 を代替として使用できます。

MISRACPP2023-8_2_8-a

MISRA C++ 2023 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、MISRA2004-11_3_a を代替として使用できます。

PORT-10

PORT-08 を代替として使用できます。

  • No labels