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

リリース日: 2023年12月13日

Automotive Compliance パックの拡張

このリリースでは、最近発行された MISRA C++:2023 コーディング ガイドラインの完全サポートが導入されました。

MISRA C++:2023 コーディング ガイドラインをサポートする MISRA C++2023 テスト コンフィギュレーションが新しく追加されました。

このコンフィギュレーションを使用すると、「Guidelines for the use of C++17 in critical systems」コーディング標準を完全に適用することができます。MISRA C++:2023 テスト コンフィギュレーションは、「Public Review Draft of MISRA C++ 202X」のガイドラインを含む MISRA C++ 202X テスト コンフィギュレーションの代替です。

2023.2.1 でのアップデート:

MISRA C++:2023 rule 21.2.2 ルールの識別子が訂正されました。以前は 18.2.2 (MISRACPP2023-18_2_2-a) とラベルされていましたが、今は 21.2.2 (MISRACPP2023-21_2_2-a) とラベルされています。

MISRA C++:2023 コンプライアンス レポートのために利用する場合、アップデートされたバージョンである C/C++test 2023.2.1、DTP 2023.2.2 および Automotive Compliance Pack 2023.2.2 を利用することを推奨します。

静的解析の拡張

  • 新規コード解析ルールが追加され、より広くコンプライアンス規格がカバーされるようになりました。追加および更新されたルールの一覧は「New Rules」、「Updated Rules」を参照してください。
  • 静的解析ルールの精度およびパフォーマンスに関して全般的な改善が行われました。
  • コード内抑制の構文が拡張されました。次の行の指摘を抑制できるようになりました。「次行の抑制」を参照してください。

カバレッジ解析の拡張

constexpr 関数のコード カバレッジ収集がサポートされました。「-constexpr-coverage」を参照してください。

サポート対象コンパイラ

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

コンパイラ名コンパイラ識別子

Clang C/C++ Compiler v 15.0 (x86_64)

clang_15_0-x86_64

Clang C/C++ Compiler v 16.0 (aarch32)

clang_16_0-aarch32

Clang C/C++ Compiler v 16.0 (aarch64)

clang_16_0-aarch64

Clang C/C++ Compiler v 16.0 (x86_64)clang_16_0-x86_64
GNU GCC 13.x (aarch64)gcc_13-aarch64

GNU GCC 13.x (x86_64)

gcc_13-64

Hexagon Clang Compiler v. 8.7.x

hexagon-clang_8_7

IAR BXARM v. 9.20x

iccarm_9_20

Smartcode for TriCore C/C++ Compiler 10.1

smartcode_10_1-tricore

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

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

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

  • MISRA C++ 2023

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

  • AUTOSAR C++14 Coding Guidelines
  • CWE Top 25 + On the Cusp 2019
  • CWE Top 25 + On the Cusp 2022
  • CWE Top 25 2019
  • CWE Top 25 2022
  • Flow Analysis Aggressive
  • Flow Analysis Standard
  • Global Analysis
  • High Integrity C++
  • MISRA C 1998
  • MISRA C 2023 (MISRA C 2012)
  • Modern C++ (11, 14 and 17)
  • Recommended Rules for FDA (C)
  • Recommended Rules for FDA (C++)
  • Security Rules
  • SEI CERT C Guidelines
  • SEI CERT C Rules
  • SEI CERT C++ Rules

その他のアップデート

  • Visual Studio IDE で CMake プロジェクトに静的解析結果をインポートする機能が追加されました。
  • レポートされたセットアップの問題の重要度に基づくアプリケーション終了コードの設定が拡張されました。「cpptest.fail.setup.problems」を参照してください。
  • FIPS 互換モードで C/C++test を実行するよう設定できるようになりました。FIPS モードの設定」を参照してください。
  • Visual Studio Code ユーザーは、C/C++test の重要度 (1-5) を VS Code の重要度 (Error/Warning/Information/Hint) にマッピングし、VS Code 内でテキスト パターンを使用して C/C++test の重要度に基づいて違反をフィルターできるようになりました。

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

削除されたテスト コンフィギュレーション

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

  • MISRA C++ 202X

非推奨予定のコンパイラ

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

  • GNU GCC 5.x
  • GNU GCC 5.x (x86_64)
  • GNU GCC 6.x
  • GNU GCC 6.x (x86_64)
  • IAR Compiler for ARM v. 7.4x
  • IAR Compiler for ARM v. 7.8x
  • IAR Compiler for M16C & R8C v. 3.5x

非推奨のコンパイラ

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

  • Clang C/C++ Compiler v 6.0
  • FR Family Softune C/C++ Compiler V6
  • Green Hills Software Compiler for ARM64 v. 2014.1.x
  • Green Hills Software Compiler for PPC v. 4.2.x

  • Green Hills Software Compiler for PPC v. 5.0.x
  • Green Hills Software Compiler for V850 v. 2014.1.x
  • Microsoft Visual C++ 14.0
  • Microsoft Visual C++ 14.0 (x64)
  • SH Series C/C++ Compiler V.9.04.xx
  • TI MSP430 C/C++ Compiler GNU GCC 6.x
  • TI TMS320C2000 C/C++ Compiler v16.9
  • Vx-toolset for TriCore C/C++ Compiler 6.2
  • Wind River GCC 4.8.x

廃止されたコンパイラ

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

  • C compiler for 80C196 v. 6.0 r1
  • Clang C/C++ Compiler v 5.0
  • Freescale C/C++ Compiler v. 5.1 for Embedded ARM
  • Freescale CodeWarrior ANSI-C/cC++ Compiler 5.0.x for HC12
  • FreeScale CodeWarrior ColdFire v 6.0
  • GCC for Tricore 4.9.x
  • Green Hills Software Compiler for ARM v. 2014.1.x
  • Green Hills Software Compiler for PPC v. 4.0.x
  • Green Hills Software Compiler for V850 v. 2013.5.x
  • IAR Compiler for RX v. 2.5x
  • IAR Compiler for RX v. 2.6x
  • IAR Compiler for STM8 v. 1.4x
  • TI MSP430 C/C++ Compiler v4.0
  • TI TMS320C6x C/C++ Compiler v7.4
  • Wind River Diab 5.7.x
  • Wind River Diab 5.8.x
  • Wind River GCC 3.3.x
  • Wind River GCC 3.4.x
  • Wind River GCC 4.1.x
  • Wind River GCC 4.3.x

解決済みのバグおよび FR

2023.2.1

バグ/FR ID

説明

CPP-54999

[static] MISRA2004-13_7_n (MISRA2008-0_1_2_t) が static_assert 内の比較に対して違反を誤検出する

CPP-55017

[static] CODSTA-CPP-58 (MISRA2008-0_1_7) が static_assert 内で呼び出されている関数に対して違反を誤検出する

CPP-55126

[static] CODSTA-CPP-58 (AUTOSAR-A0_1_2-a) および MISRA2004-16_10 (AUTOSAR-M0_3_2-a) が decltype および static_assert 内の関数呼び出しに対して違反を誤検出する

CPP-55135

[rulewizard] Rule Wizard への static_assert サポートの追加

CPP-55281

[engine] インストゥルメンテーション エラー - CTAD の使用が constexpr で機能しない

CPP-55361

[static] GLOBAL-TEMPLNOINST (MISRA2008-14_7_1) - 明示的にインスタンス化されたクラスの関数に対して違反がレポートされない

CPP-55756

[engine] VS.2019 でコンパイル エラー: "xlocnum" header: error C2668: std::num_put<...>::do_put': ambiguous call to overloaded function

CPP-56001

[static] GLOBAL-ONEDEFRULE (MISRA2008-3_2_2) および GLOBAL-ONEEXTERNDEF (MISRA2008-3_2_4) がインライン変数の定義に対して違反を誤検出する

CPP-56006

[static] 条件が true になる 'if constexpr' に対して MISRA2004-14_10 (MISRA2008-6_4_2) が違反を誤検出する

CPP-56008

[static] MISRA2004-9_2_c (MISRA2008-8_5_2_c) が静的初期化および NSDMI 初期化された変数を持つ構造体に対して違反を誤検出する

CPP-56013

[static] generic ラムダで private メンバーが使用されている場合に OPT-05 (MISRA2008-0_1_3_c) が違反を誤検出する

CPP-56176

[static] AUTOSAR-M0_1_2-d の違反誤検出

CPP-56181

[rulewizard] 変数初期化子で Decltype とその引数が検出されない

CPP-56195

[rulewizard] 'decltype' 内の式を検出する新規プロパティ

CPP-56229

[static] 依存名のテンプレート disambiguator が使用されている場合、TEMPL-12 (MISRA2008-14_6_1) が違反を誤検出する

CPP-56230

[static] CODSTA-MCPP-23 (AUTOSAR-A12_4_2-a) がテンプレート forwarded クラス宣言に対して違反を誤検出する

CPP-56246

[ide] Visual Studio テスト ケースのデバッグの結果としてリンカー エラーが発生する (missing external symbol __imp_CppTest_addBreakpoint_vc)

