EN JP CN

MISRA-C 2012 チェッカー リファレンス

MISRA-C 2012 チェッカー リファレンス
このトピックの内容:

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

注意

MISRA-C 2012 C90

指摘コード説明MISRA-C 規則導入 改善

EFFECT

ステートメントの影響はありません2.2Pre-9.2 

FMM.MIGHT

メモリの解放の不一致の可能性22.2Pre-9.210.1

FMM.MUST

メモリの解放の不一致22.2Pre-9.210.1

FNH.MIGHT

非ヒープメモリの解放の可能性22.2Pre-9.2 

FNH.MUST

非ヒープメモリの解放22.2Pre-9.2 

FREE.INCONSISTENT

メモリの解放が矛盾しています22.1Pre-9.2 

FUM.GEN.MIGHT

未割り当てメモリの解放の可能性22.2Pre-9.2 

FUM.GEN.MUST

未割り当てメモリの解放22.2Pre-9.2 

FUNCRET.GEN

非 void 関数に戻り値がありません17.4Pre-9.2 

FUNCRET.IMPLICIT

暗黙的に int を返す非 void 関数に戻り値がありません17.4Pre-9.2 

INVARIANT_CONDITION.GEN

不変な条件式14.310.110.2

INVARIANT_CONDITION.UNREACH

不変な条件式14.310.110.2

LA_UNUSED

ラベルが使用されていません2.6Pre-9.2 

LOCRET.ARG

関数がローカル変数のアドレスを返しています18.6Pre-9.29.5

LOCRET.GLOB

関数がローカル変数のアドレスを返しています18.6Pre-9.29.5

LOCRET.RET

関数がローカル変数のアドレスを返しています18.6Pre-9.29.5

LV_UNUSED.GEN

ローカル変数は使用されません2.2Pre-9.2 

MISRA.ASM.ENCAPS

アセンブリ言語が分離されていませんDir. 4.39.1 

MISRA.ASSIGN.OVERLAP

オブジェクトがオーバーラップするオブジェクトに割り当てられています19.19.5 

MISRA.ASSIGN.SUBEXPR.2012

代入演算子の結果が使用されます13.411.3 

MISRA.BITFIELD.SIGNED

名前付きの符号付きビットフィールドの長さが 2 未満です6.29.19.2, 10.4

MISRA.BITFIELD.TYPE

ビットフィールドのタイプは、符号付き/符号なし整数のいずれでもありません6.19.19.2, 11.0

MISRA.BREAK_OR_GOTO.MULTIPLE.2012

反復ステートメントに複数の break または for ループ終端への複数の goto があります15.410.2 

MISRA.BUILTIN_NUMERIC

組み込み数値型が使用されていますDir. 4.69.19.2, 9.2 SR1, 9.5

MISRA.CAST.CONST

キャスト演算により const または volatile がポインターまたは参照から除外されます。11.89.19.2, 10.4

MISRA.CAST.FUNC_PTR.2012

関数を指すポインタと、別の非互換タイプとの間で実行された変換11.110.210.3

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012

不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換11.210.210.3

MISRA.CAST.OBJ_PTR_TO_INT.2012

オブジェクトを指すポインタと、整数タイプとの間で実行された変換11.410.210.3

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012

オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト11.710.2 

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012

オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト11.310.210.3, 2017

MISRA.CAST.VOID_PTR_TO_INT.2012

void を指すポインタと算術演算タイプとの間のキャスト11.610.2 

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012

void ポインタから、オブジェクトを指すポインタに実行された変換11.510.210.3

MISRA.CHAR.TRIGRAPH

3 文字表記の使用4.29.19.2

MISRA.COMMA

カンマ演算子が使用されています12.39.1 

MISRA.COMP.WRAPAROUND

条件内でラップアラウンドしています12.49.29.5

MISRA.CT.UNIQUE.ID

識別子がタイプ名と不整合です5.79.19.2, 9.2 SR1

MISRA.DECL.ARRAY_SIZE

配列の宣言でサイズが不明です8.119.1 

MISRA.DECL.NO_TYPE

宣言から型が抜けています8.19.19.2 SR1

MISRA.DEFINE.FUNC

マクロが関数のように定義されていますDir. 4.99.1 

MISRA.DEFINE.NOT_DISTINCT.C90.2012

識別子名が長すぎます5.42017.1 

MISRA.DEFINE.SHARP

マクロ定義に # 演算子または ## 演算子が使用されています20.109.1 

MISRA.DEFINE.SHARP.ORDER.2012

複数の '#' または '##' の評価の順番が指定されていません20.1111.3 

MISRA.DEFINE.SHARP.REPLACE.2012

それ自身さらなるマクロ置換の影響を受ける、'#' または '##' 演算子のオペランドとして使用されるマクロパラメーターは、これらの演算子のオペランドとしてのみ使用される。20.1211.3 

MISRA.DEFINE.WRONGNAME

標準ライブラリからの名前がマクロ名に使用されています21.19.19.2 SR2, 9.5

MISRA.DEFINE.WRONGNAME.UNDERSCORE

