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