このリリースには、以下の拡張が含まれます。
リリース日: 2022年11月28日
Automotive Compliance Pack の拡張
Automotive Pack が拡張され、自動車規格への準拠を達成するのに役立つようになりました。
- MISRA C 2012 テスト コンフィギュレーションが拡張され、MISRA C 2012 Amendment 3 に関する新規ルールの追加およびルールの更新が行われました。
- 新規テスト コンフィギュレーション MISRA C++ 202X が追加されました。このプレビュー コンフィギュレーションは、「Public Review Draft of MISRA C++ 202X」文書のガイドラインの一部をカバーしています。
- 追加および更新されたルールの一覧は「新規ルール」、「更新されたルール」を参照してください。
Security Compliance Pack の拡張
Security Pack が拡張され、セキュリティ規格へのコンプライアンス達成に役立つ新規テスト コンフィギュレーション 2022 CWE Top 25 および 2022 CWE Top 25 + on the Cusp が追加されました。
静的解析の拡張
- 正規表現ベースの行抑制が拡張され、ルール識別子を指定できるようになりました。詳細については「正規表現パターンに基づく行抑制の定義」を参照してください。
- モダン C/C++ C11 _Generic および if constexpr のサポート拡張などにより、静的解析の精度が向上しました。
単体テストの拡張
- C++ テンプレートのスタブ化がサポートされました。サポート対象のコンパイラおよび制限事項を含む詳細については、「C++ テンプレートに対してスタブを使用する」を参照してください。
- C++ テンプレートのコード カバレッジ解析が改善されました。
コンパイラのサポート
以下のコンパイラがサポートされています。
コンパイラ名 | コンパイラ識別子: |
---|---|
GHS Compiler for PPC 2019.1 | ghsppc_2019_1 |
GHS Compiler for PPC 2020.1 | ghsppc_2020_1 |
GNU GCC 8.x for aarch64/ARM64 | gcc_8-aarch64 |
GNU GCC 10.x for aarch64/ARM64 | gcc_10-aarch64 |
GNU GCC 11.x for aarch64/ARM64 | gcc_11-aarch64 |
追加または更新された解析ルール
新規コード解析ルールが追加され、より広くコンプライアンス規格がカバーされるようになりました。追加および更新されたルールの一覧は「新規ルール」、「更新されたルール」を参照してください。
新規テスト コンフィギュレーション
以下のテスト コンフィギュレーションが追加されました。
- MISRA C++ 202X
- CWE Top 25 2022
- CWE Top 25 + on the Cusp 2022
以下のテスト コンフィギュレーションに新規ルールが追加されました。
- AUTOSAR C++14 Coding Guidelines
- Flow Analysis Aggressive
- Flow Analysis Fast
- Flow Analysis Standard
- MISRA C 2004
- MISRA C 2012
- MISRA C++ 2008
- Recommended Rules for FDA (C++)
- SEI CERT C Guidelines
- SEI CERT C Rules
- SEI CERT C++ Rules
その他のアップデート
- GitHub CI/CD 統合がアップデートされ、静的解析結果のベースライン化がサポートされるようになりました。次のドキュメントを参照してください: https://github.com/parasoft/run-cpptest-action/blob/master/README.md
- GitLab CI/CD 統合がアップデートされ、静的解析結果のベースライン化がサポートされるようになりました。次のドキュメントを参照してください: https://gitlab.com/parasoft/cpptest-gitlab/-/blob/master/README.md
- コマンド ラインから GUI に設定をインポートできます。詳細については、「コマンドライン オプション」ページの "-settings" または "-property" を参照してください。
- IDE および CLI ベースのワークフローで OKTA を使用した OIDC 認証がサポートされました。詳細については「GUI での OpenID Connect の設定」および「コマンド ラインでの OpenID Connect の設定」を参照してください。
- フロー解析エンジンの全般的な改善により、以前のバージョンでレポートされた違反と差異が生じる可能性があります。
- TFS SDK ライブラリが Parasoft の一部として配布されなくなりました。TFS サポートを利用するには、ベンダーから提供される TFS SDK をマシンにインストールする必要があります
非推奨の機能
Team Server の次の機能が非推奨になり、2023 年に削除される予定です。
- Team Server でのテスト コンフィギュレーション、ルール、ルール マップの保存
- IDE のグラフィカル エディターでの Team Server テスト コンフィギュレーションの編集
- グローバル ゴール管理
- Team Server での作成者の再割り当て
解決済みのバグおよび FR
バグ/FR ID | 説明 |
---|---|
CPP-36168 | [カバレッジ] テンプレート クラス内の friend 宣言によって定義されたテンプレート関数に対してコード カバレッジがレポートされない |
CPP-42657 | [静的] AUTOSAR A6-5-3 のマッピングを改善する |
CPP-46218 | [IDE] IDE で設定をインポート/エクスポートする際にコンフィギュレーション > CustomCompilers を含める必要がある |
CPP-47394 | [engine][edg] Parse error: error: "constexpr" is not valid here (clang_8_0) |
CPP-48228 | [unit] C++ テンプレートのスタブ化のサポート |
CPP-50150 | [静的] AUTOSAR A12-1-2 のマッピングを改善する |
CPP-50151 | [静的] AUTOSAR A12-1-3| のマッピングを改善する |
CPP-50152 | [IDE] IDE で設定をインポート/エクスポートする際にコンフィギュレーション > CustomCompilers を含める必要がある |
CPP-50172 | [静的] CERT_C-MSC33 のマッピングを改善する必要がある |
CPP-50282 | [静的] CERT CON35-C のマッピングの更新: BD-TRS-DLOCK ではなく BD-TRS-ORDER を使用する必要がある |
CPP-50402 | [静的] CERT_C-EXP37 のマッピングを改善する必要がある |
CPP-50406 | [静的] AUTOSAR A5-2-6 のマッピングを改善する |
CPP-50421 | [vscode] Problems ビューに (および/またはポップアップ メッセージで) Parasoft のセットアップの問題をレポートする |
CPP-50439 | [compiler] GHS Compiler for PPC 2019.1 のサポート |
CPP-50440 | [compiler] GHS Compiler for PPC 2020.1 のサポート |
CPP-50447 | [engine][edg] cpptestcc error: expected ')' before '{' token |
CPP-50560 | [静的] switch 文の case で条件付きの '{' が使用されている場合、MISRA2004-15_1 (MISRAC2012-RULE_16_1-b) が違反を誤検出する |
CPP-50583 | [カバレッジ] 非テンプレート関数内で定義された generic なラムダのコード カバレッジを追加する |
CPP-50628 | [静的] 特定のルールにだけ正規表現パターンに基づく抑制を有効化する |
CPP-50664 | [OS] C/C++test Standard での Linux ARM64 (aarch64) のネイティブ サポート |
CPP-50670 | [コンパイラ] GNU GCC 8 for ARM64 のサポート (extended, full, linux) |
CPP-50688 | [engine][edg] テンプレート エイリアスの検索でパーサーがクラッシュする |
CPP-51171 | [engine] for/while/do-while の直前で '#pragma MUST_ITERATE(...)' が再構築される必要がある |
CPP-51172 | [engine][edg] 異なる overload/SFINE の解決がアサーション失敗の原因になる |
CPP-51174 | [engine][edg] テンプレートと組み合わせた関数シグネチャの decltype の問題 |
CPP-51177 | [ide] C/C++test Pro VS で IAppFile を検索する際のパフォーマンスが低い |
CPP-51178 | [engine][edg] パース時に 'type_traits' の型が壊れて 'integral_type<true/false>' になる |
CPP-51280 | [静的] TEMPL-12: ルール実行時に python エラーが発生する |
CPP-51282 | [unit] 'void(*fptr)(int&)' 型のパラメーターを持つ関数に対してテスト ケースを生成できない |
CPP-51283 | [compiler] IAR: レスポンス ファイル サポートの追加 |
CPP-51284 | [compiler] ccac: ビルドイン関数のリストの拡張 |
CPP-51296 | [engine] シグナル 11 が受信される |
CPP-51299 | [engine] "operator*<>" 構文で MISRA 2012 がセグメンテーション エラー |
CPP-51300 | [静的] MISRA2004-16_10 (AUTOSAR-M0_3_2-a) が case ラベルで使用されている演算子に対して違反を誤検出する |
CPP-51302 | [compiler] tiarm_20_2: サポート対象のビルトイン/イントリンシックの拡張 |
CPP-51306 | [engine] No prototype: @6cf99e80 0 template 'operator()' 'operator()'. |
CPP-51353 | [静的] MISRA C 2004 14.3: MISRA の仕様により一致するようルールを簡略化する |
CPP-51358 | [カバレッジ] const-valued 変数のカバレッジ実装が誤っている |
CPP-51371 | [engine][edg] cpptestcc: Error: g_SceneInterfacestd has not been declared |
CPP-51372 | [engine] Instrumentation variable is not declared constexpr (error: call to non-‘constexpr’ function) |
CPP-51443 | [静的] テンプレート関数が enum 定数を返した場合に CODSTA-222 (AUTOSAR-M5_0_6-a) が違反を誤検出する |
CPP-51448 | [静的] メンバー関数からメンバー配列要素のアドレスが返された場合に OOP-36 (MISRA2008-9_3_2_b) が違反を検出しない |
CPP-51451 | [静的] AUTOSAR-A12-0-1 のマッピングを改善する |
CPP-51487 | [build] *.vcxproj からのプロジェクト名の読み取りが正常に動作しない場合がある |
CPP-51510 | [静的] this をキャプチャするラムダがメンバー関数で使用されている場合、CODSTA-CPP-78 (AUTOSAR-M9_3_3-a) が違反を誤検出する |
CPP-51521 | [静的] TEMPL-12: IndexError: list index out of range |
CPP-51536 | [静的] テンプレート引数として constexpr 変数が使用されている場合、MISRA2004-8_7 (AUTOSAR-M3_4_1-b) が違反を誤検出する |
CPP-51543 | [engine][edg] 静的解析がシグナル 11 でクラッシュする |
CPP-51544 | [静的] CERT_C-DCL06-a (CODSTA-29) の動作がドキュメントと矛盾している |
CPP-51547 | [静的] for-range で宣言された変数がラムダによってキャプチャされている場合、OPT-01 (AUTOSAR-M3_4_1-a) が違反を誤検出する |
CPP-51583 | [静的] AUTOSAR-A0_1_4-a の誤検出 |
CPP-51587 | [compiler] iccarm: error: the parameter to the command line option "--import_cmse_lib_out" was "--semihosting |
CPP-51593 | [静的] MISRA2004-7_1_a (AUTOSAR-M2_13_2-a) が raw 文字列で使用されている 8 進定数に対して違反を誤検出する |
CPP-51619 | [静的] CODSTA-CPP-93、CODSTA-CPP-94、PORT-31 が大量のメモリを消費する |
CPP-51651 | [docs] ファイル パターン末尾のバックスラッシュに関する IAR 固有の制限事項を記述する |
CPP-51655 | [静的] MISRA2012-RULE-20_9_b - 解析時に python エラーが発生する |
CPP-51673 | [静的] 配列初期化子で enum 定数が使用されている場合、MISRA2004-9_2_b (MISRAC2012-RULE_9_3-a) が違反を検出できない |
CPP-51685 | [compiler] iccarm: -fpu オプションの処理の改善 |
CPP-51686 | [静的] CODSTA-CPP-88 (MISRA2008-2_10_6_d) が別のスコープの型への typedef に対して違反を誤検出する |
CPP-51780 | [engine] スタブ化によって "error: no matching function for call to 'add_package_op_ext'" が発生する |
CPP-51828 | [engine] テンプレート関数での UDL の使用が誤って再構築される |
CPP-51839 | [engine] インストゥルメンテーション コンパイル エラー: expected primary-expression before ‘}’ token |
CPP-51847 | [build] "arguments[]" をサポートするよう compile_commands.json パーサーを改善する |
FA-6300 | バックグラウンドで volatile 変数の値が変わっている可能性をシミュレーションが予期していないためにフロー解析の結果が正しくない |
FA-7817 | BD-PB-CC (MISRAC2012-RULE_14_3-ac) - 最初の while loop に対して違反を誤検出し、共用体を正しく処理できない |
FA-7970 | BD-PB-CC (MISRA2012-RULE-14_3_zc) が volatile 構造体に対して違反を検出する |
FA-8392 | [Report violations when the zero-terminated string object is safely used] パラメーターが適切に動作しない場合があるため、BD-API-STRSIZE が違反を誤検出する |
FA-8563 | BD-API-STRSIZE が条件演算子に対して違反を誤検出する |
FA-8983 | フロー解析が静的メンバー フィールドの初期化を考慮していない |
FA-9035 | オーバーフローに対処されているのに BD-PB-OVERFWR が検出される |
FA-9040 | BD-PB-OVERFNZT の誤検出 |
FA-9150 | 条件に配列要素アクセスが含まれている場合のループのシミュレーション誤り |
新規ルール
ルール ID | ヘッダー |
---|---|
AUTOSAR-M17_0_5-b | <setjmp.h> または <csetjmp> 標準ヘッダー ファイルを使用してはいけない |
AUTOSAR-M18_0_4-b | <time.h> ライブラリの時間操作関数およびマクロを使用してはいけない |
AUTOSAR-M18_0_4-c | <time.h> ライブラリに定義されている型を使用してはいけない |
BD-API-REALLOC | realloc 関数のサイズ引数として 0 値を渡してはならない |
BD-PB-NANINF | 結果が NaN 値および無限大値の可能性がある浮動小数点式を使用してはならない |
BD-PB-UNGETC | ファイル位置インジケーターがゼロのストリームに ungetc 関数を使用してはならない |
CODSTA-02_b | 共用体のメンバーをビットフィールドとして宣言してはならない |
CODSTA-108_c | <tgmath.h> で宣言された型総称マクロのすべての引数は、適切な実質型でなければならない |
CODSTA-108_d | <tgmath.h> で宣言された複数引数の型総称マクロのすべての引数は、同一の標準型でなければならない |
CODSTA-109_b | 標準ヘッダー ファイル <fenv.h> を使用してはいけない |
CODSTA-136_c | 標準ヘッダー ファイル <stdarg.h> または <cstdarg> を使用してはいけない |
CODSTA-18_b | 関数マクロ以外では、Do 文を使用するべきではない |
CODSTA-209_b | ATOMIC_VAR_INIT マクロを使用しない |
CODSTA-225 | 浮動小数点式の等価性 (==) および非等価性 (!=) を明示的に (文法的に) テストしてはならない |
CODSTA-MC-01 | 配列型をオペランドとして 'alignof' 演算子を使用するべきではない |
CODSTA-MC-02 | オブジェクトの宣言に含まれるアライメント識別子は最大でも 1 つであるべきである |
CODSTA-MC-03 | オブジェクトの宣言でゼロアライメント指定を使用するべきではない |
CODSTA-MC-04 | 内部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない |
CODSTA-MC-05 | すべての総称選択に 1 つのデフォルトの関連を含める |
CODSTA-MC-06 | デフォルトの関連は関連リストの最初または最後に配置する |
CODSTA-MC-07 | 総称選択にデフォルト以外の関連を少なくとも 1 つ指定する必要がある |
CODSTA-MC-08 | 総称選択はマクロからだけ展開するべきである |
CODSTA-MC-09 | 総称関連は適切な型をリストする必要がある |
CODSTA-MC-10 | マクロ定義で使用される総称選択は、制御式でマクロのパラメーターを使用するべきである |
CODSTA-MC-11 | 総称選択はポインターの暗黙的な型変換に依存するべきではない |
CODSTA-MC-12 | 総称選択の制御式は、式の標準型と一致する実質的な型を持つ必要がある |
CODSTA-MC-13 | マクロから展開されない総称選択の制御式に潜在的な副作用があってはならない |
CODSTA-MC-14 | 総称選択で列挙型と整数型を混在させるべきではない |
CODSTA-MC-15 | マクロから展開される総称選択は引数を 1 回だけ評価しなければならない |
CODSTA-MCPP-56 | クラスが '=default'、'=delete'、またはユーザー定義の宣言によってコピー演算子、ムーブ演算子、またはデストラクターを宣言している場合、これら 5 つの特別なメンバー関数の残りすべても宣言する必要がある |
CWE-312-a | ログ ファイルに書き込む関数に機密データを渡さない |
CWE-401-a | リソースが解放されていることを確認する |
CWE-427-a | LoadLibrary() が正しいライブラリをロードするよう注意する |
CWE-59-a | シンボリック リンクの存在を確認する際の競合状態を避ける |
CWE-668-a | ファイル名インジェクションから防御する |
CWE-77-a | コマンド インジェクションから防御する |
CWE-843-a | オブジェクト型を指すポインタとオブジェクト型を指す異なるポインタの間でキャストすべきでない |
GLOBAL-ALIGNDECL | 外部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない |
INIT-17_b | すべてのユーザー定義のコンストラクターがデータ メンバーを同じ定数値で初期化している場合、NSDMI を使用して初期化すべきである |
INIT-18 | 1 つの型のコンストラクターで NSDMI および非静的メンバー初期化子の両方を使用してはならない |
MISRA2004-20_12_b | <time.h> ライブラリの時間操作関数およびマクロを使用してはいけない |
MISRA2004-20_12_c | <time.h> ライブラリに定義されている型を使用してはいけない |
MISRA2008-18_0_4_b | <ctime> ライブラリの時間操作関数およびマクロを使用してはいけない |
MISRA2008-18_0_4_c | <ctime> ライブラリに定義されている型を使用してはいけない |
MISRA2012-DIR-4_15 | 結果が NaN 値および無限大値の可能性がある浮動小数点式を使用してはならない |
MISRA2012-RULE-10_1_h | 浮動小数点式の等価性 (==) および非等価性 (!=) を明示的に (文法的に) テストしてはならない |
MISRA2012-RULE-17_10 | _Noreturn 関数指定子付きで宣言された関数の戻り値の型は void でなければならない |
MISRA2012-RULE-17_11 | return しない関数は _Noreturn 関数指定子付きで宣言するべきである |
MISRA2012-RULE-17_12 | 関数識別子を使用する場合、必ず前に & を付けるか、括弧で囲んだパラメーター リストを付ける |
MISRA2012-RULE-17_13 | 関数型は型修飾子であってはならない |
MISRA2012-RULE-17_1_c | 標準ヘッダー ファイル <stdarg.h> を使用してはいけない |
MISRA2012-RULE-17_9 | _Noreturn 関数指定子付きで宣言された関数は呼び出し側に return してはならない |
MISRA2012-RULE-18_9 | 生存期間外にオブジェクトを使用してはならない |
MISRA2012-RULE-1_5 | static 記憶域クラス指定子は、内部結合を持つオブジェクト並びに関数の定義および宣言に対して用いなければならない |
MISRA2012-RULE-1_5_b | ストレージタイプ修飾子は、変数や関数ではなく、型に関連付けなければならない |
MISRA2012-RULE-1_5_c | 関数型はプロトタイプ形式でなければならない |
MISRA2012-RULE-1_5_d | ATOMIC_VAR_INIT マクロを使用しない |
MISRA2012-RULE-1_5_e | #undef ディレクティブで 'bool'、'false' または 'true' 識別子を使用してはならない |
MISRA2012-RULE-1_5_f | ファイル位置インジケーターがゼロのストリームに ungetc 関数を使用してはならない |
MISRA2012-RULE-1_5_g | realloc 関数のサイズ引数として 0 値を渡してはならない |
MISRA2012-RULE-21_10_b | <time.h> ライブラリの時間操作関数およびマクロを使用してはいけない |
MISRA2012-RULE-21_10_c | <time.h> ライブラリに定義されている型を使用してはいけない |
MISRA2012-RULE-21_12_b | 標準ヘッダー ファイル <fenv.h> を使用してはいけない |
MISRA2012-RULE-21_22 | <tgmath.h> で宣言された型総称マクロのすべての引数は、適切な実質型でなければならない |
MISRA2012-RULE-21_23 | <tgmath.h> で宣言された複数引数の型総称マクロのすべての引数は、同一の標準型でなければならない |
MISRA2012-RULE-21_24 | <stdlib.h> の乱数生成関数を使用してはならない |
MISRA2012-RULE-23_1 | 総称選択はマクロからだけ展開するべきである |
MISRA2012-RULE-23_1_b | マクロ定義で使用される総称選択は、制御式でマクロのパラメーターを使用するべきである |
MISRA2012-RULE-23_2 | マクロから展開されない総称選択の制御式に潜在的な副作用があってはならない |
MISRA2012-RULE-23_3 | 総称選択にデフォルト以外の関連を少なくとも 1 つ指定する必要がある |
MISRA2012-RULE-23_4 | 総称関連は適切な型をリストする必要がある |
MISRA2012-RULE-23_5 | 総称選択はポインターの暗黙的な型変換に依存するべきではない |
MISRA2012-RULE-23_6 | 総称選択の制御式は、式の標準型と一致する実質的な型を持つ必要がある |
MISRA2012-RULE-23_6_b | 総称選択で列挙型と整数型を混在させるべきではない |
MISRA2012-RULE-23_7 | マクロから展開される総称選択は引数を 1 回だけ評価しなければならない |
MISRA2012-RULE-23_8 | デフォルトの関連は総称選択の最初または最後になければならない |
MISRA2012-RULE-6_3 | 共用体のメンバーとしてビットフィールドを宣言してはならない |
MISRA2012-RULE-7_5 | 整数定数マクロの引数は適切な形式でなければならない |
MISRA2012-RULE-8_15 | 外部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない |
MISRA2012-RULE-8_15_b | 内部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない |
MISRA2012-RULE-8_16 | オブジェクト宣言にゼロ アライメント指定があってはならない |
MISRA2012-RULE-8_17 | オブジェクトの宣言に含まれるアライメント識別子は最大でも 1 つであるべきである |
MISRAC2012-DIR_4_15-a | 結果が NaN 値および無限大値の可能性がある浮動小数点式を使用してはならない |
MISRAC2012-RULE_10_1-h | 浮動小数点式の等価性 (==) および非等価性 (!=) を明示的に (文法的に) テストしてはならない |
MISRAC2012-RULE_17_1-c | 標準ヘッダー ファイル <stdarg.h> または <cstdarg> を使用してはいけない |
MISRAC2012-RULE_17_10-a | 'noreturn' として宣言された関数の戻り値の型は 'void' でなければならない |
MISRAC2012-RULE_17_11-a | return しない関数は、return しないことを示す属性付きで宣言する |
MISRAC2012-RULE_17_12-a | 関数識別子を使用する場合、必ず前に & を付けるか、括弧で囲んだパラメーター リスト (空でも構わない) を付ける |
MISRAC2012-RULE_17_13-a | 関数型の仕様に修飾子を含めてはならない |
MISRAC2012-RULE_17_9-a | return するべきでない関数から return してはならない |
MISRAC2012-RULE_18_9-a | 一時的な生存期間を持つオブジェクトを変更しない |
MISRAC2012-RULE_1_5-a | static 記憶域クラス指定子は、内部結合を持つオブジェクト並びに関数の定義および宣言に対して用いなければならない |
MISRAC2012-RULE_1_5-b | ストレージタイプ修飾子は、変数や関数ではなく、型に関連付けなければならない |
MISRAC2012-RULE_1_5-c | 関数型はプロトタイプ形式でなければならない |
MISRAC2012-RULE_1_5-d | ATOMIC_VAR_INIT マクロを使用しない |
MISRAC2012-RULE_1_5-e | #undef ディレクティブで 'bool'、'false' または 'true' 識別子を使用してはならない |
MISRAC2012-RULE_1_5-f | ファイル位置インジケーターがゼロのストリームに ungetc 関数を使用してはならない |
MISRAC2012-RULE_1_5-g | realloc 関数のサイズ引数として 0 値を渡してはならない |
MISRAC2012-RULE_21_10-b | <time.h> ライブラリの時間操作関数およびマクロを使用してはいけない |
MISRAC2012-RULE_21_10-c | <time.h> ライブラリに定義されている型を使用してはいけない |
MISRAC2012-RULE_21_12-b | 標準ヘッダー ファイル <fenv.h> を使用してはいけない |
MISRAC2012-RULE_21_22-a | <tgmath.h> で宣言された型総称マクロのすべての引数は、適切な実質型でなければならない |
MISRAC2012-RULE_21_23-a | <tgmath.h> で宣言された複数引数の型総称マクロのすべての引数は、同一の標準型でなければならない |
MISRAC2012-RULE_21_24-a | 乱数生成関数 'rand()' および 'srand()' を使用するべきではない |
MISRAC2012-RULE_23_1-a | 総称選択はマクロからだけ展開するべきである |
MISRAC2012-RULE_23_1-b | マクロ定義で使用される総称選択は、制御式でマクロのパラメーターを使用するべきである |
MISRAC2012-RULE_23_2-a | マクロから展開されない総称選択の制御式に潜在的な副作用があってはならない |
MISRAC2012-RULE_23_3-a | 総称選択にデフォルト以外の関連を少なくとも 1 つ指定する必要がある |
MISRAC2012-RULE_23_4-a | 総称関連は適切な型をリストする必要がある |
MISRAC2012-RULE_23_5-a | 総称選択はポインターの暗黙的な型変換に依存するべきではない |
MISRAC2012-RULE_23_6-a | 総称選択の制御式は、式の標準型と一致する実質的な型を持つ必要がある |
MISRAC2012-RULE_23_6-b | 総称選択で列挙型と整数型を混在させるべきではない |
MISRAC2012-RULE_23_7-a | マクロから展開される総称選択は引数を 1 回だけ評価しなければならない |
MISRAC2012-RULE_23_8-a | デフォルトの関連は関連リストの最初または最後に配置する |
MISRAC2012-RULE_6_3-a | 共用体のメンバーをビットフィールドとして宣言してはならない |
MISRAC2012-RULE_7_5-a | 整数定数マクロの引数は、適切な値を持つ 10 進数、8 進数、16 進数定数であるべきである |
MISRAC2012-RULE_8_15-a | 外部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない |
MISRAC2012-RULE_8_15-b | 内部リンケージを持つオブジェクトのすべての宣言で、明示的なアライメント指定子は同一でなければならない |
MISRAC2012-RULE_8_16-a | オブジェクトの宣言でゼロアライメント指定を使用するべきではない |
MISRAC2012-RULE_8_17-a | オブジェクトの宣言に含まれるアライメント識別子は最大でも 1 つであるべきである |
MISRACPP202X-0023-a | 3 文字表記は、用いてはならない |
MISRACPP202X-0025-a | 文字列 /* を C スタイル コメント内で使用してはならない |
MISRACPP202X-0035-a | ゼロ以外の 8 進定数を使用してはいけない |
MISRACPP202X-0036-a | すべての符号なし型の定数には、接尾辞 U を付けなければならない |
MISRACPP202X-0039-a | ファイルの中で、#include 文の前には、他の前処理指令またはコメントだけを記述すべきである |
MISRACPP202X-0042-a | 関数形式マクロよりも関数を用いるべきである |
MISRACPP202X-0043-a | 関数形式マクロの引数には、前処理指令のような字句を記述してはならない |
MISRACPP202X-0045-a | 翻訳単位中に定義されていない前処理指令 #if および #elif マクロを使用してはならない |
MISRACPP202X-0046-a | 前処理指令は、前処理で除外されたとしても、構文的に意味を持つようにしなければならない |
MISRACPP202X-0049-a | 外部結合を持つ配列を宣言するときは、明示的にサイズを記述するか、初期化によって暗黙的にサイズを定義しなければならない |
MISRACPP202X-0064-a | NULL または 0 (ゼロ) ではなく nullptr を使用する |
MISRACPP202X-0087-a | 仮想基底クラスへのポインタは dynamic_cast によってだけ派生クラスへのポインタにキャストできる |
MISRACPP202X-0089-a | void へのキャスト以外の C スタイルのキャストおよび明示的なコンストラクタ呼び出し以外の関数スタイルのキャストを使用してはならない |
MISRACPP202X-0090-a | キャストによってポインターまたは参照型から const または volatile 修飾子を取り除いてはならない |
MISRACPP202X-0096-a | 論理演算子 AND、OR (&&、||) をオーバーロードしてはいけない |
MISRACPP202X-0096-b | カンマ演算子 "," をオーバーロードしてはいけない |
MISRACPP202X-0097-a | ポインター型または配列型のパラメーターを持つ関数に配列型の式を渡してはならない |
MISRACPP202X-0100-a | 単項演算子 & をオーバーロードしてはならない |
MISRACPP202X-0105-a | カンマ演算子は、用いてはならない |
MISRACPP202X-0110-a | switch、while、do...while 、for 文の本体を構成する文は、複合文でなければならない |
MISRACPP202X-0110-b | if および else の後には複合文を続けなければならない |
MISRACPP202X-0125-a | goto 文によって参照されるラベルは、同じブロックまたは goto 文を含む外側のブロックで宣言されなければならない |
MISRACPP202X-0133-a | グローバル名前空間は main() および名前空間の宣言だけを含むことができる |
MISRACPP202X-0134-a | 識別子 main をグローバルな main 関数以外の関数に使用してはならない |
MISRACPP202X-0135-a | ヘッダー ファイルに無名の名前空間があってはならない |
MISRACPP202X-0143-a | 自動記憶域のオブジェクトのアドレスを、オブジェクトが存在しなくなった後にも存在し続ける可能性がある別のオブジェクトに代入してはならない |
MISRACPP202X-0143-b | ローカル オブジェクトを参照によってキャプチャするラムダは、より長い存続期間を持つ変数に代入するべきではない |
MISRACPP202X-0145-a | 再帰を使用しない |
MISRACPP202X-0146-a | 各変数は、別個の宣言文で宣言しなければならない |
MISRACPP202X-0147-a | 継承された仮想関数を別のデフォルト パラメーター値で再定義してはならない |
MISRACPP202X-0148-a | 識別子 va_list、va_arg、va_start、va_end、va_copy を使用するべきではない |
MISRACPP202X-0150-a | 戻り値の型が非 void の関数の場合、すべての出口で、式を持つ明示的な return 文を記述しなければならない |
MISRACPP202X-0152-a | 初期化の前に使用しない |
MISRACPP202X-0158-a | 共用体は、用いてはならない |
MISRACPP202X-0159-a | メンバ変数をビット フィールドとして宣言してはいけない |
MISRACPP202X-0162-a | signed integer 型の名前付きのビットフィールドは 2 ビット以上の長さでなければならない |
MISRACPP202X-0163-a | 仮想基底クラスからクラスを派生するべきではない |
MISRACPP202X-0165-a | 同じ階層の中で、基底クラスを仮想と非仮想の両方にすることはできない |
MISRACPP202X-0171-a | 作成中のオブジェクトの動的型を使用しない |
MISRACPP202X-0171-b | 破棄処理中のオブジェクトの動的型を使用しない |
MISRACPP202X-0173-a | 変換を可能にするコンストラクタは explicit にする |
MISRACPP202X-0173-b | ユーザー定義の変換を行うキャスト演算子は explicit にするべきである |
MISRACPP202X-0187-a | 例外オブジェクトはポインタ型にするべきではない |
MISRACPP202X-0207-a | 多重インクルード ガードを使用する |
MISRACPP202X-0208-a | #include 指令のヘッダー ファイル名には、非標準文字を記述すべきではない |
MISRACPP202X-0210-a | #include 指令の後には <filename> または "filename" が続かなければならない |
MISRACPP202X-0212-a | 前処理演算子 # 及び ## を用いてはならない |
MISRACPP202X-0222-a | 特定の標準ライブラリ関数から返されたポインターは、そのあとの同じ関数または関連する関数の呼び出しで使用してはならない |
MISRACPP202X-0239-a | メンバー仮想関数を指すポインターは、null ポインター定数と等価かどうかだけをテストするべきである |
MISRACPP202X-0280-a | std::forward に渡した引数を後で使用してはならない |
MISRACPP202X-0280-b | 移動元オブジェクトの値に依存しない |
MISRACPP202X-0320-a | 8 進または 16 進のエスケープ シーケンスは終了させなければならない |
MISRACPP202X-0324-a | 削除の時点で不完全なオブジェクトを削除してはならない |
MISRACPP202X-0343-a | オーバーライド仮想関数は override または final 指定子付きで宣言する必要がある |
MISRACPP202X-0343-b | メンバー関数の宣言では virtual、override、final のいずれか 1 つだけを指定するべきである |
MISRACPP202X-0359-a | return するべきでない関数から return してはならない |
MISRACPP202X-0370-a | # または ## 演算子のオペランドとして使用されており、それ自体がマクロ置換の対象であるマクロ パラメーターは、それらの演算子のオペランドとしてだけ使用されなければならない |
PREPROC-27 | #undef ディレクティブで 'bool'、'false' または 'true' 識別子を使用してはならない |
更新されたルール
カテゴリ ID | ルール ID |
---|---|
DISA ASD STIG | APSC_DV-001995-c, APSC_DV-002290-d, APSC_DV-002520-e, APSC_DV-002530-e, APSC_DV-002550-e, APSC_DV-002560-e, APSC_DV-002590-b, APSC_DV-002590-d |
AUTOSAR C++14 Coding Guidelines | AUTOSAR-A0_1_1-a, AUTOSAR-A0_1_4-a, AUTOSAR-A0_4_4-a, AUTOSAR-A12_0_1-a, AUTOSAR-A12_1_2-a, AUTOSAR-A12_1_3-a, AUTOSAR-A27_0_1-b, AUTOSAR-A27_0_2-a, AUTOSAR-A27_0_2-b, AUTOSAR-A5_2_5-a, AUTOSAR-A5_2_5-d, AUTOSAR-A5_2_6-a, AUTOSAR-A5_3_2-a, AUTOSAR-A5_6_1-a, AUTOSAR-A6_5_3-a, AUTOSAR-A9_3_1-a, AUTOSAR-A9_6_2-a, AUTOSAR-M0_1_2-ac, AUTOSAR-M0_3_1-b, AUTOSAR-M0_3_1-d, AUTOSAR-M0_3_1-e, AUTOSAR-M0_3_1-f, AUTOSAR-M0_3_1-g, AUTOSAR-M0_3_2-a, AUTOSAR-M14_6_1-a, AUTOSAR-M16_0_7-a, AUTOSAR-M17_0_5-a, AUTOSAR-M18_7_1-a, AUTOSAR-M3_4_1-a, AUTOSAR-M3_4_1-b, AUTOSAR-M5_0_16-a, AUTOSAR-M5_0_6-a, AUTOSAR-M6_2_3-a, AUTOSAR-M6_4_3-c, AUTOSAR-M6_4_4-a, AUTOSAR-M8_5_2-b, AUTOSAR-M9_3_3-a |
フロー解析 | BD-API-BADPARAM, BD-API-STRSIZE, BD-API-VALPARAM, BD-PB-ARRAY, BD-PB-CC, BD-PB-MCCSTR, BD-PB-MODSTR, BD-PB-NORETDECL, BD-PB-NP, BD-PB-OVERFNZT, BD-PB-OVERFWR, BD-PB-OVERFWR, BD-PB-UCMETH, BD-PB-VOVR, BD-PB-WRRSTR, BD-PB-ZERO, BD-SECURITY-ARRAY, BD-TRS-FRC |
SEI CERT C | CERT_C-API01-a, CERT_C-ARR30-a, CERT_C-ARR38-b, CERT_C-ARR38-d, CERT_C-ARR39-a, CERT_C-CON35-a, CERT_C-CON37-a, CERT_C-DCL06-a, CERT_C-DCL19-a, CERT_C-DCL22-a, CERT_C-ENV01-c, CERT_C-ERR33-c, CERT_C-EXP08-b, CERT_C-EXP34-a, CERT_C-EXP35-a, CERT_C-EXP37-a, CERT_C-EXP37-b, CERT_C-FIO24-a, CERT_C-FIO37-a, CERT_C-FIO45-a, CERT_C-FLP03-a, CERT_C-FLP32-a, CERT_C-INT10-a, CERT_C-INT31-a, CERT_C-INT31-h, CERT_C-INT31-i, CERT_C-INT31-j, CERT_C-INT31-k, CERT_C-INT31-l, CERT_C-INT31-m, CERT_C-INT31-n, CERT_C-INT33-a, CERT_C-MSC19-a, CERT_C-MSC19-b, CERT_C-MSC22-a, CERT_C-MSC33-a, CERT_C-POS30-a, CERT_C-POS44-a, CERT_C-POS54-c, CERT_C-SIG00-a, CERT_C-SIG01-a, CERT_C-SIG02-a, CERT_C-STR03-a, CERT_C-STR30-b, CERT_C-STR31-a, CERT_C-STR31-b, CERT_C-STR32-a |
SEI CERT C++ | CERT_CPP-ERR52-a, CERT_CPP-EXP60-a, CERT_CPP-OOP57-a, CERT_CPP-OOP57-b, CERT_CPP-STR50-b, CERT_CPP-STR50-c, CERT_CPP-STR51-a |
コーディング規約 | CODSTA-02, CODSTA-109, CODSTA-152, CODSTA-156_a, CODSTA-156_b, CODSTA-157, CODSTA-161_a, CODSTA-163_a, CODSTA-163_b, CODSTA-164_a, CODSTA-164_b, CODSTA-165_a, CODSTA-165_b, CODSTA-165_c, CODSTA-196, CODSTA-222, CODSTA-29 |
C++ コーディング規約 | CODSTA-CPP-78, CODSTA-CPP-88, CODSTA-CPP-93, CODSTA-CPP-94 |
Common Weakness Enumeration | CWE-119-a, CWE-119-e, CWE-119-f, CWE-125-a, CWE-20-a, CWE-362-b, CWE-476-a, CWE-787-a, CWE-787-d |
High Integrity C++ | HICPP-1_2_1-h, HICPP-1_2_1-i, HICPP-3_5_1-b, HICPP-5_2_1-a, HICPP-5_2_1-c, HICPP-5_5_1-a, HICPP-6_3_1-a, HICPP-6_4_1-a, HICPP-9_1_1-a, HICPP-9_1_4-a |
Joint Strike Fighter | JSF-020, JSF-021_b, JSF-105, JSF-115, JSF-136_a, JSF-136_b, JSF-209, JSF-209_b |
MISRA C 1998 | MISRA-054 |
MISRA C 2004 | MISRA2004-14_3, MISRA2004-15_1, MISRA2004-16_10, MISRA2004-19_11_b, MISRA2004-20_7, MISRA2004-20_8_b, MISRA2004-6_3, MISRA2004-6_3_b, MISRA2004-8_7, MISRA2004-9_2_b |
MISRA C++ 2008 | MISRA2008-0_1_2_aa, MISRA2008-0_1_6, MISRA2008-0_3_1_a, MISRA2008-0_3_1_b, MISRA2008-0_3_1_c, MISRA2008-0_3_1_e, MISRA2008-0_3_1_h, MISRA2008-0_3_2, MISRA2008-14_6_1, MISRA2008-16_0_7_b, MISRA2008-17_0_5, MISRA2008-18_7_1_b, MISRA2008-3_4_1_a, MISRA2008-3_4_1_b, MISRA2008-5_0_16_a, MISRA2008-5_0_6_a, MISRA2008-6_2_3, MISRA2008-6_4_3_a, MISRA2008-6_4_4, MISRA2008-8_5_2_b, MISRA2008-9_3_2_b, MISRA2008-9_3_3 |
MISRA C 2012 (Legacy) | MISRA2012-DIR-4_11, MISRA2012-DIR-4_14_a, MISRA2012-DIR-4_1_a, MISRA2012-DIR-4_1_b, MISRA2012-DIR-4_1_c, MISRA2012-DIR-4_1_e, MISRA2012-DIR-4_1_h, MISRA2012-DIR-4_6_a, MISRA2012-DIR-4_6_b, MISRA2012-RULE-10_1_a, MISRA2012-RULE-10_3_a, MISRA2012-RULE-10_3_b, MISRA2012-RULE-10_4_a, MISRA2012-RULE-10_4_b, MISRA2012-RULE-10_5_a, MISRA2012-RULE-10_5_b, MISRA2012-RULE-10_5_c, MISRA2012-RULE-10_6, MISRA2012-RULE-10_7_a, MISRA2012-RULE-10_7_b, MISRA2012-RULE-10_8, MISRA2012-RULE-14_3_zc, MISRA2012-RULE-16_1_b, MISRA2012-RULE-16_2, MISRA2012-RULE-18_1_a, MISRA2012-RULE-1_3_a, MISRA2012-RULE-1_3_e, MISRA2012-RULE-20_9_b, MISRA2012-RULE-21_10, MISRA2012-RULE-21_12, MISRA2012-RULE-21_14, MISRA2012-RULE-21_17_a, MISRA2012-RULE-21_17_b, MISRA2012-RULE-21_18, MISRA2012-RULE-21_4_a, MISRA2012-RULE-21_5_b, MISRA2012-RULE-2_2_b, MISRA2012-RULE-8_9, MISRA2012-RULE-9_3 |
MISRA C 2012 | MISRAC2012-DIR_4_1-a, MISRAC2012-DIR_4_1-b, MISRAC2012-DIR_4_1-c, MISRAC2012-DIR_4_1-e, MISRAC2012-DIR_4_1-h, MISRAC2012-DIR_4_11-a, MISRAC2012-DIR_4_14-a, MISRAC2012-DIR_4_6-a, MISRAC2012-DIR_4_6-b, MISRAC2012-RULE_10_1-a, MISRAC2012-RULE_10_3-a, MISRAC2012-RULE_10_3-b, MISRAC2012-RULE_10_4-a, MISRAC2012-RULE_10_4-b, MISRAC2012-RULE_10_5-a, MISRAC2012-RULE_10_5-b, MISRAC2012-RULE_10_5-c, MISRAC2012-RULE_10_6-a, MISRAC2012-RULE_10_7-a, MISRAC2012-RULE_10_7-b, MISRAC2012-RULE_10_8-a, MISRAC2012-RULE_14_3-ac, MISRAC2012-RULE_16_1-b, MISRAC2012-RULE_16_2-a, MISRAC2012-RULE_18_1-a, MISRAC2012-RULE_1_3-a, MISRAC2012-RULE_1_3-e, MISRAC2012-RULE_20_9-b, MISRAC2012-RULE_21_10-a, MISRAC2012-RULE_21_12-a, MISRAC2012-RULE_21_14-a, MISRAC2012-RULE_21_17-a, MISRAC2012-RULE_21_17-b, MISRAC2012-RULE_21_18-a, MISRAC2012-RULE_21_4-a, MISRAC2012-RULE_21_5-b, MISRAC2012-RULE_2_2-b, MISRAC2012-RULE_8_9-a, MISRAC2012-RULE_9_3-a |
オブジェクト指向 | OOP-36 |
最適化 | OOPT-01, OPT-03 |
OWASP Top 10 2019 | OWASP2019-API3-b, OWASP2019-API3-e, OWASP2019-API3-g |
移植性 | PORT-31 |
セキュリティ | SECURITY-01, SECURITY-02 |
テンプレート | TEMPL-12 |
削除されたルール
ルール ID | 注意 |
---|---|
CERT_C-EXP37-c | CERT C コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-159 を代替として使用できます。 |
MISRA2008-2_10_6_d | MISRA C++ 2008 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-CPP-88 を代替として使用できます。 |
MISRA2012-RULE-1_4_a | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-216 を代替として使用できます。 |
MISRA2012-RULE-1_4_b | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-206 を代替として使用できます。 |
MISRA2012-RULE-1_4_c | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-207 を代替として使用できます。 |
MISRA2012-RULE-1_4_h | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-213 を代替として使用できます。 |
MISRA2012-RULE-1_4_i | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-208 を代替として使用できます。 |
MISRA2012-RULE-21_11_b | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-108_b を代替として使用できます。 |
MISRAC2012-RULE_1_4-a | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-216 を代替として使用できます。 |
MISRAC2012-RULE_1_4-b | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-206 を代替として使用できます。 |
MISRAC2012-RULE_1_4-c | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-207 を代替として使用できます。 |
MISRAC2012-RULE_1_4-h | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-213 を代替として使用できます。 |
MISRAC2012-RULE_1_4-i | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-208 を代替として使用できます。 |
MISRAC2012-RULE_21_11-b | MISRA C 2012 コンフィギュレーションから削除されました。他のコンフィギュレーションに関しては、CODSTA-108_b を代替として使用できます。 |