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