ルール ID | 説明 |
---|
CODSTA-MCPP-01 | ユーザー定義の変換を行うキャスト演算子は explicit にするべきである |
CODSTA-MCPP-02 | typedef ではなくエイリアス宣言を使用する |
CODSTA-MCPP-03 | スコープなしの列挙型ではなく、スコープ付きの列挙型を使用する |
CODSTA-MCPP-04 | NULL または 0 (ゼロ) ではなく nullptr を使用する |
CODSTA-MCPP-05 | オーバーライド関数に override を指定して宣言する |
CODSTA-MCPP-06_a | クラスのコピーを防ぐため、コピー コンストラクターおよびコピー代入演算子に delete を指定して宣言する |
CODSTA-MCPP-06_b | クラスのコピーを防ぐため、private メソッドを持つ基底クラスを使用するのではなく、コピー コンストラクターおよびコピー代入演算子に delete を指定して宣言する |
CODSTA-174_a_c90 | プログラムは規格によって定められた翻訳限界を超えてはならない (c90) |
CODSTA-174_a_c99 | プログラムは規格によって定められた翻訳限界を超えてはならない (c99) |
CODSTA-174_b_c90 | プログラムは規格によって定められた翻訳限界を超えてはならない (c90) |
CODSTA-174_b_c99 | プログラムは規格によって定められた翻訳限界を超えてはならない (c99) |
CODSTA-175_a | 関数は未使用の型宣言を持つべきではない |
CODSTA-175_b | ソース ファイルは未使用の型宣言を持つべきではない |
CODSTA-176_a | 関数は未使用のローカル タグ宣言を持つべきではない |
CODSTA-176_b | ソース ファイルは未使用のタグ宣言を持つべきではない |
CODSTA-177 | ソース ファイルは未使用のマクロ宣言を持つべきではない |
CODSTA-178 | 外部識別子は区別できなければならない |
CODSTA-179_a_c90 | ファイル スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c90) |
CODSTA-179_a_c99 | ファイル スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c99) |
CODSTA-179_b_c90 | 同じブロック スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c90) |
CODSTA-179_b_c99 | 同じブロック スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c99) |
CODSTA-180 | 外部リンケージを持つオブジェクトや関数はユニークでなければならない |
CODSTA-181 | +、-、+= および -= 演算子をポインター型の式に適用するべきではない |
CODSTA-182 | sizeof 演算子のオペランドは「配列型」として宣言された関数のパラメーターであってはならない |
CODSTA-183 | 標準ライブラリ関数 memcmp、memmove および memcmp へのポインター引数は、互換性のある型の修飾付きおよび修飾なし版へのポインターでなければならない |
CODSTA-184 | 標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、実質的な signed 型、実質的な unsigned 型、実質的なブール型、または実質的な列挙型を指していなければならない |
CODSTA-185_a | 標準ライブラリ関数 localeconv、getenv、setlocale または strerror から返されたポインターは、const 修飾された型へのポインターとしてだけ使用する |
CODSTA-185_b | lconv 構造体のメンバーによって指し示される文字列を変更してはならない |
CODSTA-186 | 指定された初期化子が配列オブジェクトの初期化に使用されている場合、配列のサイズを明示的に指定する必要がある |
BD-API-BADPARAM | ライブラリ関数に誤った値を渡してはならない |
BD-API-CTYPE | ctype.h ライブラリ関数に誤った値を渡してはならない |
BD-API-STRSIZE | string.h の関数に渡される size_t 引数には適切な値がなければならない |
BD-API-VALPARAM | ライブラリ関数に渡される値を検証する |
BD-PB-EOFCOMP | マクロの EOF と標準ライブラリ関数から返された未変更の戻り値を比較するべきである |
BD-PB-ERRNO | errno 値を適切に使用する |
BD-PB-INVRET | 特定の標準ライブライ関数から返されたポインターは、そのあとの同じ関数または関連する関数の呼び出しで使用してはならない |
BD-PB-MCCSTR | 標準ライブラリ関数 memcmp を null 終端文字の比較に使用してはならない |
BD-PB-NORETURN | noreturn 属性を持つ関数からは値を返さない |
BD-PB-WRRDSTR | 1 つのファイルを別のストリームで同時に読み取りアクセス用と書き込みアクセス用に開いてはならない |
BD-SECURITY-TDCONSOLE | 汚染されたデータを出力コンソールに出力してはならない |
FORMAT-25_b | return 文では、() を使わなければならない |
MISRA2004-9_2_b | 配列を部分的に初期化してはならない |
MISRA2004-9_2_c | ゼロ以外で構造体を初期化する場合、各要素に対して明示的な初期化子が必要である |
MISRA2012-DIR-4_5 | 同じ名前空間にあり可視性が重なる識別子は見た目で明確に区別できなければならない |
MISRA2012-DIR-4_7_ab | 非 void 関数の戻り値を必ずチェックする |
MISRA2012-DIR-4_7_bb | 常に非 void 関数の戻り値をチェックする |
MISRA2012-DIR-4_11b | ライブラリ関数に渡される値を検証する |
MISRA2012-DIR-4_13_ab | 標準ライブラリ関数を使用して動的に取得したすべてのリソースは明示的に解放する必要がある |
MISRA2012-DIR-4_13_bb | 解放されたリソースを使用してはならない |
MISRA2012-DIR-4_13_cb | 無効なポインタを使用してリソースを解放してはならない |
MISRA2012-DIR-4_13_db | 解放されていないロックを放棄してはならない |
MISRA2012-DIR-4_13_eb | ダブル ロックを避ける |
MISRA2012-DIR-4_14_ab | 汚染されたデータを配列添え字として使用しない |
MISRA2012-DIR-4_14_bb | 汚染されたデータによる整数オーバーフロー/アンダーフローを防ぐ |
MISRA2012-DIR-4_14_cb | 汚染されたデータによるバッファー読み込み時のオーバーフローを避ける |
MISRA2012-DIR-4_14_db | 汚染されたデータによるバッファー書き込み時のオーバーフローを避ける |
MISRA2012-DIR-4_14_eb | コマンド インジェクションから防御する |
MISRA2012-DIR-4_14_fb | ファイル名インジェクションから防御する |
MISRA2012-DIR-4_14_gb | SQL インジェクションから防御する |
MISRA2012-DIR-4_14_hb | 汚染されたデータによるバッファー読み込み時のオーバーフローを避ける |
MISRA2012-DIR-4_14_ib | 不正な書式制限の定義によるバッファー オーバーフローを避ける |
MISRA2012-DIR-4_14_jb | 環境に対するインジェクションから防御する |
MISRA2012-DIR-4_14_kb | 汚染されたデータを出力コンソールに出力してはならない |
MISRA2012-RULE-1_1_a_c90 | プログラムは規格によって定められた翻訳限界を超えてはならない (c90) |
MISRA2012-RULE-1_1_a_c99 | プログラムは規格によって定められた翻訳限界を超えてはならない (c99) |
MISRA2012-RULE-1_1_b_c90 | プログラムは規格によって定められた翻訳限界を超えてはならない (c90) |
MISRA2012-RULE-1_1_b_c99 | プログラムは規格によって定められた翻訳限界を超えてはならない (c99) |
MISRA2012-RULE-1_3_ab | ゼロによる除算を避ける |
MISRA2012-RULE-1_3_bb | 初期化の前に使用しない |
MISRA2012-RULE-1_3_cb | 解放されたリソースを使用してはならない |
MISRA2012-RULE-1_3_d | バッファー読み込み時のオーバーフローを避ける |
MISRA2012-RULE-1_3_eb | バッファー書き込み時のオーバーフローを避ける |
MISRA2012-RULE-1_3_f | 式の値は、規格が認めるどのような順序で評価されようとも、同じでなければならない |
MISRA2012-RULE-1_3_g | 関数の引数の評価順序に依存するコードを書いてはならない |
MISRA2012-RULE-1_3_h | 関数呼び出しおよび関数引数の評価順序に依存するコードを記述してはならない |
MISRA2012-RULE-1_3_i | 関数呼び出しを含む式の評価順序に依存するコードを書いてはならない |
MISRA2012-RULE-1_3_j | オブジェクトは、シーケンス ポイントの間で、格納された値が式の評価によって 2 回以上変更されてはならない |
MISRA2012-RULE-1_3_k | 1 つの式で複数の volatile を使用してはならない |
MISRA2012-RULE-1_3_l | 関数呼び出しの評価順序に依存するコードを書いてはならない |
MISRA2012-RULE-1_3_m | ローカル オブジェクトへの参照は、絶対に返してはいけない |
MISRA2012-RULE-1_3_n | 自動記憶域にあるオブジェクトのアドレスを、そのオブジェクトの存在が終了した後にまで持続期間を持つオブジェクトに代入してはならない |
MISRA2012-RULE-1_3_o | 右シフト演算の左辺のオペランドは負数であってはならない |
MISRA2012-RULE-2_3_a | 関数は未使用の型宣言を持つべきではない |
MISRA2012-RULE-2_3_b | ソース ファイルは未使用の型宣言を持つべきではない |
MISRA2012-RULE-2_4_a | 関数は未使用のローカル タグ宣言を持つべきではない |
MISRA2012-RULE-2_4_b | ソース ファイルは未使用のタグ宣言を持つべきではない |
MISRA2012-RULE-2_5 | ソース ファイルは未使用のマクロ宣言を持つべきではない |
MISRA2012-RULE-5_1 | 外部識別子は区別できなければならない |
MISRA2012-RULE-5_2_a_c90 | ファイル スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c90) |
MISRA2012-RULE-5_2_a_c99 | ファイル スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c99) |
MISRA2012-RULE-5_2_b_c90 | 同じブロック スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c90) |
MISRA2012-RULE-5_2_b_c99 | 同じブロック スコープおよび同じ名前空間で宣言された識別子は区別できなければならない (c99) |
MISRA2012-RULE-5_8 | 外部リンケージを持つオブジェクトや関数はユニークでなければならない |
MISRA2012-RULE-8_6 | 外部リンケージを持つ識別子は、外部定義を 1 つだけ持たなければならない |
MISRA2012-RULE-8_7 | 関数およびオブジェクトが 1 つの翻訳単位でだけ参照される場合、外部リンケージが定義されてはならない |
MISRA2012-RULE-9_4 | オブジェクトの要素を複数回初期化してはならない |
MISRA2012-RULE-9_5 | 指定された初期化子が配列オブジェクトの初期化に使用されている場合、配列のサイズを明示的に指定する必要がある |
MISRA2012-RULE-12_5 | sizeof 演算子のオペランドは「配列型」として宣言された関数のパラメーターであってはならない |
MISRA2012-RULE-18_1_ab | 配列の境界を超えてアクセスしてはならない |
MISRA2012-RULE-18_1_bb | 範囲外の配列およびポインターへのアクセスを避ける |
MISRA2012-RULE-18_4 | +、-、+= および -= 演算子をポインター型の式に適用するべきではない |
MISRA2012-RULE-20_8 | #if または #elif プリプロセッサ ディレクティブの制御式は 0 または 1 に評価されなければならない |
MISRA2012-RULE-21_13b | <ctype.h> ライブラリの関数に渡される値は 'unsigned char' として表現できる値または 'EOF' でなければならない |
MISRA2012-RULE-21_14b | 標準ライブラリ関数 memcmp を null 終端文字の比較に使用してはならない |
MISRA2012-RULE-21_15 | 標準ライブラリ関数 memcmp、memmove および memcmp へのポインター引数は、互換性のある型の修飾付きおよび修飾なし版へのポインターでなければならない |
MISRA2012-RULE-21_16 | 標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、実質的な signed 型、実質的な unsigned 型、実質的なブール型、または実質的な列挙型を指していなければならない |
MISRA2012-RULE-21_17_ab | ゼロで終わっていない文字列の読み込みによるオーバーフローを避ける |
MISRA2012-RULE-21_17_bb | バッファー書き込み時のオーバーフローを避ける |
MISRA2012-RULE-21_18b | string.h の関数に渡される size_t 引数には適切な値がなければならない |
MISRA2012-RULE-21_19_a | 標準ライブラリ関数 localeconv、getenv、setlocale または strerror から返されたポインターは、const 修飾された型へのポインターとしてだけ使用する |
MISRA2012-RULE-21_19_b | lconv 構造体のメンバーによって指し示される文字列を変更してはならない |
MISRA2012-RULE-21_20b | 特定の標準ライブライ関数から返されたポインターは、そのあとの同じ関数または関連する関数の呼び出しで使用してはならない |
MISRA2012-RULE-22_3b | 1 つのファイルを別のストリームで同時に読み取りアクセス用と書き込みアクセス用に開いてはならない |
MISRA2012-RULE-22_4b | 読み取り専用として開かれたストリームへの書き込みを避ける |
MISRA2012-RULE-22_7b | マクロの EOF と標準ライブラリ関数から返された未変更の戻り値を比較するべきである |
MISRA2012-RULE-22_8b | errno 設定関数の呼び出し前に、errno に 0 を設定する |
MISRA2012-RULE-22_9bc | errno 設定関数以外の関数の呼び出し後に、errno と 0 を比較してチェックしている場合に違反をレポートする |
MISRA2012-RULE-22_10bc | errno 設定関数の呼び出し後にだけ、errno と 0 を比較してチェックする |
MISRA2008-8_5_2_b | 配列を部分的に初期化してはならない |
MISRA2008-8_5_2_c | 配列を部分的に初期化してはならない |
NAMING-50 | 同じ名前空間にあり可視性が重なる識別子は見た目で明確に区別できなければならない |
PB-69 | オブジェクトの要素を複数回初期化してはならない |
PREPROC-19 | #if または #elif プリプロセッサ ディレクティブの制御式は 0 または 1 に評価されなければならない |