MISRA C:2012 (改訂 1) チェッカーリファレンス - 認証対象

MISRA C:2012 (改訂 1) チェッカーリファレンス - 認証対象
このトピックの内容:

これらのチェッカーでは、MISRA C:2012 規格の違反を検出します。

注記

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