Klocwork チェッカーにマッピングされた MISRA C:2025 C90/C99 規則
MISRA C:2025 C90
ガイドライン | カテゴリー | チェッカー名と説明 |
---|---|---|
指示 1.1 | 必要 (Required) | |
指示 1.2 | 推奨 (Advisory) |
MISRA.LANG.EXTENSIONS 言語拡張は使用してはならない |
指示 2.1 | 必要 (Required) | |
指示 3.1 | 必要 (Required) | |
指示 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.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 初期化されていない変数 |
指示 4.2 | 推奨 (Advisory) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
指示 4.3 | 必要 (Required) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
指示 4.4 | 推奨 (Advisory) |
MISRA.TOKEN.COMMENTED.CODE コメントにはコメントアウトされたソースコードが含まれているようです |
指示 4.5 | 推奨 (Advisory) | |
指示 4.6 | 推奨 (Advisory) |
MISRA.BUILTIN_NUMERIC 組み込み数値型が使用されています |
指示 4.7 | 必要 (Required) |
SV.RVT.RETVAL_NOTTESTED 戻り値の無視 |
指示 4.8 | 推奨 (Advisory) |
MISRA.STRUCT_DEF.HIDDEN.2012 構造体または和集合へのポインターが変換単位内で逆参照されない場合は、オブジェクトの実装を非表示にする必要があります |
指示 4.9 | 推奨 (Advisory) |
MISRA.DEFINE.FUNC マクロが関数のように定義されています |
指示 4.10 | 必要 (Required) |
MISRA.INCGUARD インクルードガードが入力されていません |
指示 4.11 | 必要 (Required) | |
指示 4.12 | 必要 (Required) | |
指示 4.13 | 推奨 (Advisory) | |
指示 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 セキュリティ決定 |
指示 4.15 | 必要 (Required) | |
規則 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 名前のない不完全な和集合型が使用されています |
規則 2.1 | 必要 (Required) |
UNREACH.ENUM 列挙型の値があり得るため、コードは到達不能です UNREACH.GEN 到達不能コード UNREACH.RETURN 到達不能 void 戻り値 |
規則 2.2 | 必要 (Required) |
EFFECT ステートメントの影響はありません LV_UNUSED.GEN ローカル変数が使用されていません VA_UNUSED.GEN 割り当て後、値は使用されません VA_UNUSED.INIT 初期化後、値は使用されません |
規則 2.3 | 推奨 (Advisory) |
MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めないでください MISRA.UNUSED.LOCAL_TYPE プロジェクトには未使用の型宣言を含めないでください |
規則 2.4 | 推奨 (Advisory) |
MISRA.UNUSED.ENUM_TAG プロジェクトには未使用のタグ宣言を含めないでください MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めないでください |
規則 2.5 | 推奨 (Advisory) |
MISRA.UNUSED_MACRO.2012 プロジェクトには未使用のマクロ宣言を含めないでください |
規則 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 トライグラフの使用 |
規則 5.1 | 必要 (Required) |
MISRA.EXT.IDENT.DISTINCT.2012.C90 外部識別子は、実装によって指定された制限内で一意である必要があります。 |
規則 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) |
MISRA.MACRO.IDENT.DISTINCT.C90.2012 識別子は最初の 31 文字以内でマクロ名と区別されなければなりません |
規則 5.6 | 必要 (Required) |
MISRA.TYPEDEF.NOT_UNIQUE.2012 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 内部リンクを持つオブジェクトまたは関数を定義する識別子は一意でなければなりません。 |
規則 5.10 | 必要 (Required) |
MISRA.STDLIB.WRONGNAME 標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています MISRA.STDLIB.WRONGNAME.UNDERSCORE 予約名が言語エンティティの名前に使用されています |
規則 6.1 | 必要 (Required) |
MISRA.BITFIELD.TYPE.2012 ビットフィールドの型が bool でもなく、符号付き/符号なし整数でもありません |
規則 6.2 | 必要 (Required) |
MISRA.BITFIELD.SIGNED 名前のある符号付きビットフィールドの長さが 2 未満です |
規則 6.3 | 必要 (Required) |
MISRA.BITFIELD.UNION 和集合にビットフィールドがメンバーとして含まれています |
規則 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) |
MISRA.DECL.FUNC.NAME.QUAL.2012 オブジェクトまたは関数のすべての宣言は、同じ名前と型の修飾子を使用します MISRA.FUNC.PARAMS.IDENT 関数の宣言と定義の識別子が一致していません MISRA.OBJ.FUNC.PARAMS.IDENT オブジェクトまたは関数のすべての宣言は、同じ名前と型の修飾子を使用します |
規則 8.4 | 必要 (Required) |
MISRA.FUNC.NOPROT.DEF.2012 関数は定義されていますが、プロトタイプがありません |
規則 8.5 | 必要 (Required) |
MISRA.DECL.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の宣言は、1 つの場所にのみ存在する必要があります。 |
規則 8.6 | 必要 (Required) |
MISRA.DEFINE.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の定義は、1 つの場所にのみ存在する必要があります。 |
規則 8.7 | 推奨 (Advisory) |
MISRA.EXT.LINKAGE.REDUNDANT.2012 関数とオブジェクトが 1 つの変換単位のみで参照される場合は外部リンケージで定義しない |
規則 8.8 | 必要 (Required) |
MISRA.FUNC.STATIC.REDECL 関数またはオブジェクトの再宣言に 'static' 修飾子がありません |
規則 8.9 | 推奨 (Advisory) |
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN extern グローバル変数の可視性が広すぎる CXX.ID_VIS.GLOBAL_VARIABLE.STATIC 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 を指すポインターとして宣言されていません |
規則 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 | 必要 (Required) |
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 |
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 オブジェクトへのポインターと非整数算術型の間のキャストです |
|
規則 11.8 | 必要 (Required) |
MISRA.CAST.CONST キャスト演算により定数または可変修飾子がポインターまたは参照から除外されます |
規則 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 1 回の使用が副次的な影響を受けるひとつの式で、変数が 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 | 必要 (Required) |
MISRA.SIZEOF.SIDE_EFFECT sizeof のオペランドに副作用があります |
規則 14.1 | 必要 (Required) |
MISRA.FOR.COUNTER.FLT for ループのカウンターが浮動小数点型です |
規則 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 ループの最初の節は空にするか、ループカウンターに値を代入します |
規則 14.3 | 必要 (Required) |
INVARIANT_CONDITION.GEN 不変条件式 |
規則 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 | 適用不要 (Disapplied) |
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 各 switch 節は条件なし break ステートメントで終了する必要があります。 |
規則 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 | 必要 (Required) |
MISRA.ARRAY.ARG_SIZE 配列引数は適切なサイズでなければなりません MISRA.ARRAY.ARG_SIZE.MIGHT 配列引数は適切なサイズでなければなりません |
規則 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 関数によってローカル変数のアドレスが返されました |
規則 19.1 | 必須 (Mandatory) |
MISRA.ASSIGN.OVERLAP オブジェクトが、重複するオブジェクトに割り当てられています |
規則 19.2 | 推奨 (Advisory) |
MISRA.UNION 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 undef が使用されています |
規則 20.6 | 必要 (Required) |
MISRA.EXPANSION.DIRECTIVE マクロの引数内にディレクティブのようなトークンがあります |
規則 20.7 | 必要 (Required) |
MISRA.MACRO_ARG.EXPRESSION.2012 マクロパラメーターを展開した後の式は括弧で囲む必要があります |
規則 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 |
規則 20.15 | 必要 (Required) |
MISRA.DEFINE.WRONGNAME 標準ライブラリからの名前がマクロ名に使用されています MISRA.DEFINE.WRONGNAME.UNDERSCORE 予約名がマクロ名に使用されています MISRA.UNDEF.WRONGNAME 標準ライブラリからの名前が定義されていません MISRA.UNDEF.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_AMD2 ライブラリ stdlib.h の 'abort'、'exit'、'quick_exit' または '_Exit' の使用 |
規則 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.13 | 必須 (Mandatory) |
MISRA.STDLIB.CTYPE.ARG_VAL <ctype.h> で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません MISRA.STDLIB.CTYPE.RANGE.2012_AMD1 ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません |
規則 21.14 | 必要 (Required) |
MISRA.MEMCMP.NTS.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない |
規則 21.15 | 必要 (Required) |
MISRA.STDLIB.INCOMPAT_ARGS.2012_AMD1 memcpy、memmove、または memcmp へのポインター引数は互換性のある型へのポインターではありません |
規則 21.16 | 必要 (Required) |
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES 標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、本質的に符号付きの型、本質的に符号なしの型、本質的にブール型、または本質的に列挙型のどれかです |
規則 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 型を指すポインターを持つかのように使用しなければなりません MISRA.STDLIB.RET.NONCONST_PTR.LOCAL 標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります |
規則 21.20 | 必須 (Mandatory) |
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1 標準ライブラリ関数 asctime または同様の関数によって返されるポインターは、同じ関数の後続の呼び出しに続いては使用しません |
規則 21.21 | 必要 (Required) |
MISRA.STDLIB.SYSTEM.2012_AMD2 ライブラリ stdlib.h の 'system' の使用 |
規則 22.1 | 必要 (Required) |
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) |
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 マクロ EOF は、EOF を返すことができる標準ライブラリ関数からの未変更の戻り値とのみ比較されなければなりません |
規則 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:2025 C99
ガイドライン | カテゴリー | チェッカー名と説明 |
---|---|---|
指示 1.1 | 必要 (Required) | |
指示 1.2 | 推奨 (Advisory) |
MISRA.LANG.EXTENSIONS 言語拡張は使用してはならない |
指示 2.1 | 必要 (Required) | |
指示 3.1 | 必要 (Required) | |
指示 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.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 初期化されていない変数 |
指示 4.2 | 推奨 (Advisory) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
指示 4.3 | 必要 (Required) |
MISRA.ASM.ENCAPS アセンブリ言語が分離されていません |
指示 4.4 | 推奨 (Advisory) |
MISRA.TOKEN.COMMENTED.CODE コメントにはコメントアウトされたソースコードが含まれているようです |
指示 4.5 | 推奨 (Advisory) | |
指示 4.6 | 推奨 (Advisory) |
MISRA.BUILTIN_NUMERIC 組み込み数値型が使用されています |
指示 4.7 | 必要 (Required) |
SV.RVT.RETVAL_NOTTESTED 戻り値の無視 |
指示 4.8 | 推奨 (Advisory) |
MISRA.STRUCT_DEF.HIDDEN.2012 構造体または和集合へのポインターが変換単位内で逆参照されない場合は、オブジェクトの実装を非表示にする必要があります |
指示 4.9 | 推奨 (Advisory) |
MISRA.DEFINE.FUNC マクロが関数のように定義されています |
指示 4.10 | 必要 (Required) |
MISRA.INCGUARD インクルードガードが入力されていません |
指示 4.11 | 必要 (Required) | |
指示 4.12 | 必要 (Required) | |
指示 4.13 | 推奨 (Advisory) | |
指示 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 セキュリティ決定 |
指示 4.15 | 必要 (Required) | |
規則 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 名前のない不完全な和集合型が使用されています |
規則 2.1 | 必要 (Required) |
UNREACH.ENUM 列挙型の値があり得るため、コードは到達不能です UNREACH.GEN 到達不能コード UNREACH.RETURN 到達不能 void 戻り値 |
規則 2.2 | 必要 (Required) |
EFFECT ステートメントの影響はありません LV_UNUSED.GEN ローカル変数が使用されていません VA_UNUSED.GEN 割り当て後、値は使用されません VA_UNUSED.INIT 初期化後、値は使用されません |
規則 2.3 | 推奨 (Advisory) |
MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めないでください MISRA.UNUSED.LOCAL_TYPE プロジェクトには未使用の型宣言を含めないでください |
規則 2.4 | 推奨 (Advisory) |
MISRA.UNUSED.ENUM_TAG プロジェクトには未使用のタグ宣言を含めないでください MISRA.UNUSED.GLOBAL_TYPE プロジェクトには未使用の型宣言またはタグ宣言を含めないでください |
規則 2.5 | 推奨 (Advisory) |
MISRA.UNUSED_MACRO.2012 プロジェクトには未使用のマクロ宣言を含めないでください |
規則 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 トライグラフの使用 |
規則 5.1 | 必要 (Required) |
MISRA.EXT.IDENT.DISTINCT.2012.C99 外部識別子は、実装によって指定された制限内で一意である必要があります。 |
規則 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) |
MISRA.MACRO.IDENT.DISTINCT.C99.2012 識別子は最初の 63 文字以内でマクロ名と区別されなければなりません |
規則 5.6 | 必要 (Required) |
MISRA.TYPEDEF.NOT_UNIQUE.2012 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 内部リンクを持つオブジェクトまたは関数を定義する識別子は一意でなければなりません。 |
規則 5.10 | 必要 (Required) |
MISRA.STDLIB.WRONGNAME 標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています MISRA.STDLIB.WRONGNAME.UNDERSCORE 予約名が言語エンティティの名前に使用されています |
規則 6.1 | 必要 (Required) |
MISRA.BITFIELD.TYPE.2012 ビットフィールドの型が bool でもなく、符号付き/符号なし整数でもありません |
規則 6.2 | 必要 (Required) |
MISRA.BITFIELD.SIGNED 名前のある符号付きビットフィールドの長さが 2 未満です |
規則 6.3 | 必要 (Required) |
MISRA.BITFIELD.UNION 和集合にビットフィールドがメンバーとして含まれています |
規則 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 へのポインターでない限り、文字列リテラルはオブジェクトに割り当てないでください |
規則 7.5 | 必須 (Mandatory) |
MISRA.INTEGER_CONSTANT.MACRO.FLOAT_VALUE 整数定数マクロの引数は、浮動小数点数であってはなりません MISRA.INTEGER_CONSTANT.MACRO.RANGE 整数定数マクロの引数は、範囲内でなければなりません MISRA.INTEGER_CONSTANT.MACRO.SUFFIX 整数定数マクロの引数は、接尾辞が付かない整数定数でなければなりません |
規則 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) |
MISRA.DECL.FUNC.NAME.QUAL.2012 オブジェクトまたは関数のすべての宣言は、同じ名前と型の修飾子を使用します MISRA.FUNC.PARAMS.IDENT 関数の宣言と定義の識別子が一致していません MISRA.OBJ.FUNC.PARAMS.IDENT オブジェクトまたは関数のすべての宣言は、同じ名前と型の修飾子を使用します |
規則 8.4 | 必要 (Required) |
MISRA.FUNC.NOPROT.DEF.2012 関数は定義されていますが、プロトタイプがありません |
規則 8.5 | 必要 (Required) |
MISRA.DECL.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の宣言は、1 つの場所にのみ存在する必要があります。 |
規則 8.6 | 必要 (Required) |
MISRA.DEFINE.EXTERNAL.MULTIPLE 外部リンクを持つオブジェクトまたは関数の定義は、1 つの場所にのみ存在する必要があります。 |
規則 8.7 | 推奨 (Advisory) |
MISRA.EXT.LINKAGE.REDUNDANT.2012 関数とオブジェクトが 1 つの変換単位のみで参照される場合は外部リンケージで定義しない |
規則 8.8 | 必要 (Required) |
MISRA.FUNC.STATIC.REDECL 関数またはオブジェクトの再宣言に 'static' 修飾子がありません |
規則 8.9 | 推奨 (Advisory) |
CXX.ID_VIS.GLOBAL_VARIABLE.EXTERN extern グローバル変数の可視性が広すぎる CXX.ID_VIS.GLOBAL_VARIABLE.STATIC static グローバル変数の可視性が広すぎる |
規則 8.10 | 必要 (Required) |
MISRA.DECL.FUNC.INLINE.STATIC.2012 静的ストレージクラスなしのインライン関数の宣言 |
規則 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 | 必要 (Required) |
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 |
MISRA.CAST.OBJ_PTR_TO_NON_INT.2012 オブジェクトへのポインターと非整数算術型の間のキャストです |
|
規則 11.8 | 必要 (Required) |
MISRA.CAST.CONST キャスト演算により定数または可変修飾子がポインターまたは参照から除外されます |
規則 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) |
MISRA.INIT.SIDE_EFFECT 初期化子リスト値には、永続的な副作用が含まれます |
規則 13.2 | 必要 (Required) |
PORTING.VAR.EFFECTS 1 回の使用が副次的な影響を受けるひとつの式で、変数が 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 | 必要 (Required) |
MISRA.SIZEOF.SIDE_EFFECT sizeof のオペランドに副作用があります |
規則 14.1 | 必要 (Required) |
MISRA.FOR.COUNTER.FLT for ループのカウンターが浮動小数点型です |
規則 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 ループの最初の節は空にするか、ループカウンターに値を代入します |
規則 14.3 | 必要 (Required) |
INVARIANT_CONDITION.GEN 不変条件式 |
規則 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 | 適用不要 (Disapplied) |
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 各 switch 節は条件なし break ステートメントで終了する必要があります。 |
規則 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 | 必要 (Required) |
MISRA.ARRAY.ARG_SIZE 配列引数は適切なサイズでなければなりません MISRA.ARRAY.ARG_SIZE.MIGHT 配列引数は適切なサイズでなければなりません |
規則 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 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 undef が使用されています |
規則 20.6 | 必要 (Required) |
MISRA.EXPANSION.DIRECTIVE マクロの引数内にディレクティブのようなトークンがあります |
規則 20.7 | 必要 (Required) |
MISRA.MACRO_ARG.EXPRESSION.2012 マクロパラメーターを展開した後の式は括弧で囲む必要があります |
規則 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 |
規則 20.15 | 必要 (Required) |
MISRA.DEFINE.WRONGNAME 標準ライブラリからの名前がマクロ名に使用されています MISRA.DEFINE.WRONGNAME.UNDERSCORE 予約名がマクロ名に使用されています MISRA.UNDEF.WRONGNAME 標準ライブラリからの名前が定義されていません MISRA.UNDEF.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_AMD2 ライブラリ stdlib.h の 'abort'、'exit'、'quick_exit' または '_Exit' の使用 |
規則 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 | 推奨 (Advisory) |
MISRA.INCL.TGMATH.2012 標準ヘッダーファイル tgmath.h は使用しない |
規則 21.12 | 必要 (Required) |
MISRA.STDLIB.FENV.2012 fenv.h からの浮動小数点の例外機能が使用されています MISRA.STDLIB.FENV.MACRO.2012 fenv.h からの浮動小数点の例外機能が使用されています |
規則 21.13 | 必須 (Mandatory) |
MISRA.STDLIB.CTYPE.ARG_VAL <ctype.h> で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません MISRA.STDLIB.CTYPE.RANGE.2012_AMD1 ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません |
規則 21.14 | 必要 (Required) |
MISRA.MEMCMP.NTS.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない MISRA.MEMCMP.NTS.GLOBAL.2012_AMD1 memcmp 関数は、null 以外で終わる文字列を比較するためにのみ使用しなければならない |
規則 21.15 | 必要 (Required) |
MISRA.STDLIB.INCOMPAT_ARGS.2012_AMD1 memcpy、memmove、または memcmp へのポインター引数は互換性のある型へのポインターではありません |
規則 21.16 | 必要 (Required) |
MISRA.STDLIB.MEMCMP.PTR_ARG_TYPES 標準ライブラリ関数 memcmp へのポインター引数は、ポインター型、本質的に符号付きの型、本質的に符号なしの型、本質的にブール型、または本質的に列挙型のどれかです |
規則 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 型を指すポインターを持つかのように使用しなければなりません MISRA.STDLIB.RET.NONCONST_PTR.LOCAL 標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります |
規則 21.20 | 必須 (Mandatory) |
MISRA.STDLIB.ILLEGAL_REUSE.2012_AMD1 標準ライブラリ関数 asctime または同様の関数によって返されるポインターは、同じ関数の後続の呼び出しに続いては使用しません |
規則 21.21 | 必要 (Required) |
MISRA.STDLIB.SYSTEM.2012_AMD2 ライブラリ stdlib.h の 'system' の使用 |
規則 22.1 | 必要 (Required) |
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) |
MISRA.STDLIB.EOF.BAD_CMP.2012_AMD1 マクロ EOF は、EOF を返すことができる標準ライブラリ関数からの未変更の戻り値とのみ比較されなければなりません |
規則 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"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。