予約名がマクロ名に使用されています21.19.2 SR2 

MISRA.ELIF.COND.NOT_BOOL.2012

#elif 条件が 0 または 1 ではありません20.82017.2 

MISRA.ELIF.OTHERFILE

不適切なファイルでの #elif20.149.1 

MISRA.ELIF.UNDEF

#elif ディレクティブでマクロが定義されていません20.99.1 

MISRA.ELSE.OTHERFILE

不適切なファイルでの #else20.149.1 

MISRA.ENDIF.OTHERFILE

不適切なファイルでの #endif20.149.1 

MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012

暗黙的列挙子値は一意ではありません8.1210.2 

MISRA.ETYPE.ASSIGN.2012

より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て10.310.210.3, 11.0

MISRA.ETYPE.CATEGORY.DIFFERENT.2012

通常の算術演算変換が実行される演算子のオペランドに、同じ基本タイプカテゴリーがありません。10.410.211.3

MISRA.ETYPE.COMP.ASSIGN.2012

複合式の値は、より広い基本タイプを持つオブジェクトに割り当てられました。10.610.210.3

MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012

複合式の値は、異なる基本タイプカテゴリーへのキャストです10.810.2 

MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012

複合式の値は、より広い基本タイプへのキャストです10.810.2 

MISRA.ETYPE.COMP.CAST.IMPL.WIDER.2012

通常の算術演算変換が実行される演算子のオペランドとして使用される複合式には、より広い基本タイプを持つ他のオペランドがあります。10.710.2 

MISRA.ETYPE.INAPPR.CAST.2012

式の値は、不適切な基本タイプへのキャストです10.510.2 

MISRA.ETYPE.INAPPR.CHAR.2012

加算または減算演算で、基本的な文字タイプの不適切な使用法。10.210.2 

MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012

バイナリ演算子へのオペランドには、不適切な基本タイプがあります10.110.2 

MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012

インデックス式に、不適切な基本タイプがあります10.110.2 

MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012

三項演算子への最初のオペランドには、不適切な基本タイプがあります10.110.2 

MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012

単項演算子へのオペランドには、不適切な基本タイプがあります10.110.2 

MISRA.EXPANSION.DIRECTIVE

マクロの引数内にディレクティブのようなトークンがあります20.69.1 

MISRA.EXPR.PARENS.2012

式内の演算子の優先度は明示的にする必要があります。12.110.3 

MISRA.EXPR.PARENS.SIZEOF.2012

sizeof 演算子のオペランドは括弧に入れる必要があります。12.110.3 

MISRA.FILE_PTR.DEREF.2012

FILE オブジェクトへのポインターは逆参照してはなりません22.511.1 

MISRA.FILE_PTR.DEREF.CAST.2012

オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。22.511.1 

MISRA.FILE_PTR.DEREF.INDIRECT.2012

FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません22.511.1 

MISRA.FILE_PTR.DEREF.RETURN.2012

FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません22.511.1 

MISRA.FOR.COUNTER.FLT

for ループのカウンターが浮動小数点タイプです14.19.2 

MISRA.FUNC.MODIFIEDPAR.2012

関数パラメーターは変更してはなりません17.82017 

MISRA.FUNC.NOPROT.CALL

関数が呼び出されていますが、プロトタイプがありません17.3 8.29.29.2 SR1

MISRA.FUNC.NOPROT.DEF.2012

関数は定義されていますが、プロトタイプがありません8.42017 

MISRA.FUNC.NO_PARAMS

パラメーターのない関数に void パラメータータイプがありません8.29.1 

MISRA.FUNC.PROT_FORM.KR.2012

関数タイプはプロトタイプ形式です8.210.2 

MISRA.FUNC.RECUR

再帰関数17.29.19.2, 9.2 SR1

MISRA.FUNC.STATIC.REDECL

関数またはオブジェクトの再宣言に 'static' 修飾子がありません8.89.2 

MISRA.FUNC.UNMATCHED.PARAMS

関数に渡される仮引数と実際のパラメーターの数が一致しません17.3 8.29.1 

MISRA.FUNC.UNNAMED.PARAMS

関数の宣言に名前のないパラメーターがあります8.29.1 

MISRA.FUNC.UNUSEDPAR.2012

関数に未使用のパラメーターがあります2.711.3 

MISRA.FUNC.UNUSEDRET.2012

非 void 関数の戻り値を使用してください17.711.1 

MISRA.FUNC.VARARG

関数が可変数の引数を持っています17.19.1 

MISRA.GOTO

goto ステートメントが使用されています15.19.1 

MISRA.GOTO.AFTER_LABEL.2012

Goto は、同じ関数で前に宣言されたラベルにジャンプします。15.210.2 

MISRA.GOTO.NESTED.2012

goto に参照されたラベルは、このブロック、または、それを囲むブロックの中にありません。15.310.2 

MISRA.IDENT.DISTINCT.C90.2012

同一のスコープまたは同一の名前空間で宣言された識別子が区別されていません5.211.2 

MISRA.IF.COND.NOT_BOOL.2012

