このリリースには以下の拡張が含まれます。
リリース日: 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-41250 | NetworkId およびネットワーク識別子に基づくライセンスのサポートの廃止 |
XT-41295 | Visual 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 ルールを使用します。 |