EN JP CN

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

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

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

注意

  • これらのチェッカーを使用するには、https://support.roguewave.com/downloads/ からダウンロードする必要があります。MISRA チェッカーを有効にする方法については、ダウンロードに含まれている readme ファイルを参照してください。
  • MISRA 規格の違反を検出するいくつかのデフォルトのチェッカーもあります。Klocwork チェッカーにマッピングされた MISRA-C 2012 規則 でリストされます。
  • オンライン ドキュメンテーションの MISRA チェッカーに関する情報は、最新のサービス リリースとパッチを反映しています。

MISRA-C 2012 C90

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

EFFECT

ステートメントの影響はありません2.29.2 以前 

FMM.MIGHT

不一致メモリの解放 - 可能性あり22.29.2 以前10.1

FMM.MUST

不一致メモリの解放22.29.2 以前10.1

FNH.MIGHT

非ヒープメモリの解放の可能性があります22.29.2 以前 

FNH.MUST

非ヒープメモリの解放22.29.2 以前 

FREE.INCONSISTENT

メモリの解放が矛盾しています22.19.2 以前 

FUM.GEN.MIGHT

未割り当てメモリの解放の可能性があります22.29.2 以前 

FUM.GEN.MUST

未割り当てメモリの解放22.29.2 以前 

FUNCRET.GEN

非 void 関数によって値が返されません17.49.2 以前 

FUNCRET.IMPLICIT

暗黙的に int を返す非 void 関数によって値が返されません17.49.2 以前 

INVARIANT_CONDITION.GEN

不変条件式14.310.110.2

INVARIANT_CONDITION.UNREACH

不変条件式14.310.110.2

LA_UNUSED

未使用のラベル2.69.2 以前 

LOCRET.ARG

関数によってローカル変数のアドレスが返されました18.69.2 以前9.5

LOCRET.GLOB

関数によってローカル変数のアドレスが返されました18.69.2 以前9.5

LOCRET.RET

関数によってローカル変数のアドレスが返されました18.69.2 以前9.5

LV_UNUSED.GEN

ローカル変数は使用されません2.29.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

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.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.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

式内の演算子の優先度は明示的にする必要があります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.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.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.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.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ステートメントの制御式と反復ステートメントの制御式は、必ずブール型にするべきです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.TYPEDEF.NOT_UNIQUE

typedef 名が他のエンティティで使用されています5.69.19.2、9.5

MISRA.UNDEF

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.19.2 以前9.2、9.5

MLK.MUST

メモリ リーク22.19.2 以前9.2、9.5、11.1

MLK.RET.MIGHT

メモリ リークの可能性があります22.19.6 

MLK.RET.MUST

メモリ リーク22.19.6 

PORTING.VAR.EFFECTS

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

RH.LEAK

リソース リーク22.19.2 以前9.5、11.1

UNINIT.HEAP.MIGHT

初期化されていないヒープの使用 - 可能性あり9.19.2 以前9.2、9.5

UNINIT.HEAP.MUST

初期化されていないヒープの使用9.19.2 以前9.2、9.5

UNINIT.STACK.ARRAY.MIGHT

初期化されていない配列 - 可能性あり9.19.2 以前9.2、9.5

UNINIT.STACK.ARRAY.MUST

初期化されていない配列9.19.2 以前9.2、9.5

UNINIT.STACK.ARRAY.PARTIAL.MUST

一部が初期化されていない配列9.19.2 以前9.2、9.5

UNINIT.STACK.MIGHT

初期化されていない変数 - 可能性あり9.19.2 以前9.2、9.5

UNINIT.STACK.MUST

初期化されていない変数9.19.2 以前9.2、9.5、11.2

UNREACH.GEN

到達不能コード2.19.2 以前9.2、9.5、10.1、10.3、10.4、11.2

UNREACH.RETURN

到達不能 void 戻り値2.19.2 以前9.2、9.5、11.2

VA_UNUSED.GEN