CPP-56256

[static] MISRACPP2023-11_6_1-a (INIT-101): 範囲ベースの for イテレーター変数に対する違反の誤検出

CPP-56268

[engine] カバレッジ インストゥルメント後にインライン関数が解決されない

CPP-56304

[static] TEMPL-09 (AUTOSAR-A14_8_2-a) がテンプレート特殊化に対して違反を誤検出する

CPP-56460

[static] MISRA2008-0_1_7 が static_assert で呼び出された constexpr 関数に対して違反を誤検出する

CPP-56517

[static] MISRACPP2023-11_6_1-a 範囲ベースのループに対する違反の誤検出

CPP-56522

[static] MISRACPP2023-8_20_1-a (PB-73) がメモリを大量消費する

CPP-56535

[static] MISRACPP2023-7_0_2-a (CODSTA-CPP-212) の違反誤検出

CPP-56573

[static] MISRACPP2023-7_0_2-a (CODSTA-CPP-212) がテンプレートの bool 式に違反を誤検出する

CPP-56574

[static] MISRA C++ 2023 Rule 21.2.2 が Rule 18.2.2 とラベルされている

CPP-56600

[static] CODSTA-CPP-58 (MISRACPP2023-0_1_2-a) がテンプレート引数で使用された関数呼び出しに対して違反を誤検出する

CPP-56622

[engine] librulefileengine.so, LogicClient::allAccept(NodeProvider*) で SCA がシグナル 11 でクラッシュする

2023.2.0

バグ/FR ID

説明

CPP-45027

[cli] 実行ごとに複数のレポートを生成する方法が必要 (C/C++test Professional)

CPP-46135

[static] CERT-C INT13 のマッピングを改善する

CPP-47079

[static] AUTOSAR-A9_3_1 のマッピングを改善する

CPP-47353

[static] COMMENT-14 および COMMENT-14_b ルールを分割し、関数の宣言と定義に対して別個に違反をレポートする

CPP-47435

[cli] C/C++test Professional で 1 つのテスト実行から複数のフォーマットのレポートを生成する

CPP-47603

[static] コード内抑制で次の行の違反を抑制する方法を追加する

CPP-47674

[engine] constexpr 関数のコード カバレッジを収集する (非 consteval コンテキストで使用されている場合) 機能を追加する

CPP-47796

[static] テンプレート インスタンスをチェックするよう CODSTA-CPP-53 および CODSTA-CPP-43 を拡張するべき

CPP-48590

[static] CERTC ERR07-C のマッピングを改善する

CPP-49654

[ide] コマンド ラインでの \" シーケンスの処理を改善する

CPP-50307

[static] AUTOSAR A0-1-4 のマッピングを改善する

CPP-50659

[ide] C/C++test Professional - Visual Studio 2022 IDE のサポート

CPP-51362

[静的] AUTOSAR A9-6-1 のマッピングを改善する

CPP-51442

[engine] error: too few arguments for template template parameter "Tuple"

CPP-51639

[static] AUTOSAR A7-2-5 に例外を追加する

CPP-52200

[engine] error: no instance of constructor "tuple" matches the argument list

CPP-52204

[static] AUTOSAR A27-0-4 のマッピングを改善する

CPP-52327

[static] MISRAC2012-RULE_5_4-c/MISRAC2012-RULE_5_4-d: パフォーマンスの改善

CPP-52363

[compiler] IAR BXARM 9.20.3 のサポート

CPP-52532

[compiler] clang 16 (aarch32) のサポート

CPP-52566

[static] CERT-CPP-DCL60 [global] のマッピングを改善する

CPP-52600

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

CPP-52661

[static] メンバーの名前が派生クラスで再利用されている場合に違反をレポートする新規ルールを実装する

CPP-52704

[static] PFO-01 (MISRA2008-3_1_1) はヘッダー ファイルのインライン変数を許容するべき

CPP-52826

[static] CODSTA-CPP-53 (MISRA2008-7_1_1) ルールをラムダ式に対応するよう改善する

CPP-52973

[static] MISRA2008-3_4_1 に定数変数に関する例外を追加する

CPP-52983

complex 型の constexpr 変数がテンプレート引数として使用される場合、ルール OPT-05 が誤検出をレポートする

CPP-53009

[docs] cpptestcli -quiet オプションをドキュメントに記載する (C/C++test Standard)

CPP-53672

[static] GLOBAL-UNUSEDFUNC (MISRA2008-0_1_10) が汎用ラムダの operator() に対して違反を誤検出する

CPP-53673

[static] if 文の条件内でローカル変数が宣言されている場合、OPT-01 (MISRA2008-3_4_1_a) が違反を誤検出する

CPP-53711

[static] 標準ライブラリの NULL がスローの引数として使用されている場合、EXCEPT-12 (MISRA2008-15_1_2) が違反を誤検出する

CPP-53713

[rulewizard] 'IsInline' プロパティを拡張して変数がインラインとして宣言されていることをチェックする

CPP-53717

[static] 関数呼び出しとプロトタイプが同じマクロ定義内にある場合、MISRA-071_b (MISRAC2012-RULE_17_3-a) が違反を誤検出する

CPP-53757

[compiler] Tasking SmartCode 10.1 for TriCore のサポート

CPP-53760

[engine] error: name followed by "::" must be a class or namespace name

CPP-53765

[static] 条件で負値を持つ列挙型が使用されている場合、MISRA2004-13_7_s (AUTOSAR-M0_1_2-e) が違反を誤検出する

CPP-53766

[static] OPT-30 (AUTOSAR-A0_1_3-a) がテンプレート クラス内の friend 定義に対して違反を誤検出する

CPP-53767

[static] CODSTA-CPP-43 (AUTOSAR-A8_4_9-a) がテンプレート クラス内の friend 関数のパラメーターに対して違反を誤検出する

CPP-53777

[compiler] Hexagon 8.7 のサポート (Linux, Extended, Full)

CPP-53818

[engine] 実行関数のトレースで errno が適切に設定されていない場合がある

CPP-54754

[engine] 他のテンプレート関数から (特殊化されていない) テンプレート関数の呼び出しへのスタブ

CPP-54756

[ide] C/C++test Standard: Visual Studio IDE で CMake プロジェクトに解析結果をインポートする機能

CPP-54761

[engine] clang 8 以前のコンパイラ設定を改善する - 型名 "std::align_val_t" の有効な再定義 (overaligned_allocation_enabled=false)

CPP-54765

[static] GLOBAL-UNUSEDTYPE / INTERNAL-GLOBAL-UNUSEDTYPE_2: TypeError: argument of type 'NoneType' is not iterable

CPP-54766

[engine] error: static assertion failed - incorrect behaviour of std::is_trivially_copyable_v

CPP-54774

[engine] シグナル 11 が受信される: Stack trace: 0# 0x00007F07709136B0 in /lib64/libc.so.6

CPP-54776

[engine] テンプレート クラスの friend のコード カバレッジがない

CPP-54779

[engine] CWC: EDG failure error 83

CPP-54784

[static] MISRA-084: 'return' と同じ行でマクロが使用されている場合に違反が誤検出される

CPP-54806

[static] PREPROC-19: ルール実行時にエラーが発生する- SyntaxError: invalid token

CPP-54838

[engine] Internal error: assertion failed at: "il_to_str.c", line 3749

CPP-54839

[static] GLOBAL-ONEUSEVAR (MISRA2008-0_1_4) がラムダでキャプチャされた変数に対して違反を誤検出する

CPP-54884

[vscode] Parasoft の静的解析違反の重要度を VSCode メッセージの重要度にマッピングする

CPP-54933

[engine] C/C++test のインストゥルメンテーションが配列の括弧に囲まれた指定付き初期化子のコンパイルに失敗する

CPP-54946

[engine] Parse error: parameter of abstract class type is not allowed

CPP-54947

[static] AUTOSAR-M0_1_3 のマッピングを変更する (AUTOSAR-M0_1_3-b を削除する)

CPP-54949

[cli] "cpptest.fail.setup.problems" で設定した問題レベルに基づいて選択的に cpptestcli の実行を失敗させることができるようにする

CPP-54957

[ci] GitLab 向けの統合されたコード カバレッジ レポート

CPP-54961

[engine] Fatal error C++test: lambda capture of structure binding (32716)

CPP-55008

[engine] インストゥルメンテーションの誤りにより "error: invalid use of this at top level" が生成される

CPP-55011

[static] PB-20 (CERT_CPP-OOP51-a) がスライシングの問題を正しくチェックしていない

CPP-55016

[static] CERT ERR33 へのマッピングから CERT_C-ERR33-b を削除する

CPP-55022

[static] CODSTA-CPP-85 が 2 つの無関係なテンプレートに対して違反を生成する

CPP-55055

[ide] VS プラグインで Flag /std:c++20 がフィルターされる

CPP-55083

[static] 'time_t' 型の右側に 'const' 修飾子が置かれた場合、FORMAT-47_b (AUTOSAR-A7_1_3-a) が違反を誤検出する

CPP-55124