#if 条件が 0 または 1 ではありません20.82017.2 

MISRA.IF.NO_COMPOUND

if/else ステートメントのボディが複合ステートメントではありません15.69.1 

MISRA.IF.NO_ELSE

if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています15.79.110.4

MISRA.IF.UNDEF

#if ディレクティブでマクロが定義されていません20.99.1 

MISRA.INCGUARD

インクルードガードが入力されていませんDir. 4.109.1 

MISRA.INCL.BAD

非標準の include ディレクティブです20.39.19.2, 11.1

MISRA.INCL.INSIDE

include ディレクティブの前にプリプロセッサ出力トークンがあります20.19.1 

MISRA.INCL.SIGNAL.2012

標準ヘッダーファイル signal.h は使用しない21.511.3 

MISRA.INCL.STDIO.2012

標準ヘッダーファイル stdio.h は使用しない21.611.3 

MISRA.INCL.SYMS

ヘッダーファイル名に非標準文字が使用されています20.29.1 

MISRA.INCL.TIME.2012

標準ヘッダーファイル time.h は使用しない21.1011.3 

MISRA.INCR_DECR.SIDEEFF.2012

インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません13.32017 

MISRA.INIT.BRACES.2012

集計または共用体の初期化子が波括弧で囲まれていません9.210.3 

MISRA.INIT.PARTIAL.2012

配列が部分的に初期化されています9.310.3 

MISRA.LITERAL.NULL.PTR.CONST.2012

マクロ NULL は、唯一許可された整数 null ポインター定数のフォームです。11.911.22017.2

MISRA.LITERAL.UNSIGNED.SUFFIX

'U' 添え字の付かない符号なし整数リテラルです7.29.19.5

MISRA.LOGIC.SIDEEFF

論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります13.59.210.4

MISRA.MEMB.FLEX_ARRAY.2012

柔軟な配列メンバーは宣言しないでください18.711.2 

MISRA.PPARAM.NEEDS.CONST

ポインタパラメーターを使用しないでアドレスされたオブジェクトを変更していますが、const を指すポインタとして宣言されていません8.139.19.2 SR1, 9.5, 10.4

MISRA.PTR.ARITH.2012

演算式にポインターが使用されています18.42017 

MISRA.PTR.TO_PTR_TO_PTR

ポインタ宣言に 2 つ以上のレベルの間接指定があります18.59.19.2

MISRA.RESOURCES.FILE.READ_ONLY_WRITE.2012

読み取り専用として開かれたストリームに書き込んではなりません22.42017.1 

MISRA.RESOURCES.FILE.USE_AFTER_CLOSE.2012

FILE を指し示すポインターの値は、関連するストリームが閉じられたあとは使用しないでください22.62017 

MISRA.RETURN.NOT_LAST

関数内で return が最後のステートメントになっていません15.59.19.2 SR2, 9.5

MISRA.SHIFT.RANGE.2012

シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負12.210.2 

MISRA.SIZEOF.SIDE_EFFECT

sizeof のオペランドに副作用があります13.69.1 

MISRA.STDLIB.ABORT

ライブラリ stdlib.h から 'abort'、'exit'、'getenv' または 'system' が使用されています21.89.1 

MISRA.STDLIB.ATOI

ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています21.79.1 

MISRA.STDLIB.BSEARCH.2012

ライブラリ stdlib.h の 'bsearch' または 'qsort' が使用されています21.911.2 

MISRA.STDLIB.LONGJMP

setjmp マクロまたは longjmp 関数の使用21.49.1 

MISRA.STDLIB.MEMORY

動的ヒープメモリ割り当ての使用21.39.1 

MISRA.STDLIB.SIGNAL

signal.h の信号処理装置の使用21.59.1 

MISRA.STDLIB.STDIO

プロダクションコードで入力/出力ライブラリ stdio.h が使用されています21.69.1 

MISRA.STDLIB.TIME

ライブラリ time.h の時間処理関数の使用21.109.1 

MISRA.STDLIB.WRONGNAME

標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています21.29.19.2 SR2

MISRA.STDLIB.WRONGNAME.UNDERSCORE

予約名が言語エンティティの名前に使用されています21.29.2 SR2 

MISRA.STMT.COND.NOT_BOOLEAN.2012

'if' ステートメントまたは 'loop' ステートメントの制御式が 'Essentially Boolean' 型ではありません14.410.4 

MISRA.STMT.NO_COMPOUND

switch、while、do/while または for ステートメントのボディが複合ステートメントではありません15.69.1 

MISRA.STRING_LITERAL.NON_CONST.2012

オブジェクトの種類が const-qualified char のポインターでない限り、文字列リテラルはオブジェクトに割り当てられません7.410.4 

MISRA.SWITCH.COND.BOOL.2012

switch 文は基本的にブールデータ型を有しているべきではありません。16.710.3 

MISRA.SWITCH.WELL_FORMED.2012

すべての switch ステートメントは形式が適切である必要があります。16.110.3 

MISRA.SWITCH.WELL_FORMED.BREAK.2012

