MISRA C:2012 (改訂 2) C90/C99 規則
MISRA C:2012 改訂 2 C90
| ガイドライン | カテゴリ | チェッカー名および説明 |
|---|---|---|
| Dir. 1.1 | 必要(Required) | |
| Dir. 2.1 | 必要(Required) | |
| Dir. 3.1 | 必要(Required) | |
| Dir 4.1 | 必要(Required) |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.ITERATOR バッファオーバーフロー - 配列インデックスが範囲外の可能性 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.NON_ARRAY 非配列オブジェクトが配列として使用される ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.UNICODE.BOUND_MAP 文字関数のマッピング時のバッファオーバーフロー ABV.UNICODE.FAILED_MAP 関数のマッピングに失敗します ABV.UNICODE.NNTS_MAP 文字関数のマッピング時のバッファオーバーフロー ABV.UNICODE.SELF_MAP 関数のマッピングに失敗します ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 DBZ.CONST ゼロ定数による除算が発生しました DBZ.CONST.CALL 値 '0' が除数としてこの値を使用できる関数に渡されます DBZ.GENERAL ゼロ除算が発生した可能性があります DBZ.GENERAL.FLOAT 浮動小数点数のゼロ除算が発生した可能性があります DBZ.ITERATOR ループ反復子でゼロ除算が発生した可能性があります DBZ.ITERATOR.CALL 関数呼出しでゼロ除算が発生した可能性があります DBZ.ITERATOR.FLOAT ループ反復子でゼロ除算が発生した可能性があります NUM.OVERFLOW.DF 起こり得る数値のオーバーフローまたはラップアラウンド UNINIT.CTOR.MIGHT コンストラクタにおける未初期化の変数の可能性 UNINIT.CTOR.MUST コンストラクタにおける未初期化の変数 UNINIT.HEAP.MIGHT 未初期化のヒープの使用の可能性 UNINIT.HEAP.MUST 未初期化のヒープの使用 UNINIT.STACK.ARRAY.MIGHT 未初期化の配列の可能性 UNINIT.STACK.ARRAY.MUST 未初期化の配列 UNINIT.STACK.ARRAY.PARTIAL.MUST 一部が未初期化の配列 UNINIT.STACK.MIGHT 未初期化の変数の可能性 UNINIT.STACK.MUST 未初期化の変数 |
| Dir 4.2 | 推奨(Advisory) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
| Dir 4.3 | 必要(Required) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
| Dir 4.4 | 推奨(Advisory) |
MISRA.TOKEN.COMMENTED.CODE コメントにはコメントアウトされたソースコードが含まれているようです |
| Dir. 4.5 | 推奨(Advisory) | |
| Dir 4.6 | 推奨(Advisory) |
MISRA.BUILTIN_NUMERIC 組み込み数値型が使用されています |
| Dir 4.7 | 必要(Required) |
SV.RVT.RETVAL_NOTTESTED 戻り値の無視 |
| Dir 4.8 | 推奨(Advisory) |
MISRA.STRUCT_DEF.HIDDEN.2012 構造体または共用体へのポインターが翻訳単位内で逆参照されない場合は、オブジェクトの実装を非表示にする必要があります。 |
| Dir 4.9 | 推奨(Advisory) |
MISRA.DEFINE.FUNC マクロが関数のように定義されています |
| Dir 4.10 | 必要(Required) |
MISRA.INCGUARD インクルードガードが入力されていません |
| Dir. 4.11 | 必要(Required) | |
| Dir. 4.12 | 必要(Required) | |
| Dir. 4.13 | 推奨(Advisory) | |
| Dir 4.14 | 必要(Required) |
ABV.TAINTED 未検証の入力によるバッファオーバーフロー NNTS.TAINTED 未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列 SV.TAINTED.ALLOC_SIZE メモリ割り当て時の未検証の整数の使用 SV.TAINTED.BINOP バイナリ演算での未検証整数値の使用 SV.TAINTED.CALL.BINOP バイナリ演算での未検証整数値の使用 SV.TAINTED.CALL.DEREF 未検証ポインターの逆参照 SV.TAINTED.CALL.INDEX_ACCESS 関数呼び出し時の配列インデックスとしての未検証の整数の使用 SV.TAINTED.CALL.LOOP_BOUND 関数呼び出しのループ条件での未検証の整数の使用 SV.TAINTED.DEREF 未検証ポインターの逆参照 SV.TAINTED.FMTSTR 書式文字列での未検証データの使用 SV.TAINTED.INDEX_ACCESS 配列インデックスとしての未検証の整数の使用 SV.TAINTED.INJECTION コマンドインジェクション SV.TAINTED.LOOP_BOUND ループ条件での未検証の整数の使用 SV.TAINTED.PATH_TRAVERSAL パストラバーサルでの未検証データの使用 SV.TAINTED.SECURITY_DECISION セキュリティ決定 |
| Rule 1.2 | 推奨(Advisory) |
MISRA.LANG.EXTENSIONS 言語拡張は使用するべきではありません |
| Rule 1.3 | 必要(Required) |
MISRA.ELIF.DEFINED #elif ディレクティブで不正な 'defined' が使用されています MISRA.EXPANSION.NARGS マクロの引数がありません MISRA.EXPANSION.UNSAFE 安全ではないマクロの使用 MISRA.IF.DEFINED #if ディレクティブで不正な 'defined' が使用されています MISRA.INCOMPLETE.STRUCT 不完全な構造タイプが使用されています MISRA.INCOMPLETE.STRUCT.UNNAMED 名前のない不完全な構造タイプが使用されています MISRA.INCOMPLETE.UNION 不完全な和集合タイプが使用されています MISRA.INCOMPLETE.UNION.UNNAMED 名前のない不完全な和集合タイプが使用されています |
| Rule 2.1 | 必要(Required) |
UNREACH.ENUM enum が取りうる値が原因で、コードは到達不能になっています UNREACH.GEN 到達不能コード UNREACH.RETURN 到達不能な void return文 |
| Rule 2.2 | 必要(Required) |
EFFECT ステートメントの影響はありません LV_UNUSED.GEN ローカル変数は使用されません VA_UNUSED.GEN 値を割り当て後に使用しません VA_UNUSED.INIT 値を初期化後に使用しません |
| Rule 2.3 | 推奨(Advisory) |
MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めない MISRA.UNUSED.LOCAL_TYPE プロジェクトには未使用の型宣言を含めないでください |
| Rule 2.4 | 推奨(Advisory) |
MISRA.UNUSED.ENUM_TAG プロジェクトには未使用のタグ宣言を含めないでください MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めない |
| Rule 2.5 | 推奨(Advisory) |
MISRA.UNUSED_MACRO.2012 プロジェクトには未使用のマクロ宣言を含めない |
| Rule 2.6 | 推奨(Advisory) |
LA_UNUSED ラベルが使用されていません |
| Rule 2.7 | 推奨(Advisory) |
MISRA.FUNC.UNUSEDPAR.2012 関数に未使用のパラメーターがあります |
| Rule 3.1 | 必要(Required) |
MISRA.TOKEN.BADCOM コメントに不適切な文字列があります |
| Rule 4.1 | 必要(Required) |
MISRA.TOKEN.UNTERMINATED.ESCAPE.2012 文字列リテラルに終端されていないエスケープシーケンスがあります |
| Rule 4.2 | 推奨(Advisory) |
MISRA.CHAR.TRIGRAPH 3 文字表記の使用 |
| Rule 5.1 | 必要(Required) |
MISRA.EXT.IDENT.DISTINCT.2012.C90 外部識別子は、実装によって指定された制限内で一意である必要があります。 |
| Rule 5.2 | 必要(Required) |
MISRA.IDENT.DISTINCT.C90.2012 同一のスコープまたは同一の名前空間で宣言された識別子が区別されていません |
| Rule 5.3 | 必要(Required) |
MISRA.VAR.HIDDEN 内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています |
| Rule 5.4 | 必要(Required) |
MISRA.DEFINE.NOT_DISTINCT.C90.2012 識別子名が長すぎます |
| Rule 5.5 | 必要(Required) |
MISRA.MACRO.IDENT.DISTINCT.C90.2012 識別子は最初の 31 文字内でマクロ名と区別されなければならない |
| Rule 5.6 | 必要(Required) |
MISRA.TYPEDEF.NOT_UNIQUE.2012 Typedef 名がその他のエンティティ用に使用されています |
| Rule 5.7 | 必要(Required) |
MISRA.CT.UNIQUE.ID.2012 識別子がタグ名と不整合です |
| Rule 5.8 | 必要(Required) |
MISRA.IDENT.NONUNIQUE.EXTERNAL.2012 外部リンクを持つオブジェクトまたは関数を定義する識別子は一意でなければなりません。 |
| Rule 5.9 | 推奨(Advisory) |
MISRA.IDENT.NONUNIQUE.INTERNAL.2012 内部リンクを持つオブジェクトまたは関数を定義する識別子は一意でなければなりません。 |
| Rule 6.1 | 必要(Required) |
MISRA.BITFIELD.TYPE.2012 ビットフィールドの型は、ブール、符号付き/符号なし整数のいずれでもありません |
| Rule 6.2 | 必要(Required) |
MISRA.BITFIELD.SIGNED 名前付きの符号付きビットフィールドの長さが 2 未満です |
| Rule 7.1 | 必要(Required) |
MISRA.TOKEN.OCTAL.INT 8 進数の整数定数を使用しています |
| Rule 7.2 | 必要(Required) |
MISRA.LITERAL.UNSIGNED.SUFFIX 'U' 添え字の付かない符号なし整数リテラルです |
| Rule 7.3 | 必要(Required) |
MISRA.TOKEN.L.SUFFIX.FLOAT 浮動小数点定数では、小文字 "l" 接尾辞を使用 MISRA.TOKEN.L.SUFFIX.INT 整数定数では、小文字 "l" 接尾辞を使用 |
| Rule 7.4 | 必要(Required) |
MISRA.STRING_LITERAL.NON_CONST.2012 オブジェクトの種類が const-qualified char のポインターでない限り、文字列リテラルはオブジェクトに割り当てられません |
| Rule 8.1 | 必要(Required) |
MISRA.DECL.NO_TYPE 宣言から型が抜けています |
| Rule 8.2 | 必要(Required) |
MISRA.FUNC.NO_PARAMS パラメーターのない関数に void パラメータータイプがありません MISRA.FUNC.PROT_FORM.KR.2012 関数タイプはプロトタイプ形式です MISRA.FUNC.UNMATCHED.PARAMS 関数に渡される仮引数と実際のパラメーターの数が一致しません MISRA.FUNC.UNNAMED.PARAMS 関数の宣言に名前のないパラメーターがあります |
| Rule 8.3 | 必要(Required) |
MISRA.DECL.FUNC.NAME.QUAL.2012 オブジェクトまたは関数のすべての宣言は、同じ名前と型の修飾子を使用します MISRA.FUNC.PARAMS.IDENT 関数の宣言と定義で使用される識別子が一致していません MISRA.OBJ.FUNC.PARAMS.IDENT オブジェクトまたは関数のすべての宣言は、同じ名前と型修飾子を使用します |
| Rule 8.4 | 必要(Required) |
MISRA.FUNC.NOPROT.DEF.2012 関数は定義されていますが、プロトタイプがありません |
| Rule 8.5 | 必要(Required) |
MISRA.DECL.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の宣言は、1 つの場所にのみ存在する必要があります。 |
| Rule 8.6 | 必要(Required) |
MISRA.DEFINE.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の定義は、1 つの場所にのみ存在する必要があります。 |
| Rule 8.7 | 推奨(Advisory) |
MISRA.EXT.LINKAGE.REDUNDANT.2012 関数とオブジェクトが 1 つの翻訳単位のみで参照される場合、外部リンケージで定義しないでください |
| Rule 8.8 | 必要(Required) |
MISRA.FUNC.STATIC.REDECL 関数またはオブジェクトの再宣言に 'static' 修飾子がありません |
| Rule 8.9 | 推奨(Advisory) |
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN extern グローバル変数の可視範囲が広すぎます CXX.ID_VIS.GLOBAL_VARIABLE.STATIC static グローバル変数の可視範囲が広すぎます |
| Rule 8.11 | 推奨(Advisory) |
MISRA.DECL.ARRAY_SIZE 配列の宣言でサイズが不明です |
| Rule 8.12 | 必要(Required) |
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012 暗黙的列挙子値は一意ではありません |
| Rule 8.13 | 推奨(Advisory) |
MISRA.PPARAM.NEEDS.CONST ポインタパラメーターを使用しないでアドレスされたオブジェクトを変更していますが、const を指すポインタとして宣言されていません |
| Rule 9.1 | 必須(Mandatory) |
UNINIT.STACK.ARRAY.MIGHT 未初期化の配列の可能性 UNINIT.STACK.ARRAY.MUST 未初期化の配列 UNINIT.STACK.ARRAY.PARTIAL.MUST 一部が未初期化の配列 UNINIT.STACK.MIGHT 未初期化の変数の可能性 UNINIT.STACK.MUST 未初期化の変数 |
| Rule 9.2 | 必要(Required) |
MISRA.INIT.BRACES.2012 集計または共用体の初期化子が波括弧で囲まれていません |
| Rule 9.3 | 必要(Required) |
MISRA.INIT.PARTIAL.2012 配列が部分的に初期化されています |
| Rule 10.1 | 必要(Required) |
MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012 バイナリ演算子へのオペランドには、不適切な基本タイプがあります MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012 インデックス式に、不適切な基本タイプがあります MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012 三項演算子への最初のオペランドには、不適切な基本タイプがあります MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012 単項演算子へのオペランドには、不適切な基本タイプがあります |
| Rule 10.2 | 必要(Required) |
MISRA.ETYPE.INAPPR.CHAR.2012 加算または減算演算で、基本的な文字タイプの不適切な使用法。 |
| Rule 10.3 | 必要(Required) |
MISRA.ETYPE.ASSIGN.2012 より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て |
| Rule 10.4 | 必要(Required) |
MISRA.ETYPE.CATEGORY.DIFFERENT.2012 通常の算術演算変換が実行される演算子のオペランドに、同じ基本タイプカテゴリーがありません。 |
| Rule 10.5 | 推奨(Advisory) |
MISRA.ETYPE.INAPPR.CAST.2012 式の値は、不適切な基本タイプへのキャストです |
| Rule 10.6 | 必要(Required) |
MISRA.ETYPE.COMP.ASSIGN.2012 複合式の値は、より広い基本タイプを持つオブジェクトに割り当てられました。 |
| Rule 10.7 | 必要(Required) |
MISRA.ETYPE.COMP.CAST.IMPL.WIDER.2012 通常の算術演算変換が実行される演算子のオペランドとして使用される複合式には、より広い基本タイプを持つ他のオペランドがあります。 |
| Rule 10.8 | 必要(Required) |
MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012 複合式の値は、異なる基本タイプカテゴリーへのキャストです MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012 複合式の値は、より広い基本タイプへのキャストです |
| Rule 11.1 | 必要(Required) |
MISRA.CAST.FUNC_PTR.2012 関数を指すポインタと、別の非互換タイプとの間で実行された変換 |
| Rule 11.2 | 必要(Required) |
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012 不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換 |
| Rule 11.3 | 必要(Required) |
MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012 オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト |
| Rule 11.4 | 推奨(Advisory) |
MISRA.CAST.OBJ_PTR_TO_INT.2012 オブジェクトを指すポインタと、整数タイプとの間で実行された変換 |
| Rule 11.5 | 推奨(Advisory) |
MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012 void ポインタから、オブジェクトを指すポインタに実行された変換 |
| Rule 11.6 | 必要(Required) |
MISRA.CAST.VOID_PTR_TO_INT.2012 void を指すポインタと算術演算タイプとの間のキャスト |
| Rule 11.7 | 必要(Required) |
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト |
| Rule 11.8 | 必要(Required) |
MISRA.CAST.CONST キャスト演算により const または volatile がポインターまたは参照から除外されます。 |
| Rule 11.9 | 必要(Required) |
MISRA.LITERAL.NULL.PTR.CONST.2012 マクロ NULL は、唯一許可された整数 null ポインター定数のフォームです。 |
| Rule 12.1 | 推奨(Advisory) |
MISRA.EXPR.PARENS.2012 式内の演算子の優先度は明示的にする必要があります。 MISRA.EXPR.PARENS.SIZEOF.2012 sizeof 演算子のオペランドは括弧に入れる必要があります。 |
| Rule 12.2 | 必要(Required) |
MISRA.SHIFT.RANGE.2012 シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負 |
| Rule 12.3 | 推奨(Advisory) |
MISRA.COMMA カンマ演算子が使用されています |
| Rule 12.4 | 推奨(Advisory) |
MISRA.COMP.WRAPAROUND 条件内でラップアラウンドしています |
| Rule 12.5 | 必須(Mandatory) |
MISRA.EXPR.SIZEOF.ARRAY_PARAM.2012_AMD1 sizeof 演算子に「配列型」として宣言された関数パラメータとなっているオペランドが含まれています。 |
| Rule 13.2 | 必要(Required) |
PORTING.VAR.EFFECTS ある使用法が副次的な影響を受ける式で変数が 2 回使用されています |
| Rule 13.3 | 推奨(Advisory) |
MISRA.INCR_DECR.SIDEEFF.2012 インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません |
| Rule 13.4 | 推奨(Advisory) |
MISRA.ASSIGN.SUBEXPR.2012 代入演算子の結果が使用されます |
| Rule 13.5 | 必要(Required) |
MISRA.LOGIC.SIDEEFF 論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります |
| Rule 13.6 | 必要(Required) |
MISRA.SIZEOF.SIDE_EFFECT sizeof のオペランドに副作用があります |
| Rule 14.1 | 必要(Required) |
MISRA.FOR.COUNTER.FLT for ループのカウンターが浮動小数点タイプです |
| Rule 14.2 | 必要(Required) |
MISRA.FOR.BODY.LOOP_CTR_MODIFIED ループカウンターをループ本体で変更しないでください MISRA.FOR.BODY.LOOP_CTR_MODIFIED.MIGHT ループカウンターをループ本体で変更しないでください MISRA.FOR.COND.COUNTER_UNUSED ループの 2 番目の節は、ループカウンターを使用します MISRA.FOR.COND.INVALID_USE ループの 2 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.COND.INVALID_USE.MIGHT ループの 2 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.COND.PURE ループの 2 番目の節は、永続的な副作用のない単一式であることが必要です MISRA.FOR.COND.SINGLE_PURE ループの 2 番目の節は、永続的な副作用のない単一式であることが必要です MISRA.FOR.ITER_EXPR.INVALID_USE ループの 3 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.ITER_EXPR.INVALID_USE.MIGHT ループの 3 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.ITER_EXPR.MULTI_SIDE_EFFECTS ループの 3 番目の節は、ループカウンターに対する永続的な副作用のみが含まれます。 MISRA.FOR.ITER_EXPR.ONE_EXPR ループの 3 番目の節は単一式であることが必要です MISRA.FOR.MULTI_INIT ループの最初の節は空にするか、ループカウンターに値を代入します MISRA.FOR.UNINIT_COUNTER ループの最初の節は空にするか、ループカウンターに値を代入します |
| Rule 14.3 | 必要(Required) |
INVARIANT_CONDITION.GEN 不変な条件式 INVARIANT_CONDITION.UNREACH 不変な条件式 |
| Rule 14.4 | 必要(Required) |
MISRA.STMT.COND.NOT_BOOLEAN.2012 'if' ステートメントまたは 'loop' ステートメントの制御式が 'Essentially Boolean' 型ではありません |
| Rule 15.1 | 推奨(Advisory) |
MISRA.GOTO goto ステートメントが使用されています |
| Rule 15.2 | 必要(Required) |
MISRA.GOTO.AFTER_LABEL.2012 Goto は、同じ関数で前に宣言されたラベルにジャンプします。 |
| Rule 15.3 | 必要(Required) |
MISRA.GOTO.NESTED.2012 goto に参照されたラベルは、このブロック、または、それを囲むブロックの中にありません。 |
| Rule 15.4 | 推奨(Advisory) |
MISRA.BREAK_OR_GOTO.MULTIPLE.2012 反復ステートメントに複数の break または for ループ終端への複数の goto があります |
| Rule 15.5 | 推奨(Advisory) |
MISRA.RETURN.NOT_LAST 関数内で return が最後のステートメントになっていません |
| Rule 15.6 | 必要(Required) |
MISRA.IF.NO_COMPOUND if/else ステートメントのボディが複合ステートメントではありません MISRA.STMT.NO_COMPOUND switch、while、do/while または for ステートメントのボディが複合ステートメントではありません |
| Rule 15.7 | 必要(Required) |
MISRA.IF.NO_ELSE if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています |
| Rule 16.1 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.2012 すべての switch ステートメントは形式が適切である必要があります。 |
| Rule 16.2 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.NESTED_LABEL.2012 switch ラベルは、最も近くで囲い込む複合ステートメントが switch ステートメントの本文の場合にのみ使用されます。 |
| Rule 16.3 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.BREAK.2012 条件なしの break ステートメントで各 switch 句を終了するべきです。 |
| Rule 16.4 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 各 switch ステートメントはデフォルトラベルを有するべきです。 |
| Rule 16.5 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.DEFAULT.FIRST_OR_LAST.2012 デフォルトのラベルが switch ステートメントの最初または最後の switch ラベルのいずれかとして表示されるべきです。 |
| Rule 16.6 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012 各 switch ステートメントは少なくとも 2 つの switch 句を有するべきです。 |
| Rule 16.7 | 必要(Required) |
MISRA.SWITCH.COND.BOOL.2012 switch 文は基本的にブールデータ型を有しているべきではありません。 |
| Rule 17.1 | 必要(Required) |
MISRA.FUNC.VARARG 関数が可変数の引数を持っています |
| Rule 17.2 | 必要(Required) |
MISRA.FUNC.RECUR 再帰関数 |
| Rule 17.3 | 必須(Mandatory) |
MISRA.FUNC.NODECL.CALL.2012 関数は暗黙的に宣言されました |
| Rule 17.4 | 必須(Mandatory) |
FUNCRET.GEN 非 void 関数に戻り値がありません FUNCRET.IMPLICIT 暗黙的に int を返す非 void 関数に戻り値がありません |
| Rule 17.5 | 必要(Required) |
MISRA.ARRAY.ARG_SIZE 配列引数は適切なサイズでなければなりません MISRA.ARRAY.ARG_SIZE.MIGHT 配列引数は適切なサイズでなければなりません |
| Rule 17.7 | 必要(Required) |
MISRA.FUNC.UNUSEDRET.2012 非 void 関数の戻り値を使用してください |
| Rule 17.8 | 推奨(Advisory) |
MISRA.FUNC.MODIFIEDPAR.2012 関数パラメーターは変更してはなりません |
| Rule 18.1 | 必要(Required) |
ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 MISRA.PTR.ARITH.NOT_SAME.2012 ポインターオペランドの計算から得られるポインターは、そのポインターオペランドと同じ配列の要素をアドレス指定します |
| Rule 18.2 | 必要(Required) |
MISRA.PTR.SUB ポインターの減算は、同じ配列を指している場合にのみ適用されます MISRA.PTR.SUB.OBJECT ポインターの減算は、同じオブジェクトを指している場合にのみ適用されます |
| Rule 18.3 | 必要(Required) |
MISRA.PTR.CMP.2008 比較演算子を使用したポインターの比較は、同じ配列を指していて、範囲内にある場合にのみ適用されます MISRA.PTR.CMP.OBJECT.2008 比較演算子を使用したポインターの比較は、同じオブジェクトを指しており、範囲内である場合にのみ適用されます |
| Rule 18.4 | 推奨(Advisory) |
MISRA.PTR.ARITH.2012 演算式にポインターが使用されています |
| Rule 18.5 | 推奨(Advisory) |
MISRA.PTR.TO_PTR_TO_PTR ポインタ宣言に 2 つ以上のレベルの間接指定があります |
| Rule 18.6 | 必要(Required) |
LOCRET.ARG 関数がローカル変数のアドレスを返しています LOCRET.GLOB 関数がローカル変数のアドレスを返しています LOCRET.RET 関数がローカル変数のアドレスを返しています |
| Rule 19.1 | 必須(Mandatory) |
MISRA.ASSIGN.OVERLAP オブジェクトがオーバーラップするオブジェクトに割り当てられています |
| Rule 19.2 | 推奨(Advisory) |
MISRA.UNION 和集合が使用されています |
| Rule 20.1 | 推奨(Advisory) |
MISRA.INCL.INSIDE include ディレクティブの前にプリプロセッサ出力トークンがあります |
| Rule 20.2 | 必要(Required) |
MISRA.INCL.SYMS ヘッダーファイル名に非標準文字が使用されています |
| Rule 20.3 | 必要(Required) |
MISRA.INCL.BAD 非標準の include ディレクティブです |
| Rule 20.4 | 必要(Required) |
MISRA.DEFINE.WRONGNAME.C90.2012 マクロはキーワードと同じ名前で定義してはなりません |
| Rule 20.5 | 推奨(Advisory) |
MISRA.UNDEF 定義のない使用です |
| Rule 20.6 | 必要(Required) |
MISRA.EXPANSION.DIRECTIVE マクロの引数内にディレクティブのようなトークンがあります |
| Rule 20.7 | 必要(Required) |
MISRA.MACRO_ARG.EXPRESSION.2012 マクロパラメーターを展開した後の式は括弧で囲む必要があります。 |
| Rule 20.8 | 必要(Required) |
MISRA.ELIF.COND.NOT_BOOL.2012 #elif 条件が 0 または 1 ではありません MISRA.IF.COND.NOT_BOOL.2012 #if 条件が 0 または 1 ではありません |
| Rule 20.9 | 必要(Required) |
MISRA.ELIF.UNDEF #elif ディレクティブでマクロが定義されていません MISRA.IF.UNDEF #if ディレクティブでマクロが定義されていません |
| Rule 20.10 | 推奨(Advisory) |
MISRA.DEFINE.SHARP マクロ定義に # 演算子または ## 演算子が使用されています |
| Rule 20.11 | 必要(Required) |
MISRA.DEFINE.SHARP.ORDER.2012 複数の '#' または '##' の評価の順番が指定されていません |
| Rule 20.12 | 必要(Required) |
MISRA.DEFINE.SHARP.REPLACE.2012 それ自身さらなるマクロ置換の影響を受ける、'#' または '##' 演算子のオペランドとして使用されるマクロパラメーターは、これらの演算子のオペランドとしてのみ使用される。 |
| Rule 20.13 | 必要(Required) |
MISRA.USE.UNKNOWNDIR 不明なプリプロセッサディレクティブが使用されています |
| Rule 20.14 | 必要(Required) |
MISRA.ELIF.OTHERFILE 不適切なファイルでの #elif MISRA.ELSE.OTHERFILE 不適切なファイルでの #else MISRA.ENDIF.OTHERFILE 不適切なファイルでの #endif |
| Rule 21.1 | 必要(Required) |
MISRA.DEFINE.WRONGNAME 標準ライブラリからの名前がマクロ名に使用されています MISRA.DEFINE.WRONGNAME.UNDERSCORE 予約名がマクロ名に使用されています MISRA.UNDEF.WRONGNAME 標準ライブラリからの名前が定義されていません MISRA.UNDEF.WRONGNAME.UNDERSCORE 予約名が定義されていません |
| Rule 21.2 | 必要(Required) |
MISRA.STDLIB.WRONGNAME 標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています MISRA.STDLIB.WRONGNAME.UNDERSCORE 予約名が言語エンティティの名前に使用されています |
| Rule 21.3 | 必要(Required) |
MISRA.STDLIB.MEMORY 動的ヒープメモリ割り当ての使用 |
| Rule 21.4 | 必要(Required) |
MISRA.STDLIB.LONGJMP setjmp マクロまたは longjmp 関数の使用 |
| Rule 21.5 | 必要(Required) |
MISRA.INCL.SIGNAL.2012 標準ヘッダーファイル signal.h は使用しない MISRA.STDLIB.SIGNAL signal.h の信号処理装置の使用 |
| Rule 21.6 | 必要(Required) |
MISRA.DEFINE.STDIO.WCHAR.2012 不適切なマクロ展開です MISRA.INCL.STDIO.2012 標準ヘッダーファイル stdio.h は使用しない MISRA.STDLIB.STDIO プロダクションコードで入力/出力ライブラリ stdio.h が使用されています MISRA.STDLIB.STDIO.WCHAR.2012 stdio.h からワイド文字と同等の識別子は使用しない |
| Rule 21.7 | 必要(Required) |
MISRA.STDLIB.ATOI ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています |
| Rule 21.8 | 必要(Required) |
MISRA.STDLIB.ABORT.2012_AMD2 ライブラリ stdlib.h の 'abort'、'exit'、'quick_exit' または '_Exit' の使用 |
| Rule 21.9 | 必要(Required) |
MISRA.STDLIB.BSEARCH.2012 ライブラリ stdlib.h の 'bsearch' または 'qsort' が使用されています |
| Rule 21.10 | 必要(Required) |
MISRA.DEFINE.WCSFTIME.2012 'wcsftime' の名前を持つマクロは拡張しない MISRA.INCL.TIME.2012 標準ヘッダーファイル time.h は使用しない MISRA.STDLIB.TIME ライブラリ time.h の時間処理関数の使用 MISRA.STDLIB.WCSFTIME.2012 識別子 'wcsftime' は使用しない |
| Rule 21.13 | 必須(Mandatory) |
MISRA.STDLIB.CTYPE.ARG_VAL <ctype.h> で関数に渡される値はすべて unsigned char として表現できるか、または EOF の値でなければなりません MISRA.STDLIB.CTYPE.RANGE.2012_AMD1 ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません |
| Rule 21.14 | 必要(Required) |
MISRA.MEMCMP.NTS.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない |
| Rule 21.15 | 必要(Required) |
MISRA.STDLIB.INCOMPAT_ARGS.2012_AMD1 Memcpy、memmove、または memcmp へのポインタ引数は互換性のある型へのポインタではありません |
| Rule 21.16 | 必要(Required) |
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES 標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、本質的に符号付きの型、本質的に符号なしの型、本質的にブール型、または本質的に列挙型のどれかです |
| Rule 21.17 | 必須(Mandatory) |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 NNTS.MIGHT バッファオーバーフロー - 非 NULL 終了文字列 NNTS.MUST バッファオーバーフロー - 非 NULL 終了文字列 |
| Rule 21.18 | 必須(Mandatory) |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 |
| Rule 21.19 | 必須(Mandatory) |
MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1 標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります。 MISRA.STDLIB.RET.NONCONST_PTR.LOCAL 標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります |
| Rule 21.20 | 必須(Mandatory) |
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1 標準ライブラリ関数 asctime または同様の関数によって返されるポインタは、同じ関数の後続の呼び出しに続いては使用しません |
| Rule 21.21 | 必要(Required) |
MISRA.STDLIB.SYSTEM.2012_AMD2 ライブラリ stdlib.h からの 'system' の使用 |
| Rule 22.1 | 必要(Required) |
MLK.MIGHT メモリリークの可能性 MLK.MUST メモリリーク MLK.RET.MIGHT メモリリークの可能性 MLK.RET.MUST メモリリーク RH.LEAK リソースリーク |
| Rule 22.2 | 必須(Mandatory) |
FMM.MIGHT メモリの解放の不一致の可能性 FMM.MUST メモリの解放の不一致 FNH.MIGHT 非ヒープメモリの解放の可能性 FNH.MUST 非ヒープメモリの解放 FUM.GEN.MIGHT 未割り当てメモリの解放の可能性 FUM.GEN.MUST 未割り当てメモリの解放 UFM.FFM.MIGHT 解放済みメモリの使用 (二重解放)の可能性 UFM.FFM.MUST 解放済みメモリの解放 |
| Rule 22.3 | 必要(Required) |
MISRA.RESOURCES.FILE.OPEN_READ_WRITE.2012 同じファイルに対して複数のストリームが開かれています |
| Rule 22.4 | 必須(Mandatory) |
MISRA.RESOURCES.FILE.READ_ONLY_WRITE.2012 読み取り専用として開かれたストリームに書き込んではなりません |
| Rule 22.5 | 必須(Mandatory) |
MISRA.FILE_PTR.DEREF.2012 FILE オブジェクトへのポインターは逆参照してはなりません MISRA.FILE_PTR.DEREF.CAST.2012 オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。 MISRA.FILE_PTR.DEREF.INDIRECT.2012 FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません MISRA.FILE_PTR.DEREF.RETURN.2012 FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません |
| Rule 22.6 | 必須(Mandatory) |
MISRA.RESOURCES.FILE.USE_AFTER_CLOSE.2012 FILE を指し示すポインターの値は、関連するストリームが閉じられたあとは使用しないでください |
| Rule 22.7 | 必要(Required) |
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 マクロ EOF は、EOF を返すことができる標準ライブラリ関数からの未変更の戻り値とのみ比較されなければなりません。 |
| Rule 22.8 | 必要(Required) |
CXX.ERRNO.NOT_SET ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない |
| Rule 22.9 | 必要(Required) |
CXX.ERRNO.NOT_CHECKED ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している |
| Rule 22.10 | 必要(Required) |
CXX.ERRNO.INCORRECTLY_CHECKED ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない |
MISRA C:2012 改訂 2 C99
| ガイドライン | カテゴリ | チェッカー名および説明 |
|---|---|---|
| Dir. 1.1 | 必要(Required) | |
| Dir. 2.1 | 必要(Required) | |
| Dir. 3.1 | 必要(Required) | |
| Dir 4.1 | 必要(Required) |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.ITERATOR バッファオーバーフロー - 配列インデックスが範囲外の可能性 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.NON_ARRAY 非配列オブジェクトが配列として使用される ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.UNICODE.BOUND_MAP 文字関数のマッピング時のバッファオーバーフロー ABV.UNICODE.FAILED_MAP 関数のマッピングに失敗します ABV.UNICODE.NNTS_MAP 文字関数のマッピング時のバッファオーバーフロー ABV.UNICODE.SELF_MAP 関数のマッピングに失敗します ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 DBZ.CONST ゼロ定数による除算が発生しました DBZ.CONST.CALL 値 '0' が除数としてこの値を使用できる関数に渡されます DBZ.GENERAL ゼロ除算が発生した可能性があります DBZ.GENERAL.FLOAT 浮動小数点数のゼロ除算が発生した可能性があります DBZ.ITERATOR ループ反復子でゼロ除算が発生した可能性があります DBZ.ITERATOR.CALL 関数呼出しでゼロ除算が発生した可能性があります DBZ.ITERATOR.FLOAT ループ反復子でゼロ除算が発生した可能性があります NUM.OVERFLOW.DF 起こり得る数値のオーバーフローまたはラップアラウンド UNINIT.CTOR.MIGHT コンストラクタにおける未初期化の変数の可能性 UNINIT.CTOR.MUST コンストラクタにおける未初期化の変数 UNINIT.HEAP.MIGHT 未初期化のヒープの使用の可能性 UNINIT.HEAP.MUST 未初期化のヒープの使用 UNINIT.STACK.ARRAY.MIGHT 未初期化の配列の可能性 UNINIT.STACK.ARRAY.MUST 未初期化の配列 UNINIT.STACK.ARRAY.PARTIAL.MUST 一部が未初期化の配列 UNINIT.STACK.MIGHT 未初期化の変数の可能性 UNINIT.STACK.MUST 未初期化の変数 |
| Dir 4.2 | 推奨(Advisory) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
| Dir 4.3 | 必要(Required) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
| Dir 4.4 | 推奨(Advisory) |
MISRA.TOKEN.COMMENTED.CODE コメントにはコメントアウトされたソースコードが含まれているようです |
| Dir. 4.5 | 推奨(Advisory) | |
| Dir 4.6 | 推奨(Advisory) |
MISRA.BUILTIN_NUMERIC 組み込み数値型が使用されています |
| Dir 4.7 | 必要(Required) |
SV.RVT.RETVAL_NOTTESTED 戻り値の無視 |
| Dir 4.8 | 推奨(Advisory) |
MISRA.STRUCT_DEF.HIDDEN.2012 構造体または共用体へのポインターが翻訳単位内で逆参照されない場合は、オブジェクトの実装を非表示にする必要があります。 |
| Dir 4.9 | 推奨(Advisory) |
MISRA.DEFINE.FUNC マクロが関数のように定義されています |
| Dir 4.10 | 必要(Required) |
MISRA.INCGUARD インクルードガードが入力されていません |
| Dir. 4.11 | 必要(Required) | |
| Dir. 4.12 | 必要(Required) | |
| Dir. 4.13 | 推奨(Advisory) | |
| Dir 4.14 | 必要(Required) |
ABV.TAINTED 未検証の入力によるバッファオーバーフロー NNTS.TAINTED 未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列 SV.TAINTED.ALLOC_SIZE メモリ割り当て時の未検証の整数の使用 SV.TAINTED.BINOP バイナリ演算での未検証整数値の使用 SV.TAINTED.CALL.BINOP バイナリ演算での未検証整数値の使用 SV.TAINTED.CALL.DEREF 未検証ポインターの逆参照 SV.TAINTED.CALL.INDEX_ACCESS 関数呼び出し時の配列インデックスとしての未検証の整数の使用 SV.TAINTED.CALL.LOOP_BOUND 関数呼び出しのループ条件での未検証の整数の使用 SV.TAINTED.DEREF 未検証ポインターの逆参照 SV.TAINTED.FMTSTR 書式文字列での未検証データの使用 SV.TAINTED.INDEX_ACCESS 配列インデックスとしての未検証の整数の使用 SV.TAINTED.INJECTION コマンドインジェクション SV.TAINTED.LOOP_BOUND ループ条件での未検証の整数の使用 SV.TAINTED.PATH_TRAVERSAL パストラバーサルでの未検証データの使用 SV.TAINTED.SECURITY_DECISION セキュリティ決定 |
| Rule 1.2 | 推奨(Advisory) |
MISRA.LANG.EXTENSIONS 言語拡張は使用するべきではありません |
| Rule 1.3 | 必要(Required) |
MISRA.ELIF.DEFINED #elif ディレクティブで不正な 'defined' が使用されています MISRA.EXPANSION.NARGS マクロの引数がありません MISRA.EXPANSION.UNSAFE 安全ではないマクロの使用 MISRA.IF.DEFINED #if ディレクティブで不正な 'defined' が使用されています MISRA.INCOMPLETE.STRUCT 不完全な構造タイプが使用されています MISRA.INCOMPLETE.STRUCT.UNNAMED 名前のない不完全な構造タイプが使用されています MISRA.INCOMPLETE.UNION 不完全な和集合タイプが使用されています MISRA.INCOMPLETE.UNION.UNNAMED 名前のない不完全な和集合タイプが使用されています |
| Rule 2.1 | 必要(Required) |
UNREACH.ENUM enum が取りうる値が原因で、コードは到達不能になっています UNREACH.GEN 到達不能コード UNREACH.RETURN 到達不能な void return文 |
| Rule 2.2 | 必要(Required) |
EFFECT ステートメントの影響はありません LV_UNUSED.GEN ローカル変数は使用されません VA_UNUSED.GEN 値を割り当て後に使用しません VA_UNUSED.INIT 値を初期化後に使用しません |
| Rule 2.3 | 推奨(Advisory) |
MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めない MISRA.UNUSED.LOCAL_TYPE プロジェクトには未使用の型宣言を含めないでください |
| Rule 2.4 | 推奨(Advisory) |
MISRA.UNUSED.ENUM_TAG プロジェクトには未使用のタグ宣言を含めないでください MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めない |
| Rule 2.5 | 推奨(Advisory) |
MISRA.UNUSED_MACRO.2012 プロジェクトには未使用のマクロ宣言を含めない |
| Rule 2.6 | 推奨(Advisory) |
LA_UNUSED ラベルが使用されていません |
| Rule 2.7 | 推奨(Advisory) |
MISRA.FUNC.UNUSEDPAR.2012 関数に未使用のパラメーターがあります |
| Rule 3.1 | 必要(Required) |
MISRA.TOKEN.BADCOM コメントに不適切な文字列があります |
| Rule 3.2 | 必要(Required) |
MISRA.TOKEN.CPCOM.MULTILINE.2012 //コメントでラインスプライシングが使用されています |
| Rule 4.1 | 必要(Required) |
MISRA.TOKEN.UNTERMINATED.ESCAPE.2012 文字列リテラルに終端されていないエスケープシーケンスがあります |
| Rule 4.2 | 推奨(Advisory) |
MISRA.CHAR.TRIGRAPH 3 文字表記の使用 |
| Rule 5.1 | 必要(Required) |
MISRA.EXT.IDENT.DISTINCT.2012.C99 外部識別子は、実装によって指定された制限内で一意である必要があります。 |
| Rule 5.2 | 必要(Required) |
MISRA.IDENT.DISTINCT.C99.2012 同一のスコープまたは同一の名前空間で宣言された識別子が区別されていません |
| Rule 5.3 | 必要(Required) |
MISRA.VAR.HIDDEN 内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています |
| Rule 5.4 | 必要(Required) |
MISRA.DEFINE.NOT_DISTINCT.C99.2012 識別子名が長すぎます |
| Rule 5.5 | 必要(Required) |
MISRA.MACRO.IDENT.DISTINCT.C99.2012 識別子は最初の 63 文字内でマクロ名と区別されなければならない |
| Rule 5.6 | 必要(Required) |
MISRA.TYPEDEF.NOT_UNIQUE.2012 Typedef 名がその他のエンティティ用に使用されています |
| Rule 5.7 | 必要(Required) |
MISRA.CT.UNIQUE.ID.2012 識別子がタグ名と不整合です |
| Rule 5.8 | 必要(Required) |
MISRA.IDENT.NONUNIQUE.EXTERNAL.2012 外部リンクを持つオブジェクトまたは関数を定義する識別子は一意でなければなりません。 |
| Rule 5.9 | 推奨(Advisory) |
MISRA.IDENT.NONUNIQUE.INTERNAL.2012 内部リンクを持つオブジェクトまたは関数を定義する識別子は一意でなければなりません。 |
| Rule 6.1 | 必要(Required) |
MISRA.BITFIELD.TYPE.2012 ビットフィールドの型は、ブール、符号付き/符号なし整数のいずれでもありません |
| Rule 6.2 | 必要(Required) |
MISRA.BITFIELD.SIGNED 名前付きの符号付きビットフィールドの長さが 2 未満です |
| Rule 7.1 | 必要(Required) |
MISRA.TOKEN.OCTAL.INT 8 進数の整数定数を使用しています |
| Rule 7.2 | 必要(Required) |
MISRA.LITERAL.UNSIGNED.SUFFIX 'U' 添え字の付かない符号なし整数リテラルです |
| Rule 7.3 | 必要(Required) |
MISRA.TOKEN.L.SUFFIX.FLOAT 浮動小数点定数では、小文字 "l" 接尾辞を使用 MISRA.TOKEN.L.SUFFIX.INT 整数定数では、小文字 "l" 接尾辞を使用 |
| Rule 7.4 | 必要(Required) |
MISRA.STRING_LITERAL.NON_CONST.2012 オブジェクトの種類が const-qualified char のポインターでない限り、文字列リテラルはオブジェクトに割り当てられません |
| Rule 8.2 | 必要(Required) |
MISRA.FUNC.NO_PARAMS パラメーターのない関数に void パラメータータイプがありません MISRA.FUNC.PROT_FORM.KR.2012 関数タイプはプロトタイプ形式です MISRA.FUNC.UNMATCHED.PARAMS 関数に渡される仮引数と実際のパラメーターの数が一致しません MISRA.FUNC.UNNAMED.PARAMS 関数の宣言に名前のないパラメーターがあります |
| Rule 8.3 | 必要(Required) |
MISRA.DECL.FUNC.NAME.QUAL.2012 オブジェクトまたは関数のすべての宣言は、同じ名前と型の修飾子を使用します MISRA.FUNC.PARAMS.IDENT 関数の宣言と定義で使用される識別子が一致していません MISRA.OBJ.FUNC.PARAMS.IDENT オブジェクトまたは関数のすべての宣言は、同じ名前と型修飾子を使用します |
| Rule 8.4 | 必要(Required) |
MISRA.FUNC.NOPROT.DEF.2012 関数は定義されていますが、プロトタイプがありません |
| Rule 8.5 | 必要(Required) |
MISRA.DECL.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の宣言は、1 つの場所にのみ存在する必要があります。 |
| Rule 8.6 | 必要(Required) |
MISRA.DEFINE.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の定義は、1 つの場所にのみ存在する必要があります。 |
| Rule 8.7 | 推奨(Advisory) |
MISRA.EXT.LINKAGE.REDUNDANT.2012 関数とオブジェクトが 1 つの翻訳単位のみで参照される場合、外部リンケージで定義しないでください |
| Rule 8.8 | 必要(Required) |
MISRA.FUNC.STATIC.REDECL 関数またはオブジェクトの再宣言に 'static' 修飾子がありません |
| Rule 8.9 | 推奨(Advisory) |
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN extern グローバル変数の可視範囲が広すぎます CXX.ID_VIS.GLOBAL_VARIABLE.STATIC static グローバル変数の可視範囲が広すぎます |
| Rule 8.10 | 必要(Required) |
MISRA.DECL.FUNC.INLINE.STATIC.2012 静的ストレージクラス(static)が付与されていないインライン関数の宣言 |
| Rule 8.11 | 推奨(Advisory) |
MISRA.DECL.ARRAY_SIZE 配列の宣言でサイズが不明です |
| Rule 8.12 | 必要(Required) |
MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012 暗黙的列挙子値は一意ではありません |
| Rule 8.13 | 推奨(Advisory) |
MISRA.PPARAM.NEEDS.CONST ポインタパラメーターを使用しないでアドレスされたオブジェクトを変更していますが、const を指すポインタとして宣言されていません |
| Rule 8.14 | 必要(Required) |
MISRA.TYPE.RESTRICT.QUAL.2012 restrict 型修飾子は使用しない |
| Rule 9.1 | 必須(Mandatory) |
UNINIT.STACK.ARRAY.MIGHT 未初期化の配列の可能性 UNINIT.STACK.ARRAY.MUST 未初期化の配列 UNINIT.STACK.ARRAY.PARTIAL.MUST 一部が未初期化の配列 UNINIT.STACK.MIGHT 未初期化の変数の可能性 UNINIT.STACK.MUST 未初期化の変数 |
| Rule 9.2 | 必要(Required) |
MISRA.INIT.BRACES.2012 集計または共用体の初期化子が波括弧で囲まれていません |
| Rule 9.3 | 必要(Required) |
MISRA.INIT.PARTIAL.2012 配列が部分的に初期化されています |
| Rule 9.4 | 必要(Required) |
MISRA.INIT.MULTIPLE.2012 オブジェクトの要素が複数回初期化されています |
| Rule 9.5 | 必要(Required) |
MISRA.INIT.SIZE.IMPLICIT.2012 指定された初期化子が、配列のサイズが明示的に指定されない場合に、配列オブジェクトを初期化するために使用されます |
| Rule 10.1 | 必要(Required) |
MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012 バイナリ演算子へのオペランドには、不適切な基本タイプがあります MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012 インデックス式に、不適切な基本タイプがあります MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012 三項演算子への最初のオペランドには、不適切な基本タイプがあります MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012 単項演算子へのオペランドには、不適切な基本タイプがあります |
| Rule 10.2 | 必要(Required) |
MISRA.ETYPE.INAPPR.CHAR.2012 加算または減算演算で、基本的な文字タイプの不適切な使用法。 |
| Rule 10.3 | 必要(Required) |
MISRA.ETYPE.ASSIGN.2012 より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て |
| Rule 10.4 | 必要(Required) |
MISRA.ETYPE.CATEGORY.DIFFERENT.2012 通常の算術演算変換が実行される演算子のオペランドに、同じ基本タイプカテゴリーがありません。 |
| Rule 10.5 | 推奨(Advisory) |
MISRA.ETYPE.INAPPR.CAST.2012 式の値は、不適切な基本タイプへのキャストです |
| Rule 10.6 | 必要(Required) |
MISRA.ETYPE.COMP.ASSIGN.2012 複合式の値は、より広い基本タイプを持つオブジェクトに割り当てられました。 |
| Rule 10.7 | 必要(Required) |
MISRA.ETYPE.COMP.CAST.IMPL.WIDER.2012 通常の算術演算変換が実行される演算子のオペランドとして使用される複合式には、より広い基本タイプを持つ他のオペランドがあります。 |
| Rule 10.8 | 必要(Required) |
MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012 複合式の値は、異なる基本タイプカテゴリーへのキャストです MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012 複合式の値は、より広い基本タイプへのキャストです |
| Rule 11.1 | 必要(Required) |
MISRA.CAST.FUNC_PTR.2012 関数を指すポインタと、別の非互換タイプとの間で実行された変換 |
| Rule 11.2 | 必要(Required) |
MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012 不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換 |
| Rule 11.3 | 必要(Required) |
MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012 オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト |
| Rule 11.4 | 推奨(Advisory) |
MISRA.CAST.OBJ_PTR_TO_INT.2012 オブジェクトを指すポインタと、整数タイプとの間で実行された変換 |
| Rule 11.5 | 推奨(Advisory) |
MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012 void ポインタから、オブジェクトを指すポインタに実行された変換 |
| Rule 11.6 | 必要(Required) |
MISRA.CAST.VOID_PTR_TO_INT.2012 void を指すポインタと算術演算タイプとの間のキャスト |
| Rule 11.7 | 必要(Required) |
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト |
| Rule 11.8 | 必要(Required) |
MISRA.CAST.CONST キャスト演算により const または volatile がポインターまたは参照から除外されます。 |
| Rule 11.9 | 必要(Required) |
MISRA.LITERAL.NULL.PTR.CONST.2012 マクロ NULL は、唯一許可された整数 null ポインター定数のフォームです。 |
| Rule 12.1 | 推奨(Advisory) |
MISRA.EXPR.PARENS.2012 式内の演算子の優先度は明示的にする必要があります。 MISRA.EXPR.PARENS.SIZEOF.2012 sizeof 演算子のオペランドは括弧に入れる必要があります。 |
| Rule 12.2 | 必要(Required) |
MISRA.SHIFT.RANGE.2012 シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負 |
| Rule 12.3 | 推奨(Advisory) |
MISRA.COMMA カンマ演算子が使用されています |
| Rule 12.4 | 推奨(Advisory) |
MISRA.COMP.WRAPAROUND 条件内でラップアラウンドしています |
| Rule 12.5 | 必須(Mandatory) |
MISRA.EXPR.SIZEOF.ARRAY_PARAM.2012_AMD1 sizeof 演算子に「配列型」として宣言された関数パラメータとなっているオペランドが含まれています。 |
| Rule 13.1 | 必要(Required) |
MISRA.INIT.SIDE_EFFECT 初期化子リスト値には、永続的な副作用が含まれます |
| Rule 13.2 | 必要(Required) |
PORTING.VAR.EFFECTS ある使用法が副次的な影響を受ける式で変数が 2 回使用されています |
| Rule 13.3 | 推奨(Advisory) |
MISRA.INCR_DECR.SIDEEFF.2012 インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません |
| Rule 13.4 | 推奨(Advisory) |
MISRA.ASSIGN.SUBEXPR.2012 代入演算子の結果が使用されます |
| Rule 13.5 | 必要(Required) |
MISRA.LOGIC.SIDEEFF 論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります |
| Rule 13.6 | 必要(Required) |
MISRA.SIZEOF.SIDE_EFFECT sizeof のオペランドに副作用があります |
| Rule 14.1 | 必要(Required) |
MISRA.FOR.COUNTER.FLT for ループのカウンターが浮動小数点タイプです |
| Rule 14.2 | 必要(Required) |
MISRA.FOR.BODY.LOOP_CTR_MODIFIED ループカウンターをループ本体で変更しないでください MISRA.FOR.BODY.LOOP_CTR_MODIFIED.MIGHT ループカウンターをループ本体で変更しないでください MISRA.FOR.COND.COUNTER_UNUSED ループの 2 番目の節は、ループカウンターを使用します MISRA.FOR.COND.INVALID_USE ループの 2 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.COND.INVALID_USE.MIGHT ループの 2 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.COND.PURE ループの 2 番目の節は、永続的な副作用のない単一式であることが必要です MISRA.FOR.COND.SINGLE_PURE ループの 2 番目の節は、永続的な副作用のない単一式であることが必要です MISRA.FOR.ITER_EXPR.INVALID_USE ループの 3 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.ITER_EXPR.INVALID_USE.MIGHT ループの 3 番目の節では、ループ本体で変更されたオブジェクトは使用されません。 MISRA.FOR.ITER_EXPR.MULTI_SIDE_EFFECTS ループの 3 番目の節は、ループカウンターに対する永続的な副作用のみが含まれます。 MISRA.FOR.ITER_EXPR.ONE_EXPR ループの 3 番目の節は単一式であることが必要です MISRA.FOR.MULTI_INIT ループの最初の節は空にするか、ループカウンターに値を代入します MISRA.FOR.UNINIT_COUNTER ループの最初の節は空にするか、ループカウンターに値を代入します |
| Rule 14.3 | 必要(Required) |
INVARIANT_CONDITION.GEN 不変な条件式 INVARIANT_CONDITION.UNREACH 不変な条件式 |
| Rule 14.4 | 必要(Required) |
MISRA.STMT.COND.NOT_BOOLEAN.2012 'if' ステートメントまたは 'loop' ステートメントの制御式が 'Essentially Boolean' 型ではありません |
| Rule 15.1 | 推奨(Advisory) |
MISRA.GOTO goto ステートメントが使用されています |
| Rule 15.2 | 必要(Required) |
MISRA.GOTO.AFTER_LABEL.2012 Goto は、同じ関数で前に宣言されたラベルにジャンプします。 |
| Rule 15.3 | 必要(Required) |
MISRA.GOTO.NESTED.2012 goto に参照されたラベルは、このブロック、または、それを囲むブロックの中にありません。 |
| Rule 15.4 | 推奨(Advisory) |
MISRA.BREAK_OR_GOTO.MULTIPLE.2012 反復ステートメントに複数の break または for ループ終端への複数の goto があります |
| Rule 15.5 | 推奨(Advisory) |
MISRA.RETURN.NOT_LAST 関数内で return が最後のステートメントになっていません |
| Rule 15.6 | 必要(Required) |
MISRA.IF.NO_COMPOUND if/else ステートメントのボディが複合ステートメントではありません MISRA.STMT.NO_COMPOUND switch、while、do/while または for ステートメントのボディが複合ステートメントではありません |
| Rule 15.7 | 必要(Required) |
MISRA.IF.NO_ELSE if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています |
| Rule 16.1 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.2012 すべての switch ステートメントは形式が適切である必要があります。 |
| Rule 16.2 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.NESTED_LABEL.2012 switch ラベルは、最も近くで囲い込む複合ステートメントが switch ステートメントの本文の場合にのみ使用されます。 |
| Rule 16.3 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.BREAK.2012 条件なしの break ステートメントで各 switch 句を終了するべきです。 |
| Rule 16.4 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.DEFAULT.2012 各 switch ステートメントはデフォルトラベルを有するべきです。 |
| Rule 16.5 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.DEFAULT.FIRST_OR_LAST.2012 デフォルトのラベルが switch ステートメントの最初または最後の switch ラベルのいずれかとして表示されるべきです。 |
| Rule 16.6 | 必要(Required) |
MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012 各 switch ステートメントは少なくとも 2 つの switch 句を有するべきです。 |
| Rule 16.7 | 必要(Required) |
MISRA.SWITCH.COND.BOOL.2012 switch 文は基本的にブールデータ型を有しているべきではありません。 |
| Rule 17.1 | 必要(Required) |
MISRA.FUNC.VARARG 関数が可変数の引数を持っています |
| Rule 17.2 | 必要(Required) |
MISRA.FUNC.RECUR 再帰関数 |
| Rule 17.4 | 必須(Mandatory) |
FUNCRET.GEN 非 void 関数に戻り値がありません FUNCRET.IMPLICIT 暗黙的に int を返す非 void 関数に戻り値がありません |
| Rule 17.5 | 必要(Required) |
MISRA.ARRAY.ARG_SIZE 配列引数は適切なサイズでなければなりません MISRA.ARRAY.ARG_SIZE.MIGHT 配列引数は適切なサイズでなければなりません |
| Rule 17.6 | 必須(Mandatory) |
MISRA.FUNC.ARRAY.PARAM.STATIC.2012 配列パラメーターの宣言には、[] の間に static キーワードは含まれません |
| Rule 17.7 | 必要(Required) |
MISRA.FUNC.UNUSEDRET.2012 非 void 関数の戻り値を使用してください |
| Rule 17.8 | 推奨(Advisory) |
MISRA.FUNC.MODIFIEDPAR.2012 関数パラメーターは変更してはなりません |
| Rule 18.1 | 必要(Required) |
ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 MISRA.PTR.ARITH.NOT_SAME.2012 ポインターオペランドの計算から得られるポインターは、そのポインターオペランドと同じ配列の要素をアドレス指定します |
| Rule 18.2 | 必要(Required) |
MISRA.PTR.SUB ポインターの減算は、同じ配列を指している場合にのみ適用されます MISRA.PTR.SUB.OBJECT ポインターの減算は、同じオブジェクトを指している場合にのみ適用されます |
| Rule 18.3 | 必要(Required) |
MISRA.PTR.CMP.2008 比較演算子を使用したポインターの比較は、同じ配列を指していて、範囲内にある場合にのみ適用されます MISRA.PTR.CMP.OBJECT.2008 比較演算子を使用したポインターの比較は、同じオブジェクトを指しており、範囲内である場合にのみ適用されます |
| Rule 18.4 | 推奨(Advisory) |
MISRA.PTR.ARITH.2012 演算式にポインターが使用されています |
| Rule 18.5 | 推奨(Advisory) |
MISRA.PTR.TO_PTR_TO_PTR ポインタ宣言に 2 つ以上のレベルの間接指定があります |
| Rule 18.6 | 必要(Required) |
LOCRET.ARG 関数がローカル変数のアドレスを返しています LOCRET.GLOB 関数がローカル変数のアドレスを返しています LOCRET.RET 関数がローカル変数のアドレスを返しています |
| Rule 18.7 | 必要(Required) |
MISRA.MEMB.FLEX_ARRAY.2012 柔軟な配列メンバーは宣言しないでください |
| Rule 18.8 | 必要(Required) |
MISRA.ARRAY.VAR_LENGTH.2012 変数の長さの配列種類は使用しないでください |
| Rule 19.1 | 必須(Mandatory) |
MISRA.ASSIGN.OVERLAP オブジェクトがオーバーラップするオブジェクトに割り当てられています |
| Rule 19.2 | 推奨(Advisory) |
MISRA.UNION 和集合が使用されています |
| Rule 20.1 | 推奨(Advisory) |
MISRA.INCL.INSIDE include ディレクティブの前にプリプロセッサ出力トークンがあります |
| Rule 20.2 | 必要(Required) |
MISRA.INCL.SYMS ヘッダーファイル名に非標準文字が使用されています |
| Rule 20.3 | 必要(Required) |
MISRA.INCL.BAD 非標準の include ディレクティブです |
| Rule 20.4 | 必要(Required) |
MISRA.DEFINE.WRONGNAME.C99.2012 マクロはキーワードと同じ名前で定義してはなりません |
| Rule 20.5 | 推奨(Advisory) |
MISRA.UNDEF 定義のない使用です |
| Rule 20.6 | 必要(Required) |
MISRA.EXPANSION.DIRECTIVE マクロの引数内にディレクティブのようなトークンがあります |
| Rule 20.7 | 必要(Required) |
MISRA.MACRO_ARG.EXPRESSION.2012 マクロパラメーターを展開した後の式は括弧で囲む必要があります。 |
| Rule 20.8 | 必要(Required) |
MISRA.ELIF.COND.NOT_BOOL.2012 #elif 条件が 0 または 1 ではありません MISRA.IF.COND.NOT_BOOL.2012 #if 条件が 0 または 1 ではありません |
| Rule 20.9 | 必要(Required) |
MISRA.ELIF.UNDEF #elif ディレクティブでマクロが定義されていません MISRA.IF.UNDEF #if ディレクティブでマクロが定義されていません |
| Rule 20.10 | 推奨(Advisory) |
MISRA.DEFINE.SHARP マクロ定義に # 演算子または ## 演算子が使用されています |
| Rule 20.11 | 必要(Required) |
MISRA.DEFINE.SHARP.ORDER.2012 複数の '#' または '##' の評価の順番が指定されていません |
| Rule 20.12 | 必要(Required) |
MISRA.DEFINE.SHARP.REPLACE.2012 それ自身さらなるマクロ置換の影響を受ける、'#' または '##' 演算子のオペランドとして使用されるマクロパラメーターは、これらの演算子のオペランドとしてのみ使用される。 |
| Rule 20.13 | 必要(Required) |
MISRA.USE.UNKNOWNDIR 不明なプリプロセッサディレクティブが使用されています |
| Rule 20.14 | 必要(Required) |
MISRA.ELIF.OTHERFILE 不適切なファイルでの #elif MISRA.ELSE.OTHERFILE 不適切なファイルでの #else MISRA.ENDIF.OTHERFILE 不適切なファイルでの #endif |
| Rule 21.1 | 必要(Required) |
MISRA.DEFINE.WRONGNAME 標準ライブラリからの名前がマクロ名に使用されています MISRA.DEFINE.WRONGNAME.UNDERSCORE 予約名がマクロ名に使用されています MISRA.UNDEF.WRONGNAME 標準ライブラリからの名前が定義されていません MISRA.UNDEF.WRONGNAME.UNDERSCORE 予約名が定義されていません |
| Rule 21.2 | 必要(Required) |
MISRA.STDLIB.WRONGNAME 標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています MISRA.STDLIB.WRONGNAME.UNDERSCORE 予約名が言語エンティティの名前に使用されています |
| Rule 21.3 | 必要(Required) |
MISRA.STDLIB.MEMORY 動的ヒープメモリ割り当ての使用 |
| Rule 21.4 | 必要(Required) |
MISRA.STDLIB.LONGJMP setjmp マクロまたは longjmp 関数の使用 |
| Rule 21.5 | 必要(Required) |
MISRA.INCL.SIGNAL.2012 標準ヘッダーファイル signal.h は使用しない MISRA.STDLIB.SIGNAL signal.h の信号処理装置の使用 |
| Rule 21.6 | 必要(Required) |
MISRA.DEFINE.STDIO.WCHAR.2012 不適切なマクロ展開です MISRA.INCL.STDIO.2012 標準ヘッダーファイル stdio.h は使用しない MISRA.STDLIB.STDIO プロダクションコードで入力/出力ライブラリ stdio.h が使用されています MISRA.STDLIB.STDIO.WCHAR.2012 stdio.h からワイド文字と同等の識別子は使用しない |
| Rule 21.7 | 必要(Required) |
MISRA.STDLIB.ATOI ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています |
| Rule 21.8 | 必要(Required) |
MISRA.STDLIB.ABORT.2012_AMD2 ライブラリ stdlib.h の 'abort'、'exit'、'quick_exit' または '_Exit' の使用 |
| Rule 21.9 | 必要(Required) |
MISRA.STDLIB.BSEARCH.2012 ライブラリ stdlib.h の 'bsearch' または 'qsort' が使用されています |
| Rule 21.10 | 必要(Required) |
MISRA.DEFINE.WCSFTIME.2012 'wcsftime' の名前を持つマクロは拡張しない MISRA.INCL.TIME.2012 標準ヘッダーファイル time.h は使用しない MISRA.STDLIB.TIME ライブラリ time.h の時間処理関数の使用 MISRA.STDLIB.WCSFTIME.2012 識別子 'wcsftime' は使用しない |
| Rule 21.11 | 必要(Required) |
MISRA.INCL.TGMATH.2012 標準ヘッダーファイル tgmath.h は使用しない |
| Rule 21.12 | 推奨(Advisory) |
MISRA.STDLIB.FENV.2012 fenv.h からの浮動小数点の例外機能機能が使用されています MISRA.STDLIB.FENV.MACRO.2012 fenv.h からの浮動小数点の例外機能機能が使用されています |
| Rule 21.13 | 必須(Mandatory) |
MISRA.STDLIB.CTYPE.ARG_VAL <ctype.h> で関数に渡される値はすべて unsigned char として表現できるか、または EOF の値でなければなりません MISRA.STDLIB.CTYPE.RANGE.2012_AMD1 ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません |
| Rule 21.14 | 必要(Required) |
MISRA.MEMCMP.NTS.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない |
| Rule 21.15 | 必要(Required) |
MISRA.STDLIB.INCOMPAT_ARGS.2012_AMD1 Memcpy、memmove、または memcmp へのポインタ引数は互換性のある型へのポインタではありません |
| Rule 21.16 | 必要(Required) |
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES 標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、本質的に符号付きの型、本質的に符号なしの型、本質的にブール型、または本質的に列挙型のどれかです |
| Rule 21.17 | 必須(Mandatory) |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 NNTS.MIGHT バッファオーバーフロー - 非 NULL 終了文字列 NNTS.MUST バッファオーバーフロー - 非 NULL 終了文字列 |
| Rule 21.18 | 必須(Mandatory) |
ABV.ANY_SIZE_ARRAY バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL バッファオーバーフロー - 配列インデックスが範囲外 ABV.GENERAL.MULTIDIMENSION バッファオーバーフロー - 配列インデックスが範囲外 ABV.MEMBER バッファオーバーフロー - 配列インデックスが範囲外 ABV.STACK バッファオーバーフロー - ローカル配列インデックスが範囲外 ABV.UNKNOWN_SIZE バッファオーバーフロー - 配列インデックスが範囲外 |
| Rule 21.19 | 必須(Mandatory) |
MISRA.STDLIB.ILLEGAL_WRITE.2012_AMD1 標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります。 MISRA.STDLIB.RET.NONCONST_PTR.LOCAL 標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります |
| Rule 21.20 | 必須(Mandatory) |
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1 標準ライブラリ関数 asctime または同様の関数によって返されるポインタは、同じ関数の後続の呼び出しに続いては使用しません |
| Rule 21.21 | 必要(Required) |
MISRA.STDLIB.SYSTEM.2012_AMD2 ライブラリ stdlib.h からの 'system' の使用 |
| Rule 22.1 | 必要(Required) |
MLK.MIGHT メモリリークの可能性 MLK.MUST メモリリーク MLK.RET.MIGHT メモリリークの可能性 MLK.RET.MUST メモリリーク RH.LEAK リソースリーク |
| Rule 22.2 | 必須(Mandatory) |
FMM.MIGHT メモリの解放の不一致の可能性 FMM.MUST メモリの解放の不一致 FNH.MIGHT 非ヒープメモリの解放の可能性 FNH.MUST 非ヒープメモリの解放 FUM.GEN.MIGHT 未割り当てメモリの解放の可能性 FUM.GEN.MUST 未割り当てメモリの解放 UFM.FFM.MIGHT 解放済みメモリの使用 (二重解放)の可能性 UFM.FFM.MUST 解放済みメモリの解放 |
| Rule 22.3 | 必要(Required) |
MISRA.RESOURCES.FILE.OPEN_READ_WRITE.2012 同じファイルに対して複数のストリームが開かれています |
| Rule 22.4 | 必須(Mandatory) |
MISRA.RESOURCES.FILE.READ_ONLY_WRITE.2012 読み取り専用として開かれたストリームに書き込んではなりません |
| Rule 22.5 | 必須(Mandatory) |
MISRA.FILE_PTR.DEREF.2012 FILE オブジェクトへのポインターは逆参照してはなりません MISRA.FILE_PTR.DEREF.CAST.2012 オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。 MISRA.FILE_PTR.DEREF.INDIRECT.2012 FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません MISRA.FILE_PTR.DEREF.RETURN.2012 FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません |
| Rule 22.6 | 必須(Mandatory) |
MISRA.RESOURCES.FILE.USE_AFTER_CLOSE.2012 FILE を指し示すポインターの値は、関連するストリームが閉じられたあとは使用しないでください |
| Rule 22.7 | 必要(Required) |
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 マクロ EOF は、EOF を返すことができる標準ライブラリ関数からの未変更の戻り値とのみ比較されなければなりません。 |
| Rule 22.8 | 必要(Required) |
CXX.ERRNO.NOT_SET ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない |
| Rule 22.9 | 必要(Required) |
CXX.ERRNO.NOT_CHECKED ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している |
| Rule 22.10 | 必要(Required) |
CXX.ERRNO.INCORRECTLY_CHECKED ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない |
"MISRA"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。