[static] CODSTA-CPP-58 (AUTOSAR-A0_1_2-a) が 'new' オペランドの内側にある関数の呼び出しに対して違反を誤検出する

CPP-55125

[static] CODSTA-224 (AUTOSAR-A5_16_1-a) がテンプレート関数で単独で使用されている条件演算子に対して違反を誤検出する

CPP-55128

[静的] CODSTA-MCPP-14 (AUTOSAR-A13_3_1-a) が enable_if を指定して定義されたフォワーディング コンストラクターに対して違反を誤検出する

CPP-55129

[static] メンバー関数が無名の共用体のメンバーを使用している場合に CODSTA-CPP-78 (AUTOSAR-M9_3_3-a) が違反を誤検出する

CPP-55132

[engine] CTOR スタブが Auto-Stub のように振る舞う

CPP-55134

[engine] カバレッジ ビルド "TYPED_TEST" が "ASSERT_NO_THROW"/"EXPECT_NO_THROW" との組み合わせで失敗する

CPP-55217

[engine] error: not declared in this scope

CPP-55233

[compiler] Hexagon Clang 8.6 がレスポンス ファイルを拡張しない

CPP-55272

[engine] parse error: no suitable user-defined conversion

CPP-55274

[engine] テンプレート関数にネストされたラムダはカバレッジ レポートで 1 度レポートされるべき

CPP-55276

[static] AUTOSAR-A13_2_3-a and std::enable_if

CPP-55508