割り当て後、値は使用されません2.29.2 以前9.5

VA_UNUSED.INIT

初期化後、値は使用されません2.29.2 以前9.5、11.2

MISRA-C 2012 C99

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

EFFECT

ステートメントの影響はありません2.29.2 以前 

FMM.MIGHT

不一致メモリの解放 - 可能性あり22.29.2 以前10.1

FMM.MUST

不一致メモリの解放22.29.2 以前10.1

FNH.MIGHT

非ヒープメモリの解放の可能性があります22.29.2 以前 

FNH.MUST

非ヒープメモリの解放22.29.2 以前 

FREE.INCONSISTENT

メモリの解放が矛盾しています22.19.2 以前 

FUM.GEN.MIGHT

未割り当てメモリの解放の可能性があります22.29.2 以前 

FUM.GEN.MUST

未割り当てメモリの解放22.29.2 以前 

FUNCRET.GEN

非 void 関数によって値が返されません17.49.2 以前 

FUNCRET.IMPLICIT

暗黙的に int を返す非 void 関数によって値が返されません17.49.2 以前 

INVARIANT_CONDITION.GEN

不変条件式14.310.110.2

INVARIANT_CONDITION.UNREACH

不変条件式14.310.110.2

LA_UNUSED

未使用のラベル2.69.2 以前 

LOCRET.ARG

関数によってローカル変数のアドレスが返されました18.69.2 以前9.5

LOCRET.GLOB

関数によってローカル変数のアドレスが返されました18.69.2 以前9.5

LOCRET.RET

関数によってローカル変数のアドレスが返されました18.69.2 以前9.5

LV_UNUSED.GEN

ローカル変数は使用されません2.29.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

静的ストレージクラスなしのインライン関数の宣言8.1010.210.4

MISRA.DEFINE.FUNC

マクロが関数のように定義されていますDir.4.99.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.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

式内の演算子の優先度は明示的にする必要があります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

関数が呼び出されていますが、プロトタイプがありません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.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

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.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.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ステートメントの制御式と反復ステートメントの制御式は、必ずブール型にするべきです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.TYPEDEF.NOT_UNIQUE

typedef 名が他のエンティティで使用されています5.69.19.2、9.5

MISRA.TYPE.RESTRICT.QUAL.2012

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

MISRA.UNDEF

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.19.2 以前9.2、9.5

MLK.MUST

メモリ リーク22.19.2 以前9.2、9.5、11.1

MLK.RET.MIGHT

メモリ リークの可能性があります22.19.6 

MLK.RET.MUST

メモリ リーク22.19.6 

PORTING.VAR.EFFECTS

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

RH.LEAK

リソース リーク22.19.2 以前9.5、11.1

UNINIT.HEAP.MIGHT

初期化されていないヒープの使用 - 可能性あり9.19.2 以前9.2、9.5

UNINIT.HEAP.MUST

初期化されていないヒープの使用9.19.2 以前9.2、9.5

UNINIT.STACK.ARRAY.MIGHT

初期化されていない配列 - 可能性あり9.19.2 以前9.2、9.5

UNINIT.STACK.ARRAY.MUST

初期化されていない配列9.19.2 以前9.2、9.5

UNINIT.STACK.ARRAY.PARTIAL.MUST

一部が初期化されていない配列9.19.2 以前9.2、9.5

UNINIT.STACK.MIGHT

初期化されていない変数 - 可能性あり9.19.2 以前9.2、9.5

UNINIT.STACK.MUST

初期化されていない変数9.19.2 以前9.2、9.5、11.2

UNREACH.GEN

到達不能コード2.19.2 以前9.2、9.5、10.1、10.3、10.4、11.2

UNREACH.RETURN

到達不能 void 戻り値2.19.2 以前9.2、9.5、11.2

VA_UNUSED.GEN

割り当て後、値は使用されません2.29.2 以前9.5

VA_UNUSED.INIT

初期化後、値は使用されません2.29.2 以前9.5、11.2