条件なしの break ステートメントで各 switch 句を終了するべきです。16.310.3 

MISRA.SWITCH.WELL_FORMED.DEFAULT.2012

各 switch ステートメントはデフォルトラベルを有するべきです。16.410.3 

MISRA.SWITCH.WELL_FORMED.DEFAULT.FIRST_OR_LAST.2012

デフォルトのラベルが switch ステートメントの最初または最後の switch ラベルのいずれかとして表示されるべきです。16.510.3 

MISRA.SWITCH.WELL_FORMED.NESTED_LABEL.2012

switch ラベルは、最も近くで囲い込む複合ステートメントが switch ステートメントの本文の場合にのみ使用されます。16.210.3 

MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012

各 switch ステートメントは少なくとも 2 つの switch 句を有するべきです。16.610.3 

MISRA.TOKEN.BADCOM

コメントに不適切な文字列があります3.19.1 

MISRA.TOKEN.L.SUFFIX.FLOAT

浮動小数点定数では、小文字 "l" 接尾辞を使用7.310.4 

MISRA.TOKEN.L.SUFFIX.INT

整数定数では、小文字 "l" 接尾辞を使用7.310.4 

MISRA.TOKEN.OCTAL.INT

8 進数の整数定数を使用しています7.19.1 

MISRA.TOKEN.UNTERMINATED.ESCAPE.2012

文字列リテラルに終端されていないエスケープシーケンスがあります4.12017.1 

MISRA.TYPEDEF.NOT_UNIQUE

Typedef 名がその他のエンティティ用に使用されています5.69.19.2, 9.5

MISRA.UNDEF

定義のない使用です20.59.1 

MISRA.UNDEF.WRONGNAME

標準ライブラリからの名前が定義されていません21.19.19.5

MISRA.UNDEF.WRONGNAME.UNDERSCORE

予約名が定義されていません21.19.2 SR2 

MISRA.UNION

和集合が使用されています19.29.1 

MISRA.USE.UNKNOWNDIR

不明なプリプロセッサディレクティブが使用されています20.139.111.3

MISRA.VAR.HIDDEN

内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています 5.39.29.2 SR1, 9.5, 10.1

MLK.MIGHT

メモリリークの可能性22.1Pre-9.29.2, 9.5

MLK.MUST

メモリリーク22.1Pre-9.29.2, 9.5, 11.1, 11.3

MLK.RET.MIGHT

メモリリークの可能性22.19.6 

MLK.RET.MUST

メモリリーク22.19.6 

PORTING.VAR.EFFECTS

ある使用法が副次的な影響を受ける式で変数が 2 回使用されています13.29.29.5

RH.LEAK

リソースリーク22.1Pre-9.29.5, 11.1

UNINIT.HEAP.MIGHT

未初期化のヒープの使用の可能性9.1Pre-9.29.2, 9.5

UNINIT.HEAP.MUST

未初期化のヒープの使用9.1Pre-9.29.2, 9.5

UNINIT.STACK.ARRAY.MIGHT

未初期化の配列の可能性9.1Pre-9.29.2, 9.5

UNINIT.STACK.ARRAY.MUST

未初期化の配列9.1Pre-9.29.2, 9.5

UNINIT.STACK.ARRAY.PARTIAL.MUST

一部が未初期化の配列9.1Pre-9.29.2, 9.5

UNINIT.STACK.MIGHT

未初期化の変数の可能性9.1Pre-9.29.2, 9.5

UNINIT.STACK.MUST

未初期化の変数9.1Pre-9.29.2, 9.5, 11.2

UNREACH.GEN

到達不能コード2.1Pre-9.29.2, 9.5, 10.1, 10.3, 10.4, 11.2

UNREACH.RETURN

到達不能な void return文2.1Pre-9.29.2, 9.5, 11.2

VA_UNUSED.GEN

値を割り当て後に使用しません2.2Pre-9.29.5

VA_UNUSED.INIT

値を初期化後に使用しません2.2Pre-9.29.5, 11.2

MISRA-C 2012 C99

指摘コード説明MISRA-C 規則導入 改善

EFFECT

ステートメントの影響はありません2.2Pre-9.2 

FMM.MIGHT

メモリの解放の不一致の可能性22.2Pre-9.210.1

FMM.MUST

メモリの解放の不一致22.2Pre-9.210.1

FNH.MIGHT

非ヒープメモリの解放の可能性22.2Pre-9.2 

FNH.MUST

非ヒープメモリの解放22.2Pre-9.2 

FREE.INCONSISTENT

メモリの解放が矛盾しています22.1Pre-9.2 

FUM.GEN.MIGHT

未割り当てメモリの解放の可能性22.2Pre-9.2 

FUM.GEN.MUST

未割り当てメモリの解放22.2Pre-9.2 

FUNCRET.GEN

非 void 関数に戻り値がありません17.4Pre-9.2 

FUNCRET.IMPLICIT

暗黙的に int を返す非 void 関数に戻り値がありません17.4Pre-9.2 

INVARIANT_CONDITION.GEN

不変な条件式14.310.110.2

INVARIANT_CONDITION.UNREACH