[engine] error: expected { before : token instrumentation failure

CPP-55576

[engine] fix(tcov): テンプレートカバレッジで追加された 'else' 句の位置を修正

CPP-55610

[ide] Eclipse プロジェクトで仮想フォルダーが使用されている場合、データ ソースが誤ったフォルダーに作成される

CPP-55640

[static] HICPP-6_1_3 要件のマッピングの改善

CPP-55641

[static] スコープ付きの列挙子が使用されている場合、CODSTA-CPP-84 (HICPP-3_1_1-d) が違反を誤検出する

CPP-55740

[static] HICPP-8_3_4-a が lvalue 参照に対して違反を誤検出する

CPP-55745

[static] HIC++ 8.1.1 要件のマッピングの改善

CPP-55751

[ide] コンパイラ オプションの処理を向上させるため Renesas HEW-4 のインポーターを改善する

CPP-55753

[static] TEMPL-10 (HICPP-14_2_1-a) がテンプレート特殊化の定義に対して違反を誤検出する

CPP-55762

[ide] テスト ケース エディターから "std::vector<>" を引数とする関数のテスト ケースを作成できない

FA-9413

シミュレーションが new 操作から catch へのパスを考慮していない (std::bad_alloc)

FA-9457

変数が未初期化のままの場合に BD-PB-VOVR ルールが違反を誤検出する

FA-9471

BD-RES-STACKLIM が配列型として宣言された関数パラメーターのサイズを誤って計算する

FA-9479

BD-PB-OVERFNZT ルールが文字列リテラルから初期化された配列に対して違反を誤検出する

FA-9522

BD-PB-CC ルールが memcpy 関数によって上書きされた配列要素値に対して違反を誤検出する

FA-9555

BD-PB-VOVR ルールが constexpr / static_assert のコンテキストで使用されている変数に対して違反を誤検出する

FA-9599

BD-PB-CC を改善し、違反の後処理で記載された例外がスローされないようにする

FA-9605

BD-CO-ITMOD ルールが erase 関数に対して違反を誤検出する

FA-9607

参照渡しされた多次元配列に関する BD-PB-ARRAY ルールの違反誤検出

FA-9614

BD-PB-ARRAY ルールが参照渡しされたパラメーターに対して違反を誤検出する

FA-9618

a と b が等しくないことを適切にチェックしている分母 (a - b) に対する BD-PB-ZERO ルールの違反誤検出

FA-9624

ムーブ元オブジェクトのアドレスが placement-new への引数として使用されている場合、BD-PB-SUBSEQMOVE ルールが違反を誤検出する

FA-9625

BD-PB-NOTINIT ルールが括弧付きリストで初期化された未知のサイズの配列に対して違反を誤検出する

FA-9642

変数に対する複雑な算術 (例: 2 * x - x - x) に基づく不正確な推論

FA-9665

BD-PB-CC の誤検出

XT-41050

CppUnit の結果 - ダウンロードされるが IDE に表示されない

XT-41250NetworkId およびネットワーク識別子に基づくライセンスのサポートの廃止
XT-41295Visual Studio で新規行を追加した後に「指摘事項の詳細」の行番号が更新されない
XT-41333レポート内の空のファイルが未チェックとしてマークされているがテストされている
XT-41729日本語環境で CLI から生成された PDF が誤っている

ルールの更新

新規ルール

2023.2.1

ルール ID

ヘッダー

MISRACPP2023-21_2_2-a

<cstring>、<cstdlib>、<cwchar> および <cinttypes> の文字列処理関数を使用してはならない

2023.2.0

ルール ID

ヘッダー

AUTOSAR-A18_9_2-b

rvalue 参照を転送する場合、'std::move' 関数を使用する

AUTOSAR-A27_0_4-e

string オブジェクトに対して 'c_str()' および 'data()' 関数を使用しない

AUTOSAR-M3_2_4-b

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

BD-PB-LIFETIME

生存期間が終了したオブジェクトを使用しない

BD-PB-NAUNF

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

CERT_C-MSC14-b

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

CERT_C-MSC15-b

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

CODSTA-124_c

関数へのポインターと他の型の間でキャストしてはならない

CODSTA-185_c

'localeconv'、'getenv'、'setlocale' または 'strerror' 関数のアドレスを取得するべきではない

CODSTA-223_c

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

CODSTA-233

ビットフィールドの型は定義されたサイズを持つべきである

CODSTA-234

'asm' 宣言を使用するべきではない

CODSTA-235

ライブラリ関数 'rewind'、'setbuf' および 'ctime' を使用するべきではない

CODSTA-236

ビルトイン単項演算子 + を使用するべきではない

CODSTA-237

<cctype> および <cwctype> の文字処理関数を使用してはならない

CODSTA-238

<cstring> の C++ 標準ライブラリ関数 'memcpy'、'memmove' および 'memcmp' を使用するべきではない

CODSTA-239

errno に代入される値はリテラル値のゼロだけでなければならない

CODSTA-240

キャストでポインター型を 'intptr_t' および 'uintptr_t' 型に変換するべきではない

CODSTA-241

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

CODSTA-242

<cstring>、<cstdlib>、<cwchar> および <cinttypes> の文字列処理関数を使用してはならない

CODSTA-243

'switch' 文に 'case' および 'default' 以外のラベルが含まれるべきではない

CODSTA-304

ビットフィールドは適切な型を持つ必要がある

CODSTA-305

ビットフィールドの幅内ですべての列挙値が表現可能であるべきである

CODSTA-306

適切に volatile 修飾子を使用する

CODSTA-307

ビット演算子および補数演算子のオペランドは符号なしの型でなければならない

CODSTA-308

シフト演算子のオペランドは符号なしの型でなければならない

CODSTA-309

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

CODSTA-310

整数拡張および通常の算術変換がオペランドの型の符号またはカテゴリを変更してはならない

CODSTA-311

自動記憶域期間を持つオブジェクトのアドレスをより長い生存期間を持つオブジェクトに代入してはならない

CODSTA-312

数値型間の代入は適切に行う

CODSTA-313

固定された基底型を持たないスコープなしの列挙型の数値を使用してはならない

CODSTA-314

定数式とともに 'assert' マクロを使用してはならない

CODSTA-315

従来の for 文はシンプルであるべき

CODSTA-61_b

すべての列挙値をテストする場合を除いて、switch 文の最初または最後のラベルは 'default' ラベルであるべき

CODSTA-63_b

ビット演算子は符号なしのオペランドにだけ使用する

CODSTA-64_b

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

CODSTA-65_b

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

CODSTA-67_b

同一のエンティティのすべての宣言で同一の型エイリアスを使用する必要がある

CODSTA-CPP-110

派生クラスのメンバー変数名は、基底クラスのメンバー変数名と同じにするべきではない

CODSTA-CPP-111

'NULL' 識別子を使用するべきではない

CODSTA-CPP-112

std::remove、std::remove_if、std::unique および empty の結果を使用しなければならない

CODSTA-CPP-113

'std::locale::global' 関数を使用するべきではない

CODSTA-CPP-201

非静的データ メンバーはすべて private またはすべて public にするべきである

CODSTA-CPP-202

列挙型は明示的な基底型を指定して定義しなければならない

CODSTA-CPP-203

明示的または暗黙的な列挙子の値はナローイング変換の結果であってはならない

CODSTA-CPP-204

typeid のオペランドがポリモーフィックなクラス型の式であってはならない

CODSTA-CPP-205

クラスのユーザー定義のコピーおよびムーブ メンバー関数は適切なシグニチャを持つべきである

CODSTA-CPP-206

自身のオブジェクトへの参照を返すメンバー関数は適切に参照修飾されるべきである

CODSTA-CPP-207

省略記号を使用して渡される引数は適切な型を持つ必要がある

CODSTA-CPP-208

例外フレンドリーではない関数は noexcept でなければならない

CODSTA-CPP-209

constexpr ではないローカル以外の変数の初期化子として使用される関数は noexcept でなければならない

CODSTA-CPP-210

オーバーライドする仮想関数のパラメーターは異なるデフォルト引数を指定してはならない

CODSTA-CPP-211

ブール型からの変換があってはならない

CODSTA-CPP-212

ブール型への変換があってはならない

CODSTA-CPP-95_b 

標準ライブラリの名前空間 posix、std および stdN でエンティティを宣言しない

CODSTA-MCPP-101

for 範囲初期化子には最大で 1 つの関数呼び出しだけを含めることができる

CODSTA-MCPP-103

変数は一時的ではないラムダで明示的にキャプチャするべきである

CODSTA-MCPP-104

一時的ではないラムダが暗黙的に this をキャプチャしてはならない

CODSTA-MCPP-105

特別なメンバー関数を適切に用意する

CODSTA-MCPP-13_c

転送参照を転送する場合にだけ 'std::forward' 関数を使用するべきである

CODSTA-MCPP-13_d

rvalue 参照を転送する場合、'std::move' 関数を使用する

CODSTA-MCPP-47_b

クラスは、initializer-list コンストラクターが唯一のコンストラクターである場合にだけこれを定義する

CODSTA-MCPP-57

'std::shared_ptr' および 'std::unique_ptr' の raw ポインター コンストラクターを使用するべきではない

CODSTA-MCPP-58

C++ 17 規格で廃止されたヘッダーをインクルードしない

CODSTA-MCPP-59

C++17 規格で廃止された 'uncaught_exception' 関数を使用するべきではない

CODSTA-MCPP-60

'switch' 文の条件の直前には任意の単純な宣言だけが存在するべきである

CODSTA-MCPP-61

const への rvalue 参照型のパラメーターを持つ関数を =delete 定義する

COMMENT-14_c

すべての関数宣言は適切な文書化を持つべきである

CWE-190-i

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

EXCEPT-27

'try-block' の 'try' 文にはスローする可能性があるステートメントが含まれるべきである

FORMAT-50

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

GLOBAL-NOEXTERNDEF

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

GLOBAL-PREDICATENOSE

述語に永続的な副作用があってはならない

HICPP-17_3_2-b

転送参照を転送する場合にだけ 'std::forward' 関数を使用するべきである

HICPP-17_3_2-c

rvalue 参照を転送する場合、'std::move' 関数を使用する

INIT-101

自動記憶域期間を持つすべての非クラス変数を明示的に初期化するべきである

INIT-19

非集成体クラスすべての直接の非静的データ メンバーは、コンストラクターの先頭で初期化するべきである

INIT-20

集成体クラスすべての直接の非静的データ メンバーは、オブジェクトが作成されたらすぐに初期化するべきである

JSF-203_b

式の評価は、オーバーフロー/アンダーフローを避ける

MISRA-051_b

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

MISRA-102

3 階層以上のポインター間接参照を使用するべきではない

MISRA2008-3_2_4_b

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

MISRA2012-RULE-8_6_b

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

MISRAC2012-RULE_8_6-b

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

MISRACPP2023-0_0_1-a

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

MISRACPP2023-0_0_1-b

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

MISRACPP2023-0_0_1-c

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

MISRACPP2023-0_0_1-d

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

MISRACPP2023-0_0_1-e

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

MISRACPP2023-0_0_1-f

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

MISRACPP2023-0_0_1-g

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

MISRACPP2023-0_0_1-h

1 つの try-catch 文または関数監視ブロックに派生クラスおよびそのすべてまたは一部の基底クラスのハンドラがある場合、最後に派生されたクラスから基底クラスへの順でハンドラを記述する

MISRACPP2023-0_0_1-i

1 つの try-catch 文または function-try-block に複数のハンドラーがある場合、省略記法 (catch-all) ハンドラーは最後に置く

MISRACPP2023-0_0_1-j

'try-block' の 'try' 文にはスローする可能性があるステートメントが含まれるべきである

MISRACPP2023-0_0_2-a

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

MISRACPP2023-0_1_1-a

未使用の値を避ける

MISRACPP2023-0_1_2-a

オーバーロードされた演算子ではない関数から返された void 以外の戻り値は必ず使用する

MISRACPP2023-0_2_1-a

使用されないローカル変数は避ける

MISRACPP2023-0_2_1-b

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

MISRACPP2023-0_2_2-a

使用されないパラメータは削除する

MISRACPP2023-0_2_2-b

仮想関数に未使用の名前付きパラメーターがあってはならない

MISRACPP2023-0_2_3-a

無名の名前空間スコープで宣言された型を少なくとも 1 回は使用するべきである

MISRACPP2023-0_2_3-b

ブロック スコープで宣言された型を少なくとも 1 回は使用するべきである

MISRACPP2023-0_2_4-a

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

MISRACPP2023-0_3_1-a

浮動小数点値の比較にオブジェクト表現を使用しない

MISRACPP2023-0_3_1-b

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

MISRACPP2023-0_3_1-c

浮動小数点変数をループ カウンタとして使用してはならない

MISRACPP2023-0_3_1-d

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

MISRACPP2023-0_3_2-a

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

MISRACPP2023-10_0_1-a

各変数は、別個の宣言文で宣言しなければならない

MISRACPP2023-10_1_1-a

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

MISRACPP2023-10_1_1-b

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

MISRACPP2023-10_1_1-c

できる限り参照パラメータを const 参照として宣言する

MISRACPP2023-10_1_2-a

適切に volatile 修飾子を使用する

MISRACPP2023-10_2_1-a

列挙型は明示的な基底型を指定して定義しなければならない

MISRACPP2023-10_2_1-b

明示的または暗黙的な列挙子の値はナローイング変換の結果であってはならない

MISRACPP2023-10_2_2-a

スコープなしの列挙型ではなく、スコープ付きの列挙型を使用する

MISRACPP2023-10_2_3-a

固定された基底型を持たないスコープなしの列挙型の数値を使用してはならない

MISRACPP2023-10_3_1-a

ヘッダー ファイルに無名の名前空間があってはならない

MISRACPP2023-10_4_1-a

'asm' 宣言を使用するべきではない

MISRACPP2023-11_3_1-a

C スタイルの配列を使用してはならない

MISRACPP2023-11_3_2-a

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

MISRACPP2023-11_6_1-a

自動記憶域期間を持つすべての非クラス変数を明示的に初期化するべきである

MISRACPP2023-11_6_2-a

初期化の前に使用しない

MISRACPP2023-11_6_3-a

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

MISRACPP2023-12_2_1-a

メンバ変数をビット フィールドとして宣言してはいけない

MISRACPP2023-12_2_2-a

ビットフィールドは適切な型を持つ必要がある

MISRACPP2023-12_2_2-b

ビットフィールドの幅内ですべての列挙値が表現可能であるべきである

MISRACPP2023-12_2_3-a

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

MISRACPP2023-12_3_1-a

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

MISRACPP2023-13_1_1-a

仮想基底クラスからクラスを派生するべきではない

MISRACPP2023-13_1_2-a

同じ階層の中で、基底クラスを仮想と非仮想の両方にすることはできない

MISRACPP2023-13_3_1-a

オーバーライド仮想関数は override または final 指定子付きで宣言する必要がある

MISRACPP2023-13_3_1-b

メンバー関数の宣言では virtual、override、final のいずれか 1 つだけを指定するべきである

MISRACPP2023-13_3_2-a

オーバーライドする仮想関数のパラメーターは異なるデフォルト引数を指定してはならない

MISRACPP2023-13_3_3-a

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

MISRACPP2023-13_3_3-b

関数のすべてのオーバーライドのパラメーターは、無名であるか、同一の名前を持つべきである

MISRACPP2023-13_3_4-a

メンバー仮想関数を指すポインターは、null ポインター定数と等価かどうかだけをテストするべきである

MISRACPP2023-14_1_1-a

非静的データ メンバーはすべて private またはすべて public にするべきである

MISRACPP2023-15_0_1-a

特別なメンバー関数を適切に用意する

MISRACPP2023-15_0_1-b

デストラクターに空ではない本文がなければならない

MISRACPP2023-15_0_2-a

クラスのユーザー定義のコピーおよびムーブ メンバー関数は適切なシグニチャを持つべきである

MISRACPP2023-15_1_1-a

作成中のオブジェクトの動的型を使用しない

MISRACPP2023-15_1_1-b

破棄処理中のオブジェクトの動的型を使用しない

MISRACPP2023-15_1_2-a

クラスのすべてのコンストラクタは明示的に直接の基底クラスおよびすべての仮想基底クラスのコンストラクタを呼び出すべきである

MISRACPP2023-15_1_3-a

変換を可能にするコンストラクタは explicit にする

MISRACPP2023-15_1_3-b

ユーザー定義の変換を行うキャスト演算子は explicit にするべきである

MISRACPP2023-15_1_4-a

非集成体クラスすべての直接の非静的データ メンバーは、コンストラクターの先頭で初期化するべきである

MISRACPP2023-15_1_4-b

集成体クラスすべての直接の非静的データ メンバーは、オブジェクトが作成されたらすぐに初期化するべきである

MISRACPP2023-15_1_5-a

クラスは、initializer-list コンストラクターが唯一のコンストラクターである場合にだけこれを定義する

MISRACPP2023-15_8_1-a

operator= での自分自身への代入をチェックする

MISRACPP2023-16_5_1-a

論理演算子 AND、OR (&&、||) をオーバーロードしてはいけない

MISRACPP2023-16_5_2-a

単項演算子 & をオーバーロードしてはならない

MISRACPP2023-16_6_1-a

混合モードの演算子をサポートする場合、演算子を非メンバ関数にする

MISRACPP2023-17_8_1-a

関数テンプレートを明示的に特殊化してはならない

MISRACPP2023-18_1_1-a

例外オブジェクトはポインタ型にするべきではない

MISRACPP2023-18_1_2-a

空のスロー (throw;) は catch ハンドラの複合文でだけ使用する

MISRACPP2023-18_2_2-a

<cstring>、<cstdlib>、<cwchar> および <cinttypes> の文字列処理関数を使用してはならない

MISRACPP2023-18_3_1-a

他では処理されていないすべての例外をキャッチする例外ハンドラを少なくとも 1 つ用意するべきである

MISRACPP2023-18_3_2-a

クラス型の例外は常に参照でキャッチする

MISRACPP2023-18_3_3-a

コンストラクタまたはデストラクタの関数監視ブロックのハンドラは、そのクラスまたは基底クラスの静的でないメンバを参照してはならない

MISRACPP2023-18_4_1-a

例外フレンドリーではない関数は noexcept でなければならない

MISRACPP2023-18_4_1-b

constexpr ではないローカル以外の変数の初期化子として使用される関数は noexcept でなければならない

MISRACPP2023-18_5_1-a

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

MISRACPP2023-18_5_2-a

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

MISRACPP2023-18_5_2-b

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

MISRACPP2023-18_5_2-c

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

MISRACPP2023-19_0_1-a

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

MISRACPP2023-19_0_2-a

関数マクロを定義してはならない

MISRACPP2023-19_0_3-a

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

MISRACPP2023-19_0_4-a

#undef は、同じファイルで以前に定義されたマクロに対してだけ使用するべきである

MISRACPP2023-19_1_1-a

defined 前処理演算子は、2 つの標準形式のうち、いずれかの形式を用いなければならない

MISRACPP2023-19_1_2-a

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

MISRACPP2023-19_1_3-a

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

MISRACPP2023-19_2_1-a

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

MISRACPP2023-19_2_2-a

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

MISRACPP2023-19_2_3-a

#include 指令のヘッダー ファイル名には、非標準文字を記述すべきではない

MISRACPP2023-19_3_1-a

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

MISRACPP2023-19_3_2-a

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

MISRACPP2023-19_3_3-a

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

MISRACPP2023-19_3_4-a

# または ## のオペランドとして用いられる場合を除き、関数形式マクロの定義では、仮引数のそれぞれのインスタンスを括弧で囲まなければならない

MISRACPP2023-19_3_5-a

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

MISRACPP2023-19_6_1-a

#pragma ディレクティブを使用してはならない

MISRACPP2023-19_6_1-b

'_Pragma' 演算子を使用するべきではない

MISRACPP2023-21_10_1-a

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

MISRACPP2023-21_10_2-a

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

MISRACPP2023-21_10_2-b

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

MISRACPP2023-21_10_3-a

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

MISRACPP2023-21_2_1-a

<stdlib.h>ライブラリのライブラリ関数 atof、atoi、atol は、用いてはならない

MISRACPP2023-21_2_3-a

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

MISRACPP2023-21_2_4-a

<stddef.h> ライブラリのoffsetof マクロは、用いてはならない

MISRACPP2023-21_6_1-a

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

MISRACPP2023-21_6_2-a

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

MISRACPP2023-21_6_2-b

'std' 名前空間内の 'allocate' または 'deallocate' という名前のメンバー関数を使用するべきではない

MISRACPP2023-21_6_2-c

'std::unique_ptr::release' 関数を使用してはならない

MISRACPP2023-21_6_3-a

デストラクターを手動で呼び出してはならない

MISRACPP2023-21_6_3-b

'new' および 'delete' 演算子を宣言しない

MISRACPP2023-21_6_3-c

<new> および <memory> ヘッダーのメモリ管理関数を使用するべきではない

MISRACPP2023-21_6_3-d

高度なメモリ管理演算子 'new' および 'delete' を使用するべきではない

MISRACPP2023-21_6_4-a

サイズ指定付きとサイズ指定なしの両方のバージョンの delete 演算子を定義する

MISRACPP2023-21_6_5-a

削除の時点で不完全なオブジェクトを削除してはならない

MISRACPP2023-22_3_1-a

定数式とともに 'assert' マクロを使用してはならない

MISRACPP2023-22_4_1-a

errno に代入される値はリテラル値のゼロだけでなければならない

MISRACPP2023-23_11_1-a

'std::shared_ptr' および 'std::unique_ptr' の raw ポインター コンストラクターを使用するべきではない

MISRACPP2023-24_5_1-a

<cctype> および <cwctype> の文字処理関数を使用してはならない

MISRACPP2023-24_5_2-a

<cstring> の C++ 標準ライブラリ関数 'memcpy'、'memmove' および 'memcmp' を使用するべきではない

MISRACPP2023-25_5_1-a

'setlocale' 関数を使用するべきではない

MISRACPP2023-25_5_1-b

'std::locale::global' 関数を使用するべきではない

MISRACPP2023-25_5_2-a

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

MISRACPP2023-25_5_2-b

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

MISRACPP2023-25_5_2-c

'localeconv'、'getenv'、'setlocale' または 'strerror' 関数のアドレスを取得するべきではない

MISRACPP2023-25_5_3-a

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

MISRACPP2023-26_3_1-a

vector<bool> を使用しない

MISRACPP2023-28_3_1-a

述語に永続的な副作用があってはならない

MISRACPP2023-28_6_1-a

const または const & 型を指定して宣言されたオブジェクトに対して std::move を使用しない

MISRACPP2023-28_6_2-a

転送参照を転送する場合、'std::forward' 関数を使用する

MISRACPP2023-28_6_2-b

転送参照を転送する場合にだけ 'std::forward' 関数を使用するべきである

MISRACPP2023-28_6_3-a

std::forward に渡した引数を後で使用してはならない

MISRACPP2023-28_6_3-b

移動元オブジェクトの値に依存しない

MISRACPP2023-28_6_4-a

std::remove、std::remove_if、std::unique および empty の結果を使用しなければならない

MISRACPP2023-30_0_1-a

入出力ライブラリ stdio.h を使用してはならない

MISRACPP2023-30_0_1-b

stdio.h よりも iostream.h を使用する

MISRACPP2023-30_0_2-a

間にフラッシュまたは位置付けの処理を呼び出さずに交互にストリームの入力と出力を行ってはならない

MISRACPP2023-4_1_2-a

C++ 17 規格で廃止されたヘッダーをインクルードしない

MISRACPP2023-4_1_2-b

C++17 規格で廃止された 'uncaught_exception' 関数を使用するべきではない

MISRACPP2023-4_1_2-c

throw 例外仕様を使用しない

MISRACPP2023-4_1_2-d

constexpr 静的データ メンバーをクラス定義の外で宣言するべきではない

MISRACPP2023-4_1_3-a

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

MISRACPP2023-4_1_3-b

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

MISRACPP2023-4_1_3-c

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

MISRACPP2023-4_1_3-d

ゼロによる除算を避ける

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

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

MISRACPP2023-4_6_1-f

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

MISRACPP2023-4_6_1-g

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

MISRACPP2023-5_0_1-a

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

MISRACPP2023-5_10_1-a

標準ライブラリの名前空間 posix、std および stdN でエンティティを宣言しない

MISRACPP2023-5_10_1-b

1 つまたは 2 つのアンダースコア (_ または __) で始まる識別子を使用しない

MISRACPP2023-5_10_1-c

識別子に 2 つのアンダースコア '__' が含まれていてはならない

MISRACPP2023-5_10_1-d

ユーザー定義リテラル演算子のユーザー定義の接尾辞は、アンダースコアで始まり 1 文字以上の文字が続く必要がある

MISRACPP2023-5_10_1-e

ユーザー定義リテラル接尾辞はリテラル演算子の直後に置くべきである

MISRACPP2023-5_10_1-f

マクロ識別子は適切な形式であるべき

MISRACPP2023-5_10_1-g

標準ライブラリで予約された名前を持つ識別子を宣言してはならない

MISRACPP2023-5_13_1-a

ISO/IEC 14882:2014 で定義されたエスケープ シーケンスだけを使用する

MISRACPP2023-5_13_2-a

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

MISRACPP2023-5_13_3-a

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

MISRACPP2023-5_13_4-a

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

MISRACPP2023-5_13_5-a

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

MISRACPP2023-5_13_6-a

long long 型の整数リテラルは接尾辞に 1 つの 'L' または 'l' を使用してはならない

MISRACPP2023-5_13_7-a

エンコーディング接頭辞が異なる文字列リテラルを結合してはならない

MISRACPP2023-5_13_7-b

エンコーディング接頭辞がある文字列リテラルとない文字列リテラルを連結するべきではない

MISRACPP2023-5_7_1-a

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

MISRACPP2023-5_7_2-a

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

MISRACPP2023-5_7_3-a

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

MISRACPP2023-6_0_1-a

常にファイル スコープで関数を宣言する

MISRACPP2023-6_0_1-b

関数宣言中のパラメーター名は括弧で囲むべきではない

MISRACPP2023-6_0_1-c

変数宣言中のローカル変数名は括弧で囲むべきではない

MISRACPP2023-6_0_2-a

外部結合を持つ配列を宣言するときは、明示的にサイズを記述するか、初期化によって暗黙的にサイズを定義しなければならない

MISRACPP2023-6_0_3-a

グローバル名前空間は main() および名前空間の宣言だけを含むことができる

MISRACPP2023-6_0_4-a

識別子 main をグローバルな main 関数以外の関数に使用してはならない

MISRACPP2023-6_2_1-a

1 定義ルールに違反してはならない

MISRACPP2023-6_2_2-a

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

MISRACPP2023-6_2_2-b

例外指定付きで関数を宣言する場合、同じ関数の (他の翻訳単位にある) すべての宣言に同じ type-id のセットを付けて宣言しなければならない

MISRACPP2023-6_2_3-a

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

MISRACPP2023-6_2_3-b

複数の翻訳単位で使用される型は 1 つのファイルでだけ宣言されなければならない

MISRACPP2023-6_2_3-c

複数の翻訳単位で使用されるインライン関数は 1 つのファイルでだけ宣言されなければならない

MISRACPP2023-6_2_3-d

テンプレートの特殊化は、一次テンプレートまたは特殊化が宣言されたユーザー定義型と同じファイルに宣言する

MISRACPP2023-6_2_4-a

リンケージを持つ実体をヘッダー ファイルに定義しない

MISRACPP2023-6_4_1-a

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

MISRACPP2023-6_4_1-b

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

MISRACPP2023-6_4_1-c

ローカル スコープで宣言された識別子は、クラス スコープで宣言された識別子を隠ぺいしてはならない

MISRACPP2023-6_4_1-d

クラス スコープで宣言された識別子は、グローバルまたは名前空間のスコープで宣言された識別子を隠ぺいしてはならない

MISRACPP2023-6_4_1-e

内部クラスのスコープで宣言された識別子は、外側のクラスのスコープで宣言された識別子を隠ぺいしてはならない

MISRACPP2023-6_4_1-f

派生クラスのメンバー変数名は、基底クラスのメンバー変数名と同じにするべきではない

MISRACPP2023-6_4_2-a

継承された非仮想関数を再定義してはいけない

MISRACPP2023-6_4_2-b

派生クラスで宣言されたメンバー関数は、基底クラスで宣言された関数を隠してはならない

MISRACPP2023-6_4_3-a

依存基底クラスを持つクラス テンプレートでは、依存基底クラスで見つかるすべての名前を修飾識別子または this-> を使用して参照する

MISRACPP2023-6_5_1-a

外部リンケージを持つオブジェクトまたは関数は、ヘッダー ファイルで宣言しなければならない

MISRACPP2023-6_5_2-a

関数およびクラスの外部で static キーワードを使用してはならない

MISRACPP2023-6_5_2-b

識別子は同一の翻訳単位において内部リンケージと外部リンケージを同時に持ってはならない

MISRACPP2023-6_7_1-a

ローカル変数は静的記憶域期間を持ってはならない

MISRACPP2023-6_7_2-a

カプセル化されていないグローバル変数 (名前空間で宣言された変数や public static メンバーを含む) を避ける

MISRACPP2023-6_8_1-a

解放済みのラップされたオブジェクトを指してはならない

MISRACPP2023-6_8_1-b

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

MISRACPP2023-6_8_1-c

生存期間が終了したオブジェクトを使用しない

MISRACPP2023-6_8_2-a

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

MISRACPP2023-6_8_2-b

ローカル オブジェクトを参照でキャプチャするラムダを返してはならない

MISRACPP2023-6_8_3-a

自動記憶域期間を持つオブジェクトのアドレスをより長い生存期間を持つオブジェクトに代入してはならない

MISRACPP2023-6_8_4-a

自身のオブジェクトへの参照を返すメンバー関数は適切に参照修飾されるべきである

MISRACPP2023-6_9_1-a

同一のエンティティのすべての宣言で同一の型エイリアスを使用する必要がある

MISRACPP2023-6_9_2-a

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

MISRACPP2023-7_0_1-a

ブール型からの変換があってはならない

MISRACPP2023-7_0_2-a

ブール型への変換があってはならない

MISRACPP2023-7_0_3-a

単なる char 型は、文字データの格納及び使用に限って用いなければならない

MISRACPP2023-7_0_3-b

signed char 型及び unsigned char 型は、数値データの格納及び使用に限って用いなければならない

MISRACPP2023-7_0_4-a

ビット演算子および補数演算子のオペランドは符号なしの型でなければならない

MISRACPP2023-7_0_4-b

シフト演算子のオペランドは符号なしの型でなければならない

MISRACPP2023-7_0_5-a

整数拡張および通常の算術変換がオペランドの型の符号またはカテゴリを変更してはならない

MISRACPP2023-7_0_6-a

数値型間の代入は適切に行う

MISRACPP2023-7_11_1-a

NULL または 0 (ゼロ) ではなく nullptr を使用する

MISRACPP2023-7_11_1-b

'NULL' 識別子を使用するべきではない

MISRACPP2023-7_11_2-a

ポインター型または配列型のパラメーターを持つ関数に配列型の式を渡してはならない

MISRACPP2023-7_11_3-a

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

MISRACPP2023-8_0_1-a

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

MISRACPP2023-8_0_1-b

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

MISRACPP2023-8_14_1-a

論理演算子 && または || の右側のオペランドには、永続的な副作用があるべきではない

MISRACPP2023-8_18_1-a

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

MISRACPP2023-8_18_1-b

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

MISRACPP2023-8_18_1-c

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

MISRACPP2023-8_18_2-a

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

MISRACPP2023-8_19_1-a

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

MISRACPP2023-8_1_1-a

一時的ではないラムダが暗黙的に this をキャプチャしてはならない

MISRACPP2023-8_1_2-a

変数は一時的ではないラムダで明示的にキャプチャするべきである

MISRACPP2023-8_20_1-a

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

MISRACPP2023-8_20_1-b

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

MISRACPP2023-8_2_1-a

仮想基底クラスへのポインタは dynamic_cast によってだけ派生クラスへのポインタにキャストできる

MISRACPP2023-8_2_10-a

再帰を使用しない

MISRACPP2023-8_2_11-a

省略記号を使用して渡される引数は適切な型を持つ必要がある

MISRACPP2023-8_2_2-a

void へのキャスト以外の C スタイルのキャストおよび明示的なコンストラクタ呼び出し以外の関数スタイルのキャストを使用してはならない

MISRACPP2023-8_2_3-a

キャストによってポインターまたは参照型から const または volatile 修飾子を取り除いてはならない

MISRACPP2023-8_2_4-a

関数へのポインターと他の型の間でキャストしてはならない

MISRACPP2023-8_2_5-a

reinterpret_cast を使用しない

MISRACPP2023-8_2_6-a

整数型のオブジェクトまたは void 型へのポインタをポインタ型のオブジェクトに変換してはならない

MISRACPP2023-8_2_6-b

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

MISRACPP2023-8_2_7-a

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

MISRACPP2023-8_2_7-b

キャストでポインター型を 'intptr_t' および 'uintptr_t' 型に変換するべきではない

MISRACPP2023-8_2_8-a

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

MISRACPP2023-8_2_9-a

typeid のオペランドがポリモーフィックなクラス型の式であってはならない

MISRACPP2023-8_3_1-a

単項マイナス (-) 演算子を、潜在型が符号なしの式に用いてはならない

MISRACPP2023-8_3_2-a

ビルトイン単項演算子 + を使用するべきではない

MISRACPP2023-8_7_1-a

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

MISRACPP2023-8_7_1-b

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

MISRACPP2023-8_7_1-c

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

MISRACPP2023-8_7_1-d

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

MISRACPP2023-8_7_1-e

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

MISRACPP2023-8_7_2-a

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

MISRACPP2023-8_9_1-a

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

MISRACPP2023-9_2_1-a

式文は、一時オブジェクトのコンストラクターの明示的な呼び出しだけを含むべきではない

MISRACPP2023-9_3_1-a

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

MISRACPP2023-9_3_1-b

if および else の後には複合文を続けなければならない

MISRACPP2023-9_4_1-a

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

MISRACPP2023-9_4_2-a

すべての列挙値をテストする場合を除いて、switch 文の最初または最後のラベルは 'default' ラベルであるべき

MISRACPP2023-9_4_2-b

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

MISRACPP2023-9_4_2-c

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

MISRACPP2023-9_4_2-d

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

MISRACPP2023-9_4_2-e

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

MISRACPP2023-9_4_2-f

'switch' 文に 'case' および 'default' 以外のラベルが含まれるべきではない

MISRACPP2023-9_4_2-g

'switch' 文の条件の直前には任意の単純な宣言だけが存在するべきである

MISRACPP2023-9_5_1-a

従来の for 文はシンプルであるべき

MISRACPP2023-9_5_2-a

for 範囲初期化子には最大で 1 つの関数呼び出しだけを含めることができる

MISRACPP2023-9_6_1-a

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

MISRACPP2023-9_6_2-a

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

MISRACPP2023-9_6_3-a

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

MISRACPP2023-9_6_4-a

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

MISRACPP2023-9_6_5-a

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

MRM-59

'new' および 'delete' 演算子を宣言しない

MRM-60

<new> および <memory> ヘッダーのメモリ管理関数を使用するべきではない

MRM-61

高度なメモリ管理演算子 'new' および 'delete' を使用するべきではない

MRM-62_a

'std' 名前空間内の 'allocate' または 'deallocate' という名前のメンバー関数を使用するべきではない

MRM-62_b

'std::unique_ptr::release' 関数を使用してはならない

NAMING-33_b

識別子に 2 つのアンダースコア '__' が含まれていてはならない

NAMING-51_b

ユーザー定義リテラル接尾辞はリテラル演算子の直後に置くべきである

NAMING-55

マクロ識別子は適切な形式であるべき

NAMING-56

標準ライブラリで予約された名前を持つ識別子を宣言してはならない

NAMING-57

関数のすべてのオーバーライドのパラメーターは、無名であるか、同一の名前を持つべきである

OPT-44

constexpr 静的データ メンバーをクラス定義の外で宣言するべきではない

OPT-45

内部リンケージを持つ非定数オブジェクトは、1 つの関数だけからアクセスされる場合、関数スコープで定義するべきである

OPT-46

無名の名前空間スコープで宣言された型を少なくとも 1 回は使用するべきである

OPT-47

ブロック スコープで宣言された型を少なくとも 1 回は使用するべきである

OPT-48

デストラクターに空ではない本文がなければならない

PB-38_c

エンコーディング接頭辞がある文字列リテラルとない文字列リテラルを連結するべきではない

PB-73_b

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

PORT-38

long long 型の整数リテラルは接尾辞に 1 つの 'L' または 'l' を使用してはならない

PREPROC-23_b

'_Pragma' 演算子を使用するべきではない

PREPROC-25_b

#undef は、同じファイルで以前に定義されたマクロに対してだけ使用するべきである

PREPROC-28

関数マクロを定義してはならない

SECURITY-54

string オブジェクトに対して 'c_str()' および 'data()' 関数を使用しない

TEMPL-09_b

関数テンプレートを明示的に特殊化してはならない

更新されたルール

2023.2.1

カテゴリ ID

ルール ID

AUTOSAR C++14 Coding Guidelines

AUTOSAR-A0_1_2-a, AUTOSAR-A12_4_2-a, AUTOSAR-A14_8_2-a, AUTOSAR-M0_1_2-d, AUTOSAR-M0_1_3-c, AUTOSAR-M0_3_2-a, AUTOSAR-M14_6_1-a, AUTOSAR-M3_2_2-a, AUTOSAR-M3_2_4-a, AUTOSAR-M3_2_4-b, AUTOSAR-M6_4_2-a, AUTOSAR-M8_5_2-c

C++ コーディング規約

CODSTA-CPP-212, CODSTA-CPP-58

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

CODSTA-MCPP-23

コーディング規約

CODSTA-122_a, CODSTA-242

Common Weakness Enumeration

CWE-190-g

グローバル静的解析

GLOBAL-NOEXTERNDEF, GLOBAL-ONEDEFRULE, GLOBAL-ONEEXTERNDEF, GLOBAL-TEMPLNOINST

High Integrity C++

HICPP-14_2_2-a, HICPP-6_1_2-a

初期化

INIT-101

Joint Strike Fighter

JSF-105, JSF-115, JSF-115_a, JSF-203

MISRA C 1998

MISRA-051

MISRA C 2004

MISRA2004-13_7_n, MISRA2004-14_10, MISRA2004-16_10, MISRA2004-9_2_c

MISRA C 2012 (Legacy)

MISRA2012-RULE-15_7, MISRA2012-RULE-17_7_a, MISRA2012-RULE-8_6, MISRA2012-RULE-8_6_b

MISRA C 2023 (MISRA C 2012)

MISRAC2012-RULE_15_7-a, MISRAC2012-RULE_17_7-a, MISRAC2012-RULE_8_6-a, MISRAC2012-RULE_8_6-b

MISRA C++ 2008

MISRA2008-0_1_2_t, MISRA2008-0_1_3_c, MISRA2008-0_1_7, MISRA2008-0_3_2, MISRA2008-14_6_1, MISRA2008-14_7_1, MISRA2008-14_8_1, MISRA2008-3_2_2, MISRA2008-3_2_4, MISRA2008-3_2_4_b, MISRA2008-6_4_2, MISRA2008-8_5_2_c

MISRA C++ 2023

MISRACPP2023-0_1_2-a, MISRACPP2023-11_6_1-a, MISRACPP2023-6_2_1-a, MISRACPP2023-6_2_3-a, MISRACPP2023-6_4_3-a, MISRACPP2023-7_0_2-a, MISRACPP2023-8_20_1-a

最適化

OPT-05

バグの可能性

PB-73

SEI CERT C++

CERT_CPP-DCL60-a

SEI CERT C

CERT_C-EXP12-a, CERT_C-MSC01-a, CERT_C-MSC14-a, CERT_C-MSC15-a

テンプレート

TEMPL-09, TEMPL-12

2023.2.0

カテゴリ ID

ルール ID

AUTOSAR C++14 Coding Guidelines

AUTOSAR-A0_1_1-a, AUTOSAR-A0_1_2-a, AUTOSAR-A0_1_3-a, AUTOSAR-A0_1_4-a, AUTOSAR-A0_1_6-a, AUTOSAR-A12_8_3-a, AUTOSAR-A13_2_3-a, AUTOSAR-A13_3_1-a, AUTOSAR-A15_4_2-a, AUTOSAR-A18_0_3-b, AUTOSAR-A18_9_2-a, AUTOSAR-A23_0_2-a, AUTOSAR-A27_0_2-a, AUTOSAR-A27_0_2-b, AUTOSAR-A27_0_3-a, AUTOSAR-A2_10_1-d, AUTOSAR-A3_1_1-a, AUTOSAR-A3_3_1-b, AUTOSAR-A4_10_1-b, AUTOSAR-A5_0_3-a, AUTOSAR-A5_16_1-a, AUTOSAR-A5_1_4-a, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-c, AUTOSAR-A5_6_1-a, AUTOSAR-A7_1_1-a, AUTOSAR-A7_1_1-b, AUTOSAR-A7_1_3-a, AUTOSAR-A7_2_5-a, AUTOSAR-A7_4_1-a, AUTOSAR-A8_4_2-a, AUTOSAR-A8_4_3-b, AUTOSAR-A8_4_9-a, AUTOSAR-A8_5_0-a, AUTOSAR-A8_5_4-a, AUTOSAR-A9_3_1-a, AUTOSAR-A9_3_1-b, AUTOSAR-A9_6_1-a, AUTOSAR-M0_1_1-b, AUTOSAR-M0_1_10-a, AUTOSAR-M0_1_10-b, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_1_2-b, AUTOSAR-M0_1_2-e, AUTOSAR-M0_1_2-f, AUTOSAR-M0_1_2-g, AUTOSAR-M0_1_3-c, AUTOSAR-M0_1_4-a, AUTOSAR-M0_3_1-a, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-c, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-e, AUTOSAR-M0_3_1-g, AUTOSAR-M15_1_2-a, AUTOSAR-M16_1_1-a, AUTOSAR-M3_4_1-a, AUTOSAR-M3_4_1-b, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_16-b, AUTOSAR-M5_0_17-a, AUTOSAR-M5_0_18-a, AUTOSAR-M5_2_8-a, AUTOSAR-M7_1_2-c, AUTOSAR-M9_3_3-a

C++ コーディング規約

CODSTA-CPP-101, CODSTA-CPP-43, CODSTA-CPP-50, CODSTA-CPP-53, CODSTA-CPP-53_b, CODSTA-CPP-58, CODSTA-CPP-78, CODSTA-CPP-84

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

CODSTA-MCPP-04, CODSTA-MCPP-13_b, CODSTA-MCPP-14, CODSTA-MCPP-17, CODSTA-MCPP-47

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

CODSTA-MC-101

コーディング規約

CODSTA-04, CODSTA-122_a, CODSTA-185_a, CODSTA-185_b, CODSTA-224, CODSTA-227, CODSTA-301, CODSTA-302, CODSTA-55, CODSTA-65, CODSTA-89

Common Weakness Enumeration

CWE-119-a, CWE-119-e, CWE-125-a, CWE-190-g, CWE-787-a, CWE-787-d

DISA ASD STIG

APSC_DV-002590-b, APSC_DV-002590-d

例外

EXCEPT-12

フロー解析

BD-CO-ITMOD, BD-PB-ARRAY, BD-PB-BYTEORD, BD-PB-CC, BD-PB-NOEXCEPT, BD-PB-NOTINIT, BD-PB-OVERFNZT, BD-PB-OVERFWR, BD-PB-OVERLAP, BD-PB-POVR, BD-PB-PTRARR, BD-PB-PTRCMP, BD-PB-PTRSUB, BD-PB-STREAMINOUT, BD-PB-SUBSEQFWRD, BD-PB-SUBSEQMOVE, BD-PB-VOVR, BD-PB-ZERO

書式

FORMAT-47_b

グローバル静的解析

GLOBAL-ONEUSEVAR , GLOBAL-UNUSEDFUNC, GLOBAL-UNUSEDTYPE

High Integrity C++

HICPP-13_1_2-a, HICPP-13_2_2-a, HICPP-14_2_1-a, HICPP-15_3_2-c, HICPP-17_3_2-a, HICPP-1_2_1-b, HICPP-1_2_1-i, HICPP-2_5_3-a, HICPP-3_1_1-d, HICPP-3_5_1-c, HICPP-3_5_1-d, HICPP-5_2_1-a, HICPP-5_5_1-a, HICPP-5_8_1-a, HICPP-6_1_3-a, HICPP-6_3_2-a, HICPP-6_4_1-a, HICPP-7_1_2-a, HICPP-7_1_2-b, HICPP-7_4_1-a, HICPP-8_1_1-a, HICPP-8_4_1-a, HICPP-9_1_1-a, HICPP-9_1_4-a

Joint Strike Fighter

JSF-019, JSF-039_a, JSF-070.1_b, JSF-104, JSF-114, JSF-115_a, JSF-117.1, JSF-135_d, JSF-136_b, JSF-148, JSF-170, JSF-171, JSF-186_b, JSF-186_h, JSF-203

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

MRM-31_b

MISRA C 1998

MISRA-051, MISRA-071_a, MISRA-071_b, MISRA-084, MISRA-121_a

MISRA C 2004

MISRA2004-13_7_s, MISRA2004-13_7_t, MISRA2004-13_7_u, MISRA2004-13_7_v, MISRA2004-14_1_b, MISRA2004-16_8, MISRA2004-16_8_b, MISRA2004-17_5, MISRA2004-19_14, MISRA2004-8_1_a, MISRA2004-8_1_b

MISRA C 2012 (Legacy)

MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_c, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_h, MISRA2012-DIR-4_1_i, MISRA2012-DIR-4_1_j, MISRA2012-RULE-11_8, MISRA2012-RULE-12_1_a, MISRA2012-RULE-12_2_b, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-17_3, MISRA2012-RULE-17_4, MISRA2012-RULE-17_4_b, MISRA2012-RULE-17_7_a, MISRA2012-RULE-18_1_a, MISRA2012-RULE-18_1_c, MISRA2012-RULE-18_2, MISRA2012-RULE-18_3, MISRA2012-RULE-18_5, MISRA2012-RULE-19_1_c, MISRA2012-RULE-1_3_a, MISRA2012-RULE-1_3_b, MISRA2012-RULE-1_3_e, MISRA2012-RULE-20_11, MISRA2012-RULE-20_8, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_19_a, MISRA2012-RULE-21_19_b, MISRA2012-RULE-22_13, MISRA2012-RULE-2_1_b, MISRA2012-RULE-2_2_b, MISRA2012-RULE-9_1

MISRA C 2023 (MISRA C 2012)

MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-c, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_1-i, MISRAC2012-DIR_4_1-j, MISRAC2012-RULE_11_8-a, MISRAC2012-RULE_12_1-a, MISRAC2012-RULE_12_2-b, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_17_3-a, MISRAC2012-RULE_17_4-a, MISRAC2012-RULE_17_4-b, MISRAC2012-RULE_17_7-a, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_18_1-c, MISRAC2012-RULE_18_2-a, MISRAC2012-RULE_18_3-a, MISRAC2012-RULE_18_5-a, MISRAC2012-RULE_19_1-c, MISRAC2012-RULE_1_3-a, MISRAC2012-RULE_1_3-b, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_20_11-a, MISRAC2012-RULE_20_8-a, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_19-a, MISRAC2012-RULE_21_19-b, MISRAC2012-RULE_22_13-a, MISRAC2012-RULE_2_1-b, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_9_1-a

MISRA C++ 2008

MISRA2008-0_1_10, MISRA2008-0_1_10_b, MISRA2008-0_1_1_b, MISRA2008-0_1_2_aa, MISRA2008-0_1_2_sz, MISRA2008-0_1_2_u, MISRA2008-0_1_2_v, MISRA2008-0_1_2_w, MISRA2008-0_1_3_c, MISRA2008-0_1_4, MISRA2008-0_1_5, MISRA2008-0_1_6, MISRA2008-0_1_7, MISRA2008-0_3_1_a, MISRA2008-0_3_1_c, MISRA2008-0_3_1_e, MISRA2008-0_3_1_h, MISRA2008-0_3_1_i, MISRA2008-0_3_1_j, MISRA2008-14_7_3, MISRA2008-15_1_2, MISRA2008-15_5_2_b, MISRA2008-15_5_3_l, MISRA2008-16_1_1, MISRA2008-3_1_1, MISRA2008-3_4_1_a, MISRA2008-3_4_1_b, MISRA2008-5_0_16_a, MISRA2008-5_0_16_b, MISRA2008-5_0_17, MISRA2008-5_0_18, MISRA2008-5_0_19, MISRA2008-5_2_8, MISRA2008-7_1_1, MISRA2008-7_1_1_b, MISRA2008-7_1_2_b, MISRA2008-8_4_3, MISRA2008-9_3_2_a, MISRA2008-9_3_2_b, MISRA2008-9_3_3

オブジェクト指向

OOP-12, OOP-36

最適化

OPT-01, OPT-03, OPT-05, OPT-30

OWASP API Security Top 10 (2019)

OWASP2019-API3-b, OWASP2019-API3-e, OWASP2019-API3-g

物理ファイル編成

PFO-01

バグの可能性

PB-20, PB-73

プリプロセッサ

PREPROC-16, PREPROC-19

セキュリティ

SECURITY-09

SEI CERT C++

CERT_CPP-CTR51-a, CERT_CPP-CTR54-b, CERT_CPP-CTR54-c, CERT_CPP-DCL60-a, CERT_CPP-ERR50-m, CERT_CPP-EXP53-a, CERT_CPP-EXP61-a, CERT_CPP-EXP63-a, CERT_CPP-FIO50-a, CERT_CPP-MSC52-a, CERT_CPP-OOP51-a, CERT_CPP-STR50-b, CERT_CPP-STR50-c

SEI CERT C

CERT_C-API01-a, CERT_C-ARR30-a, CERT_C-ARR36-a, CERT_C-ARR36-b, CERT_C-ARR38-b, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-DCL00-a, CERT_C-DCL00-b, CERT_C-DCL19-a, CERT_C-DCL22-a, CERT_C-ENV01-c, CERT_C-ENV30-a, CERT_C-ERR07-b, CERT_C-EXP08-b, CERT_C-EXP12-a, CERT_C-EXP33-a, CERT_C-EXP37-d, CERT_C-FIO37-a, CERT_C-FIO39-a, CERT_C-FLP03-a, CERT_C-INT13-a, CERT_C-INT33-a, CERT_C-MSC07-b, CERT_C-MSC12-b, CERT_C-MSC12-j, CERT_C-MSC14-a, CERT_C-MSC15-a, CERT_C-MSC19-a, CERT_C-MSC37-a, CERT_C-POS30-a, CERT_C-POS39-a, CERT_C-POS54-a, CERT_C-STR03-a, CERT_C-STR31-a, CERT_C-STR31-b, CERT_C-STR32-a

テンプレート

TEMPL-10

削除されたルール

2023.2.1

ルール ID

説明

MISRACPP2023-18_2_2-a

代わりに MISRACPP2023-21_2_2-a を使用するべきです

2023.2.0

ルール ID

説明

AUTOSAR-M0_1_3-b

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

CERT_C-ERR33-b

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

JSF-117_a

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

MISRA2008-0_1_3_b

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

MISRA2012-RULE-12_1_b

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

MISRAC2012-RULE_12_1-b

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

MISRACPP202X (すべてのルール)

代替として MISRA C++ 2023 ルールを使用します。


  • No labels