不変な条件式14.310.110.2

LA_UNUSED

ラベルが使用されていません2.6Pre-9.2 

LOCRET.ARG

関数がローカル変数のアドレスを返しています18.6Pre-9.29.5

LOCRET.GLOB

関数がローカル変数のアドレスを返しています18.6Pre-9.29.5

LOCRET.RET

関数がローカル変数のアドレスを返しています18.6Pre-9.29.5

LV_UNUSED.GEN

ローカル変数は使用されません2.2Pre-9.2 

MISRA.ARRAY.VAR_LENGTH.2012

変数の長さの配列種類は使用しないでください18.811.2 

MISRA.ASM.ENCAPS

アセンブリ言語が分離されていませんDir. 4.39.1 

MISRA.ASSIGN.OVERLAP

オブジェクトがオーバーラップするオブジェクトに割り当てられています19.19.5 

MISRA.ASSIGN.SUBEXPR.2012

代入演算子の結果が使用されます13.411.3 

MISRA.BITFIELD.SIGNED

名前付きの符号付きビットフィールドの長さが 2 未満です6.29.19.2, 10.4

MISRA.BITFIELD.TYPE

ビットフィールドのタイプは、符号付き/符号なし整数のいずれでもありません6.19.19.2, 11.0

MISRA.BREAK_OR_GOTO.MULTIPLE.2012

反復ステートメントに複数の break または for ループ終端への複数の goto があります15.410.2 

MISRA.BUILTIN_NUMERIC

組み込み数値型が使用されていますDir. 4.69.19.2, 9.2 SR1, 9.5

MISRA.CAST.CONST

キャスト演算により const または volatile がポインターまたは参照から除外されます。11.89.19.2, 10.4

MISRA.CAST.FUNC_PTR.2012

関数を指すポインタと、別の非互換タイプとの間で実行された変換11.110.210.3

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012

不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換11.210.210.3

MISRA.CAST.OBJ_PTR_TO_INT.2012

オブジェクトを指すポインタと、整数タイプとの間で実行された変換11.410.210.3

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012

オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト11.710.2 

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012

オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト11.310.210.3, 2017

MISRA.CAST.VOID_PTR_TO_INT.2012

void を指すポインタと算術演算タイプとの間のキャスト11.610.2 

MISRA.CAST.VOID_PTR_TO_OBJ_PTR.2012

void ポインタから、オブジェクトを指すポインタに実行された変換11.510.210.3

MISRA.CHAR.TRIGRAPH

3 文字表記の使用4.29.19.2

MISRA.COMMA

カンマ演算子が使用されています12.39.1 

MISRA.COMP.WRAPAROUND

条件内でラップアラウンドしています12.49.29.5

MISRA.CT.UNIQUE.ID

識別子がタイプ名と不整合です5.79.19.2, 9.2 SR1

MISRA.DECL.ARRAY_SIZE

配列の宣言でサイズが不明です8.119.1 

MISRA.DECL.FUNC.INLINE.STATIC.2012

静的ストレージクラス(static)が付与されていないインライン関数の宣言8.1010.210.4

MISRA.DEFINE.FUNC

マクロが関数のように定義されていますDir. 4.99.1 

MISRA.DEFINE.NOT_DISTINCT.C99.2012

識別子名が長すぎます5.42017.1 

MISRA.DEFINE.SHARP

マクロ定義に # 演算子または ## 演算子が使用されています20.109.1 

MISRA.DEFINE.SHARP.ORDER.2012

複数の '#' または '##' の評価の順番が指定されていません20.1111.3 

MISRA.DEFINE.SHARP.REPLACE.2012

それ自身さらなるマクロ置換の影響を受ける、'#' または '##' 演算子のオペランドとして使用されるマクロパラメーターは、これらの演算子のオペランドとしてのみ使用される。20.1211.3 

MISRA.DEFINE.STDIO.WCHAR.2012

不適切なマクロ展開です21.611.3 

MISRA.DEFINE.WCSFTIME.2012

'wcsftime' の名前を持つマクロは拡張しない21.1011.3 

MISRA.DEFINE.WRONGNAME

標準ライブラリからの名前がマクロ名に使用されています21.19.19.2 SR2, 9.5

MISRA.DEFINE.WRONGNAME.UNDERSCORE

予約名がマクロ名に使用されています21.19.2 SR2 

MISRA.ELIF.COND.NOT_BOOL.2012

#elif 条件が 0 または 1 ではありません20.82017.2 

MISRA.ELIF.OTHERFILE

不適切なファイルでの #elif20.149.1 

MISRA.ELIF.UNDEF

#elif ディレクティブでマクロが定義されていません20.99.1 

MISRA.ELSE.OTHERFILE

不適切なファイルでの #else20.149.1 

MISRA.ENDIF.OTHERFILE

不適切なファイルでの #endif20.149.1 

MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012

暗黙的列挙子値は一意ではありません8.1210.2 

MISRA.ETYPE.ASSIGN.2012

より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て10.310.210.3, 11.0

MISRA.ETYPE.CATEGORY.DIFFERENT.2012

通常の算術演算変換が実行される演算子のオペランドに、同じ基本タイプカテゴリーがありません。10.410.211.3

MISRA.ETYPE.COMP.ASSIGN.2012

複合式の値は、より広い基本タイプを持つオブジェクトに割り当てられました。10.610.210.3

MISRA.ETYPE.COMP.CAST.EXPL.DIFFERENT.2012

複合式の値は、異なる基本タイプカテゴリーへのキャストです10.810.2 

MISRA.ETYPE.COMP.CAST.EXPL.WIDER.2012

複合式の値は、より広い基本タイプへのキャストです10.810.2 

MISRA.ETYPE.COMP.CAST.IMPL.WIDER.2012

通常の算術演算変換が実行される演算子のオペランドとして使用される複合式には、より広い基本タイプを持つ他のオペランドがあります。10.710.2 

MISRA.ETYPE.INAPPR.CAST.2012

式の値は、不適切な基本タイプへのキャストです10.510.2 

MISRA.ETYPE.INAPPR.CHAR.2012

加算または減算演算で、基本的な文字タイプの不適切な使用法。10.210.2 

MISRA.ETYPE.INAPPR.OPERAND.BINOP.2012

バイナリ演算子へのオペランドには、不適切な基本タイプがあります10.110.2 

MISRA.ETYPE.INAPPR.OPERAND.INDEXPR.2012

インデックス式に、不適切な基本タイプがあります10.110.2 

MISRA.ETYPE.INAPPR.OPERAND.TERNOP.2012

三項演算子への最初のオペランドには、不適切な基本タイプがあります10.110.2 

MISRA.ETYPE.INAPPR.OPERAND.UNOP.2012

単項演算子へのオペランドには、不適切な基本タイプがあります10.110.2 

MISRA.EXPANSION.DIRECTIVE

マクロの引数内にディレクティブのようなトークンがあります20.69.1 

MISRA.EXPR.PARENS.2012

式内の演算子の優先度は明示的にする必要があります。12.110.3 

MISRA.EXPR.PARENS.SIZEOF.2012

sizeof 演算子のオペランドは括弧に入れる必要があります。12.110.3 

MISRA.FILE_PTR.DEREF.2012

FILE オブジェクトへのポインターは逆参照してはなりません22.511.1 

MISRA.FILE_PTR.DEREF.CAST.2012

オブジェクトは FILE ポインターにキャストされており、これを逆参照してはなりません。22.511.1 

MISRA.FILE_PTR.DEREF.INDIRECT.2012

FILE オブジェクトへのポインターは、システム関数で間接的に逆参照してはなりません22.511.1 

MISRA.FILE_PTR.DEREF.RETURN.2012

FILE オブジェクト(関数の戻り値)へのポインターは逆参照してはなりません22.511.1 

MISRA.FOR.COUNTER.FLT

for ループのカウンターが浮動小数点タイプです14.19.2 

MISRA.FUNC.ARRAY.PARAM.STATIC.2012

配列パラメーターの宣言には、[] の間に static キーワードは含まれません17.62017.1 

MISRA.FUNC.MODIFIEDPAR.2012

関数パラメーターは変更してはなりません17.82017 

MISRA.FUNC.NOPROT.CALL

関数が呼び出されていますが、プロトタイプがありません8.29.29.2 SR1

MISRA.FUNC.NOPROT.DEF.2012

関数は定義されていますが、プロトタイプがありません8.42017 

MISRA.FUNC.NO_PARAMS

パラメーターのない関数に void パラメータータイプがありません8.29.1 

MISRA.FUNC.PROT_FORM.KR.2012

関数タイプはプロトタイプ形式です8.210.2 

MISRA.FUNC.RECUR

再帰関数17.29.19.2, 9.2 SR1

MISRA.FUNC.STATIC.REDECL

関数またはオブジェクトの再宣言に 'static' 修飾子がありません8.89.2 

MISRA.FUNC.UNMATCHED.PARAMS

関数に渡される仮引数と実際のパラメーターの数が一致しません8.29.1 

MISRA.FUNC.UNNAMED.PARAMS

関数の宣言に名前のないパラメーターがあります8.29.1 

MISRA.FUNC.UNUSEDPAR.2012

関数に未使用のパラメーターがあります2.711.3 

MISRA.FUNC.UNUSEDRET.2012

非 void 関数の戻り値を使用してください17.711.1 

MISRA.FUNC.VARARG

関数が可変数の引数を持っています17.19.1 

MISRA.GOTO

goto ステートメントが使用されています15.19.1 

MISRA.GOTO.AFTER_LABEL.2012

Goto は、同じ関数で前に宣言されたラベルにジャンプします。15.210.2 

MISRA.GOTO.NESTED.2012

goto に参照されたラベルは、このブロック、または、それを囲むブロックの中にありません。15.310.2 

MISRA.IDENT.DISTINCT.C99.2012

同一のスコープまたは同一の名前空間で宣言された識別子が区別されていません5.211.2 

MISRA.IF.COND.NOT_BOOL.2012

#if 条件が 0 または 1 ではありません20.82017.2 

MISRA.IF.NO_COMPOUND

if/else ステートメントのボディが複合ステートメントではありません15.69.1 

MISRA.IF.NO_ELSE

if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています15.79.110.4

MISRA.IF.UNDEF

#if ディレクティブでマクロが定義されていません20.99.1 

MISRA.INCGUARD

インクルードガードが入力されていませんDir. 4.109.1 

MISRA.INCL.BAD

非標準の include ディレクティブです20.39.19.2, 11.1

MISRA.INCL.INSIDE

include ディレクティブの前にプリプロセッサ出力トークンがあります20.19.1 

MISRA.INCL.SIGNAL.2012

標準ヘッダーファイル signal.h は使用しない21.511.3 

MISRA.INCL.STDIO.2012

標準ヘッダーファイル stdio.h は使用しない21.611.3 

MISRA.INCL.SYMS

ヘッダーファイル名に非標準文字が使用されています20.29.1 

MISRA.INCL.TGMATH.2012

標準ヘッダーファイル tgmath.h は使用しない21.1111.3 

MISRA.INCL.TIME.2012

標準ヘッダーファイル time.h は使用しない21.1011.3 

MISRA.INCR_DECR.SIDEEFF.2012

インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません13.32017 

MISRA.INIT.BRACES.2012

集計または共用体の初期化子が波括弧で囲まれていません9.210.3 

MISRA.INIT.MULTIPLE.2012

オブジェクトの要素が複数回初期化されています9.410.3 

MISRA.INIT.PARTIAL.2012

配列が部分的に初期化されています9.310.3 

MISRA.INIT.SIZE.IMPLICIT.2012

指定された初期化子が、配列のサイズが明示的に指定されない場合に、配列オブジェクトを初期化するために使用されます9.510.3 

MISRA.LITERAL.NULL.PTR.CONST.2012

マクロ NULL は、唯一許可された整数 null ポインター定数のフォームです。11.911.22017.2

MISRA.LITERAL.UNSIGNED.SUFFIX

'U' 添え字の付かない符号なし整数リテラルです7.29.19.5

MISRA.LOGIC.SIDEEFF

論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります13.59.210.4

MISRA.MEMB.FLEX_ARRAY.2012

柔軟な配列メンバーは宣言しないでください18.711.2 

MISRA.PPARAM.NEEDS.CONST

ポインタパラメーターを使用しないでアドレスされたオブジェクトを変更していますが、const を指すポインタとして宣言されていません8.139.19.2 SR1, 9.5, 10.4

MISRA.PTR.ARITH.2012

演算式にポインターが使用されています18.42017 

MISRA.PTR.TO_PTR_TO_PTR

ポインタ宣言に 2 つ以上のレベルの間接指定があります18.59.19.2

MISRA.RESOURCES.FILE.READ_ONLY_WRITE.2012

読み取り専用として開かれたストリームに書き込んではなりません22.42017.1 

MISRA.RESOURCES.FILE.USE_AFTER_CLOSE.2012

FILE を指し示すポインターの値は、関連するストリームが閉じられたあとは使用しないでください22.62017 

MISRA.RETURN.NOT_LAST

関数内で return が最後のステートメントになっていません15.59.19.2 SR2, 9.5

MISRA.SHIFT.RANGE.2012

シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負12.210.2 

MISRA.SIZEOF.SIDE_EFFECT

sizeof のオペランドに副作用があります13.69.1 

MISRA.STDLIB.ABORT

ライブラリ stdlib.h から 'abort'、'exit'、'getenv' または 'system' が使用されています21.89.1 

MISRA.STDLIB.ATOI

ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています21.79.1 

MISRA.STDLIB.BSEARCH.2012

ライブラリ stdlib.h の 'bsearch' または 'qsort' が使用されています21.911.2 

MISRA.STDLIB.FENV.2012

fenv.h からの浮動小数点の例外機能機能が使用されています21.122017 

MISRA.STDLIB.FENV.MACRO.2012

fenv.h からの浮動小数点の例外機能機能が使用されています21.122017 

MISRA.STDLIB.LONGJMP

setjmp マクロまたは longjmp 関数の使用21.49.1 

MISRA.STDLIB.MEMORY

動的ヒープメモリ割り当ての使用21.39.1 

MISRA.STDLIB.SIGNAL

signal.h の信号処理装置の使用21.59.1 

MISRA.STDLIB.STDIO

プロダクションコードで入力/出力ライブラリ stdio.h が使用されています21.69.1 

MISRA.STDLIB.STDIO.WCHAR.2012

stdio.h からワイド文字と同等の識別子は使用しない21.611.3 

MISRA.STDLIB.TIME

ライブラリ time.h の時間処理関数の使用21.109.1 

MISRA.STDLIB.WCSFTIME.2012

識別子 'wcsftime' は使用しない21.1011.3 

MISRA.STDLIB.WRONGNAME

標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています21.29.19.2 SR2

MISRA.STDLIB.WRONGNAME.UNDERSCORE

予約名が言語エンティティの名前に使用されています21.29.2 SR2 

MISRA.STMT.COND.NOT_BOOLEAN.2012

'if' ステートメントまたは 'loop' ステートメントの制御式が 'Essentially Boolean' 型ではありません14.410.4 

MISRA.STMT.NO_COMPOUND

switch、while、do/while または for ステートメントのボディが複合ステートメントではありません15.69.1 

MISRA.STRING_LITERAL.NON_CONST.2012

オブジェクトの種類が const-qualified char のポインターでない限り、文字列リテラルはオブジェクトに割り当てられません7.410.4 

MISRA.SWITCH.COND.BOOL.2012

switch 文は基本的にブールデータ型を有しているべきではありません。16.710.3 

MISRA.SWITCH.WELL_FORMED.2012

すべての switch ステートメントは形式が適切である必要があります。16.110.3 

MISRA.SWITCH.WELL_FORMED.BREAK.2012

条件なしの break ステートメントで各 switch 句を終了するべきです。16.310.3 

MISRA.SWITCH.WELL_FORMED.DEFAULT.2012

各 switch ステートメントはデフォルトラベルを有するべきです。16.410.3 

MISRA.SWITCH.WELL_FORMED.DEFAULT.FIRST_OR_LAST.2012

デフォルトのラベルが switch ステートメントの最初または最後の switch ラベルのいずれかとして表示されるべきです。16.510.3 

MISRA.SWITCH.WELL_FORMED.NESTED_LABEL.2012

switch ラベルは、最も近くで囲い込む複合ステートメントが switch ステートメントの本文の場合にのみ使用されます。16.210.3 

MISRA.SWITCH.WELL_FORMED.TWO_CLAUSES.2012

各 switch ステートメントは少なくとも 2 つの switch 句を有するべきです。16.610.3 

MISRA.TOKEN.BADCOM

コメントに不適切な文字列があります3.19.1 

MISRA.TOKEN.L.SUFFIX.FLOAT

浮動小数点定数では、小文字 "l" 接尾辞を使用7.310.4 

MISRA.TOKEN.L.SUFFIX.INT

整数定数では、小文字 "l" 接尾辞を使用7.310.4 

MISRA.TOKEN.OCTAL.INT

8 進数の整数定数を使用しています7.19.1 

MISRA.TOKEN.UNTERMINATED.ESCAPE.2012

文字列リテラルに終端されていないエスケープシーケンスがあります4.12017.1 

MISRA.TYPE.RESTRICT.QUAL.2012

restrict 型修飾子は使用しない8.1411.3 

MISRA.TYPEDEF.NOT_UNIQUE

Typedef 名がその他のエンティティ用に使用されています5.69.19.2, 9.5

MISRA.UNDEF

定義のない使用です20.59.1 

MISRA.UNDEF.WRONGNAME

標準ライブラリからの名前が定義されていません21.19.19.5

MISRA.UNDEF.WRONGNAME.UNDERSCORE

予約名が定義されていません21.19.2 SR2 

MISRA.UNION

和集合が使用されています19.29.1 

MISRA.USE.UNKNOWNDIR

不明なプリプロセッサディレクティブが使用されています20.139.111.3

MISRA.VAR.HIDDEN

内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています 5.39.29.2 SR1, 9.5, 10.1

MLK.MIGHT

メモリリークの可能性22.1Pre-9.29.2, 9.5

MLK.MUST

メモリリーク22.1Pre-9.29.2, 9.5, 11.1, 11.3

MLK.RET.MIGHT

メモリリークの可能性22.19.6 

MLK.RET.MUST

メモリリーク22.19.6 

PORTING.VAR.EFFECTS

ある使用法が副次的な影響を受ける式で変数が 2 回使用されています13.29.29.5

RH.LEAK

リソースリーク22.1Pre-9.29.5, 11.1

UNINIT.HEAP.MIGHT

未初期化のヒープの使用の可能性9.1Pre-9.29.2, 9.5

UNINIT.HEAP.MUST

未初期化のヒープの使用9.1Pre-9.29.2, 9.5

UNINIT.STACK.ARRAY.MIGHT

未初期化の配列の可能性9.1Pre-9.29.2, 9.5

UNINIT.STACK.ARRAY.MUST

未初期化の配列9.1Pre-9.29.2, 9.5

UNINIT.STACK.ARRAY.PARTIAL.MUST

一部が未初期化の配列9.1Pre-9.29.2, 9.5

UNINIT.STACK.MIGHT

未初期化の変数の可能性9.1Pre-9.29.2, 9.5

UNINIT.STACK.MUST

未初期化の変数9.1Pre-9.29.2, 9.5, 11.2

UNREACH.GEN

到達不能コード2.1Pre-9.29.2, 9.5, 10.1, 10.3, 10.4, 11.2

UNREACH.RETURN

到達不能な void return文2.1Pre-9.29.2, 9.5, 11.2

VA_UNUSED.GEN

値を割り当て後に使用しません2.2Pre-9.29.5

VA_UNUSED.INIT

値を初期化後に使用しません2.2Pre-9.29.5, 11.2