Klocwork の認証対象チェッカーにマッピングされた MISRA C++:2008 規則

ガイドライン カテゴリ チェッカー名および説明
0-1-12 必要(Required)

MISRA.FUNC.VIRTUAL.UNUSEDPAR   仮想関数セットの仮引数が使用されていません

0-1-11 必要(Required)

MISRA.FUNC.UNUSEDPAR   非仮想関数の仮引数が使用されていません

MISRA.FUNC.UNUSEDPAR.UNNAMED   非仮想関数で名前のない仮引数が使用されていません

0-1-10 必要(Required)

UNUSED.FUNC.GEN   関数を定義していますが、使用していません

0-1-9 必要(Required)

VA_UNUSED.GEN   値を割り当て後に使用しません

VA_UNUSED.INIT   値を初期化後に使用しません

0-1-8 必要(Required)

0-1-7 必要(Required)

MISRA.FUNC.UNUSEDRET   非 void 関数の戻り値が使用されていません

0-1-6 必要(Required)

0-1-5 必要(Required)

0-1-4 必要(Required)

0-1-3 必要(Required)

LV_UNUSED.GEN   ローカル変数は使用されません

0-1-2 必要(Required)

CWARN.NOEFFECT.UCMP.GE   符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.GE.MACRO   マクロ内で符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.LT   符号なし値と 0 との比較は、常に false になります

CWARN.NOEFFECT.UCMP.LT.MACRO   マクロ内で符号なし値と 0 との比較は、常に false になります

0-1-1 必要(Required)

UNREACH.ENUM   enum が取りうる値が原因で、コードは到達不能になっています

UNREACH.GEN   到達不能コード

UNREACH.RETURN   到達不能な void return文

0-2-1 必要(Required)

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

0-3-2 必要(Required)

1-0-1 必要(Required)

2-3-1 必要(Required)

MISRA.CHAR.TRIGRAPH   3 文字表記の使用

2-5-1 推奨(Advisory)

MISRA.CHAR.DIGRAPH   2 文字表記の使用

2-7-3 推奨(Advisory)

2-7-2 必要(Required)

2-7-1 必要(Required)

MISRA.TOKEN.BADCOM   コメントに不適切な文字列があります

2-10-6 必要(Required)

MISRA.TYPE.NAMECLASH.CPP.2008   ある名前空間の識別子が他の名前空間の識別子と同じスペルです

2-10-5 推奨(Advisory)

MISRA.VAR.UNIQUE.STATIC   静的ストレージ指定の識別子がその他の識別子と不整合です

2-10-4 必要(Required)

MISRA.CT.UNIQUE.ID   識別子がタグ名と不整合です

2-10-3 必要(Required)

MISRA.TYPEDEF.NOT_UNIQUE   Typedef 名がその他のエンティティ用に使用されています

2-10-2 必要(Required)

MISRA.VAR.HIDDEN   内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています

2-10-1 必要(Required)

2-13-5 必要(Required)

MISRA.STRINGS.CONCAT   狭い文字列リテラルと広い文字列リテラルが連結されています

2-13-4 必要(Required)

MISRA.LITERAL.SUFFIX.CASE   リテラルの添え字は小文字です

2-13-3 必要(Required)

MISRA.LITERAL.UNSIGNED.SUFFIX   'U' 添え字の付かない符号なし整数リテラルです

2-13-2 必要(Required)

MISRA.TOKEN.OCTAL.ESCAPE   8 進数のエスケープ文字列の使用

MISRA.TOKEN.OCTAL.INT   8 進数の整数定数を使用しています

2-13-1 必要(Required)

MISRA.TOKEN.WRONGESC   リテラルに不正なエスケープ文字列があります

3-1-3 必要(Required)

MISRA.DECL.ARRAY_SIZE   配列の宣言でサイズが不明です

3-1-2 必要(Required)

MISRA.DECL.FUNC_LOCAL   関数がローカルで宣言されています

3-1-1 必要(Required)

MISRA.ONEDEFRULE.FUNC   ヘッダーファイルでグローバル関数が定義されています

MISRA.ONEDEFRULE.VAR   ヘッダーファイルでグローバル変数が定義されています

3-2-4 必要(Required)

3-2-3 必要(Required)

3-2-2 必要(Required)

3-2-1 必要(Required)

MISRA.OBJ.TYPE.COMPAT   型がその他の宣言の型と互換性がありません

3-3-2 必要(Required)

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

3-3-1 必要(Required)

MISRA.LINKAGE.EXTERN   外部リンクを持つオブジェクトまたは関数の宣言がヘッダーファイルにありません

3-4-1 必要(Required)

MISRA.VAR.MIN.VIS   名前の可視性が高すぎます

3-9-3 必要(Required)

MISRA.FLOAT.BIT.REPR   浮動小数点値のビット操作結果はストレージのレイアウトによって変わります

3-9-2 推奨(Advisory)

MISRA.BUILTIN_NUMERIC   組み込み数値型が使用されています

3-9-1 必要(Required)

MISRA.OBJ.TYPE.IDENT   型がその他の宣言の型と一致していません

4-5-3 必要(Required)

MISRA.CHAR.OPERAND   型 'char' または 'wchar_t' の式が文字以外のオペランドで使用されています

4-5-2 必要(Required)

MISRA.ENUM.OPERAND   列挙型の式が代数コンテキストで使用されています

4-5-1 必要(Required)

MISRA.LOGIC.OPERATOR.NOT_BOOL   論理演算ではない演算子のオペランドが実質的にはブール値です

4-10-2 必要(Required)

MISRA.LITERAL.NULL.PTR   リテラルのゼロが NULLポインタ定数として使用されています

4-10-1 必要(Required)

MISRA.LITERAL.NULL.INT   NULL が整数値として使用されています

5-0-21 必要(Required)

MISRA.BITS.NOT_UNSIGNED   ビット演算のオペランドが符号なし整数ではありません

MISRA.BITS.NOT_UNSIGNED.PREP   ビット演算のオペランドが符号なし整数ではありません

5-0-20 必要(Required)

MISRA.BITS.OPERAND   ビット演算のオペランドが別の基底型を持っています

5-0-19 必要(Required)

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

5-0-18 必要(Required)

MISRA.PTR.CMP.2008   比較演算子を使用したポインターの比較は、同じ配列を指していて、範囲内にある場合にのみ適用されます

MISRA.PTR.CMP.OBJECT.2008   比較演算子を使用したポインターの比較は、同じオブジェクトを指しており、範囲内である場合にのみ適用されます

5-0-17 必要(Required)

MISRA.PTR.SUB   ポインターの減算は、同じ配列を指している場合にのみ適用されます

MISRA.PTR.SUB.OBJECT   ポインターの減算は、同じオブジェクトを指している場合にのみ適用されます

5-0-16 必要(Required)

MISRA.PTR.ARITH.NOT_SAME.2008   ポインターオペランドの計算から得られるポインターは、そのポインターオペランドと同じ配列の要素をアドレス指定します

5-0-15 必要(Required)

MISRA.PTR.ARITH   代数式または配列インデックス式でポインタが使用されています

5-0-14 必要(Required)

MISRA.EXPR.COND.NOT_BOOLEAN   条件式の最初のオペランドがブール式ではありません

5-0-13 必要(Required)

MISRA.STMT.COND.NOT_BOOLEAN   if または loop ステートメントの条件がブール式になっていません

5-0-12 必要(Required)

MISRA.SIGNED_CHAR.NOT_NUMERIC   数値でない値に 'signed char' または 'unsigned char' が使用されています

5-0-11 必要(Required)

MISRA.CHAR.NOT_CHARACTER   文字でない値に 'char' が使用されています

5-0-10 必要(Required)

MISRA.CAST.UNSIGNED_BITS   unsigned char または short でのビット演算の結果は元の型にキャストできません

5-0-9 必要(Required)

MISRA.CAST.INT.SIGN   自明ではない複合式が別の符号を持つ型にキャストされています

5-0-8 必要(Required)

MISRA.CAST.FLOAT.WIDER   より広い浮動小数点タイプへの浮動小数点式のキャスト

MISRA.CAST.INT.WIDER   より広い整数型への複合式のキャスト

5-0-7 必要(Required)

MISRA.CAST.FLOAT_INT   整数型への浮動小数点式のキャスト

MISRA.CAST.INT_FLOAT   浮動小数点タイプへの複合式のキャスト

5-0-6 必要(Required)

MISRA.CONV.NUM.NARROWER   狭いタイプへの暗黙的な数値変換です

5-0-5 必要(Required)

MISRA.CONV.FLOAT   暗黙的な浮動小数点変換です

5-0-4 必要(Required)

MISRA.CONV.INT.SIGN   暗黙的な整数変換により符号が変わります

5-0-3 必要(Required)

MISRA.CVALUE.IMPL.CAST.CPP   暗黙の型変換で符号、型サイズ、型の違いにより情報の損失を起こす記述があります。

5-0-2 推奨(Advisory)

MISRA.EXPR.PARENS.INSUFFICIENT   式の演算子優先規則に制限された依存性が必要です

MISRA.EXPR.PARENS.REDUNDANT   式の演算子優先規則に制限された依存性が必要です

5-0-1 必要(Required)

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

5-2-12 必要(Required)

MISRA.FUNC.ARRAY.PARAMS   配列タイプの関数引数がポインタに減退しています

5-2-11 必要(Required)

MISRA.BIN_OP.OVERLOAD   カンマ、|| または && 演算子が多重定義されています

5-2-10 必要(Required)

MISRA.INCR_DECR.OTHER   増分または減分の演算子がその他の演算子と混合して式で使用されています

5-2-9 必要(Required)

MISRA.CAST.PTR_TO_INT   ポインタと整数型間のキャスト

5-2-8 必要(Required)

MISRA.CAST.INT_TO_PTR   整数型または void を指すポインタを持つオブジェクトがポインタ型にキャストされています

5-2-7 推奨(Advisory)

MISRA.CAST.PTR.UNRELATED   ポインタ型のオブジェクトを関連のない型にキャストしています

5-2-6 必要(Required)

MISRA.CAST.FUNC_PTR.CPP   キャストにより関数ポインタがその他のポインタ型に変換されます

5-2-5 必要(Required)

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

5-2-4 必要(Required)

MISRA.C_CAST   非 void タイプへの C スタイルのキャストです

MISRA.FUNC_CAST   関数表記が明示的なコンストラクタ呼び出しとは異なるものにキャストされています

5-2-3 推奨(Advisory)

MISRA.CAST.POLY.TYPE   多様性基本クラスから派生クラスへのキャストです

5-2-2 必要(Required)

MISRA.CAST.PTR.VRCLASS   仮想基本クラスを指すポインタから派生クラスを指すポインタへのキャストにおいて、'dynamic_cast' を用いていません

5-2-1 必要(Required)

MISRA.LOGIC.POSTFIX   論理 'and' 式または論理 'or' 式のオペランドが後置式ではありません

5-3-4 必要(Required)

MISRA.SIZEOF.SIDE_EFFECT   sizeof のオペランドに副作用があります

5-3-3 必要(Required)

MISRA.UN_OP.OVERLOAD   単項の & 演算子が多重定義されています

5-3-2 必要(Required)

MISRA.UMINUS.UNSIGNED   単項マイナス演算子が符号なしオペランドに対して使用されています。

5-3-1 推奨(Advisory)

MISRA.LOGIC.NOT_BOOL   論理演算のオペランドがブール値ではありません

5-8-1 必要(Required)

MISRA.SHIFT.RANGE   シフト演算子の右側のオペランドは範囲外 (左側のオペランドの最大ビット長以上か、または負) です

5-14-1 必要(Required)

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

5-17-1 必要(Required)

5-18-1 必要(Required)

MISRA.COMMA   カンマ演算子が使用されています

5-19-1 推奨(Advisory)

MISRA.COMP.WRAPAROUND   条件内でラップアラウンドしています

MISRA.ELIF.WRAPAROUND   #elif ディレクティブでラップアラウンドします

MISRA.IF.WRAPAROUND   #if ディレクティブでラップアラウンドします

NUM.OVERFLOW.DF   起こり得る数値のオーバーフローまたはラップアラウンド

6-2-3 必要(Required)

MISRA.NULL.STMT   行上に NULL ステートメント以外のものがあるか、またはコメントが不適切な場所に記述されています

6-2-2 必要(Required)

MISRA.FLOAT_EQUAL   浮動小数点式のイコールがテストされています

6-2-1 必要(Required)

MISRA.ASSIGN.COND   条件内で代入演算子が使用されています

MISRA.ASSIGN.SUBEXPR   代入演算子は条件外の部分式に使用されています

6-3-1 必要(Required)

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

6-4-8 必要(Required)

MISRA.SWITCH.NO_CASE   switch ステートメントに case 句がありません

6-4-7 必要(Required)

MISRA.SWITCH.BOOL   switch ステートメントの条件がブール式です

6-4-6 必要(Required)

MISRA.SWITCH.NODEFAULT   switch ステートメントの最後に default 句がありません

6-4-5 必要(Required)

MISRA.SWITCH.NO_BREAK   switch 句の最後に break ステートメントまたは throw ステートメントがありません

6-4-4 必要(Required)

MISRA.SWITCH.LABEL   switch のラベルが switch ボディ内の入れ子複合ステートメント内に置かれています

6-4-3 必要(Required)

MISRA.SWITCH.NOT_WELL_FORMED   switch ステートメントの形式が不適切です

6-4-2 必要(Required)

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

6-4-1 必要(Required)

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

6-5-6 必要(Required)

MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN   ループ制御変数がブール値ではありません

6-5-5 必要(Required)

MISRA.FOR.LOOP_CONTROL.CHANGE.COND   for ループの条件セクションでループ制御変数が変更されています

MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR   for ループの式セクションでループ制御変数が変更されています

6-5-4 必要(Required)

MISRA.FOR.INCR   for ループのカウンターが不適切な方法で変更されています

6-5-3 必要(Required)

MISRA.FOR.COND.CHANGE   for ループのカウンターがループ条件セクション内で変更されています

MISRA.FOR.STMT.CHANGE   for ループのカウンターがループステートメント内で変更されています

6-5-2 必要(Required)

MISRA.FOR.COND.EQ   ループカウンターに対して++ 演算子または -- 演算子を使用していませんが、ループカウンターがイコールかどうかで判定しています

6-5-1 必要(Required)

MISRA.FOR.COUNTER.FLT   for ループのカウンターが浮動小数点タイプです

MISRA.FOR.COUNTER.MANY   for ループのカウンターが多すぎます

6-6-5 必要(Required)

MISRA.RETURN.NOT_LAST   関数内で return が最後のステートメントになっていません

6-6-4 必要(Required)

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

6-6-3 必要(Required)

MISRA.CONTINUE.ILL   continue ステートメントが不適切な形式の for ループで使用されています

6-6-2 必要(Required)

MISRA.GOTO.AFTER.LABEL   goto が制約なしで使用されています

6-6-1 必要(Required)

MISRA.GOTO.NESTED   入れ子複合ステートメント内で宣言されたラベルに goto しています

7-1-2 必要(Required)

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

7-1-1 必要(Required)

MISRA.VAR.NEEDS.CONST   変数は変更されませんが、const 修飾子なしで宣言されています

7-2-1 必要(Required)

7-3-6 必要(Required)

MISRA.NAMESPACE.DECL   ヘッダーファイルに using 宣言があります

MISRA.NAMESPACE.DIR   ヘッダーファイルに using ディレクティブがあります

MISRA.NS.USING.HEADER   ヘッダーファイルでディレクティブまたは宣言が使用されています

7-3-5 必要(Required)

MISRA.NS.USING_DECL   同じ名前空間での識別子に対する複数宣言はその識別子の using 宣言にまたがってはいけません

7-3-4 必要(Required)

MISRA.NS.USING_DIR   ディレクティブを使用しています

7-3-3 必要(Required)

MISRA.NAMESPACE.UNMD   ヘッダーファイルに名前のない名前空間があります

7-3-2 必要(Required)

MISRA.NS.MAIN   'main' の名前の付いた非グローバル関数が定義されています

7-3-1 必要(Required)

MISRA.NS.GLOBAL   グローバル名前空間で関数、変数、または型が宣言されています

MISRA.NS.GLOBAL.USING   グローバル名前空間でのディレクティブまたは宣言の使用

7-4-3 必要(Required)

MISRA.ASM.ENCAPS   アセンブリ言語が分離されていません

7-4-2 必要(Required)

MISRA.PRAGMA.ASM   不正なアセンブラ命令です

7-5-4 推奨(Advisory)

MISRA.FUNC.RECUR   再帰関数

7-5-3 必要(Required)

MISRA.ADDR.REF.PARAM   関数が参照渡しパラメーターへの参照を返しています

MISRA.ADDR.REF.PARAM.PTR   関数が参照渡しパラメーターのアドレスを返しています

7-5-2 必要(Required)

LOCRET.ARG   関数がローカル変数のアドレスを返しています

LOCRET.GLOB   関数がローカル変数のアドレスを返しています

7-5-1 必要(Required)

LOCRET.RET   関数がローカル変数のアドレスを返しています

8-0-1 必要(Required)

MISRA.DECL.MANY_DCLS   1 つの宣言に複数の宣言子があります

8-3-1 必要(Required)

MISRA.SAME.DEFPARAMS   オーバーライドする仮想関数とオーバーライドされる関数が異なるデフォルト引数を持っています

8-4-4 必要(Required)

MISRA.FUNC.ADDR   & 演算子なしで関数のアドレスが使用されています

8-4-3 必要(Required)

FUNCRET.GEN   非 void 関数に戻り値がありません

8-4-2 必要(Required)

MISRA.FUNC.PARAMS.IDENT   関数の宣言と定義で使用される識別子が一致していません

8-4-1 必要(Required)

MISRA.FUNC.VARARG   関数が可変数の引数を持っています

8-5-3 必要(Required)

MISRA.ENUM.INIT   1 番目以外の列挙子が明示的に初期化されていますが、一部の要素が明示的に初期化されていません

8-5-2 必要(Required)

MISRA.INIT.BRACES   不適切な初期化子が配置を固定しています

8-5-1 必要(Required)

UNINIT.CTOR.MIGHT   コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST   コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT   未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST   未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT   未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST   未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST   一部が未初期化の配列

UNINIT.STACK.MIGHT   未初期化の変数の可能性

UNINIT.STACK.MUST   未初期化の変数

9-3-3 必要(Required)

MISRA.MEMB.NON_CONST   非定数のメンバー関数はどのメンバー変数も変更しません

MISRA.MEMB.NON_STATIC   非スタティックメンバー関数は同じクラスのその他の非スタティックメンバーを使用しません

9-3-2 必要(Required)

MISRA.RET.REF.NON_CONST   メンバー関数が非定数のハンドルをメンバー変数に返しています

9-3-1 必要(Required)

MISRA.CONST.RET.NON_CONST   定数のメンバー関数が非定数のポインタをメンバー変数に返しています

9-5-1 必要(Required)

MISRA.UNION   和集合が使用されています

9-6-4 必要(Required)

MISRA.BITFIELD.SIGNED   名前付きの符号付きビットフィールドの長さが 2 未満です

9-6-3 必要(Required)

MISRA.FIELD.BIT.ENUM   ビットフィールドが列挙型を持っています

9-6-2 必要(Required)

MISRA.BITFIELD.TYPE.CPP   ビットフィールドの型は、ブール、符号付き/符号なし整数のいずれでもありません

10-1-3 必要(Required)

MISRA.BASE.VIRTUAL.NOTVIRTUAL   基本クラスが継承階層で仮想および非仮想の両方で使用されています

10-1-2 必要(Required)

MISRA.VIRTUAL.BASE.DIAMOND   基本クラスがダイヤモンド階層以外で仮想として使用されています

10-1-1 推奨(Advisory)

MISRA.DERIVE.VIRTUAL   クラスが仮想基本クラスから派生しています

10-2-1 推奨(Advisory)

MISRA.BASE.IDS.UNIQUE   継承階層でメンバー名が 2 回使用されています

10-3-3 必要(Required)

MISRA.PUREVIRT.OVRD   純粋な仮想関数が純粋でない仮想関数をオーバーライドしています

10-3-2 必要(Required)

MISRA.VIRTUAL.NOVIRTUAL   オーバーライドする仮想関数が 'virtual' キーワードなしで宣言されています

10-3-1 必要(Required)

MISRA.BASE.MANYDEFS   オーバーライドする関数とオーバーライドされる仮想関数の両方で定義があります

11-0-1 必要(Required)

MISRA.MEMB.NOT_PRIVATE   非 POD クラスのメンバー変数がプライベートではありません

12-1-3 必要(Required)

MISRA.CTOR.NOT_EXPLICIT   組み込み型の引数を持つコンストラクタが '明示的に' 宣言されていません

12-1-2 推奨(Advisory)

MISRA.CTOR.BASE   コンストラクタがその基本クラスのコンストラクタを明示的に呼び出していません

12-1-1 必要(Required)

MISRA.CTOR.DYNAMIC   オブジェクトの動的タイプがそのコンストラクタのボディから使用されています

MISRA.DTOR.DYNAMIC   オブジェクトの動的タイプがそのデストラクタのボディから使用されています

12-8-2 必要(Required)

MISRA.COPYASSIGN.ABSTRACT   コピー代入は保護するか、または抽象クラスでプライベートにして宣言する必要があります

12-8-1 必要(Required)

14-5-3 必要(Required)

MISRA.COPYASSIGN.TMPL   コピー代入演算子は、単一の汎用パラメーターを持つテンプレートコピー代入演算子をクラスに持たせるときに定義する必要があります

14-5-2 必要(Required)

MISRA.COPY.CSTR.TMPL   クラスには、単一の汎用パラメーターを持つテンプレートコンストラクタがありますが、コピーコンストラクタが定義されていません

14-5-1 必要(Required)

MISRA.GENFU.ASSOC   汎用関数が関連付けられた名前空間で宣言されています

14-6-2 必要(Required)

MISRA.FUNC.DECL.AFTERUSE   テンプレートをインスタンス化するときに多重定義解決によって選択される関数が、その使用後に定義されています

14-6-1 必要(Required)

MISRA.TEMPLMEM.NOQUAL   インスタンス化されたテンプレートで、依存基本クラスで宣言されたメンバーが修飾子または 'this' なしで使用されています

14-7-3 必要(Required)

MISRA.SPEC.SAMEFILE   テンプレート特殊化とその基本テンプレートが別々のファイルで宣言されています

14-7-2 必要(Required)

MISRA.SPEC.ILL   テンプレートの明示的なインスタンス化により、コードの形式が損なわれます

14-7-1 必要(Required)

14-8-2 推奨(Advisory)

MISRA.FUNC.SPEC.NOTSPEC   関数呼び出し用の実行可能関数に特殊化と非特殊化の両方が含まれています

14-8-1 必要(Required)

MISRA.FUNC.SPEC.OVRLD   関数呼び出し用の実行可能関数に多重定義されたテンプレートとその明示的な特殊化が含まれています

15-0-3 必要(Required)

MISRA.TRY.JUMP   goto ステートメントまたは switch ステートメントでコントロールを try ブロックに転送できます

15-0-2 推奨(Advisory)

MISRA.THROW.PTR   例外オブジェクトがポインタになっています

15-1-3 必要(Required)

MISRA.THROW.EMPTY   空のスロー式が catch ブロックに属していません

15-1-2 推奨(Advisory)

MISRA.THROW.NULL   NULL が明示的にスローされています

15-1-1 推奨(Advisory)

15-3-7 必要(Required)

MISRA.CATCH.NOALL   省略記号例外ハンドラーが try-catch ブロックの最後に置かれていません

15-3-6 必要(Required)

MISRA.CATCH.WRONGORD   try-catch ブロックで基本例外クラスのハンドラーが派生例外クラスのハンドラーよりも先に置かれています

15-3-5 必要(Required)

MISRA.CATCH.BY_VALUE   クラス タイプの例外オブジェクトが値によってキャッチされています

15-3-4 推奨(Advisory)

15-3-3 必要(Required)

MISRA.CTOR.TRY.NON_STATIC   コンストラクタまたはデストラクタの関数 try-catch ブロックが非スタティックなメンバーを参照しています

15-3-2 推奨(Advisory)

MISRA.CATCH.ALL   try-catch ブロックに省略記号例外ハンドラーがありません

15-3-1 推奨(Advisory)

15-4-1 必要(Required)

MISRA.DECL.EXCPT.SPEC   異なる例外指定で関数が宣言されています

15-5-3 必要(Required)

MISRA.TERMINATE   terminate() 関数が明示的に呼び出されています

15-5-2 必要(Required)

15-5-1 必要(Required)

MISRA.DTOR.THROW   デストラクタにスローします

16-0-8 必要(Required)

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

16-0-7 必要(Required)

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

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

16-0-6 必要(Required)

MISRA.DEFINE.NOPARS   マクロパラメーターに括弧がありません

16-0-5 必要(Required)

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

16-0-4 必要(Required)

MISRA.DEFINE.FUNC   マクロが関数のように定義されています

16-0-3 必要(Required)

MISRA.UNDEF   定義のない使用です

16-0-2 必要(Required)

MISRA.DEFINE.NOTGLOBAL   グローバルレベル以外で定義されています

MISRA.UNDEF.NOTGLOBAL   グローバルレベル以外で定義されていません

16-0-1 必要(Required)

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

16-1-2 必要(Required)

MISRA.ELIF.OTHERFILE   不適切なファイルでの #elif

MISRA.ELSE.OTHERFILE   不適切なファイルでの #else

MISRA.ENDIF.OTHERFILE   不適切なファイルでの #endif

16-1-1 必要(Required)

MISRA.ELIF.DEFINED   #elif ディレクティブで不正な 'defined' が使用されています

MISRA.IF.DEFINED   #if ディレクティブで不正な 'defined' が使用されています

16-2-6 必要(Required)

MISRA.INCL.BAD   非標準の include ディレクティブです

16-2-5 推奨(Advisory)

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

16-2-4 必要(Required)

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

16-2-3 必要(Required)

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

16-2-2 必要(Required)

MISRA.DEFINE.BADEXP.CPP   C++ ソースで不適切なマクロ展開です

16-2-1 必要(Required)

MISRA.USE.DEFINE   マクロが保護されずに定義されています

MISRA.USE.EXPANSION   マクロの展開

MISRA.USE.WRONGDIR   不適切なプリプロセッサディレクティブです

16-3-2 推奨(Advisory)

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

16-3-1 必要(Required)

MISRA.DEFINE.SHARP.MANY   マクロ定義に # 演算子または ## 演算子がいくつか使用されています

16-6-1

MISRA.PRAGMA   ドキュメントにない pragma ディレクティブです

17-0-5 必要(Required)

MISRA.EXPANSION.UNSAFE   安全ではないマクロの使用

MISRA.STDLIB.LONGJMP   setjmp マクロまたは longjmp 関数の使用

17-0-3 必要(Required)

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

MISRA.STDLIB.WRONGNAME.UNDERSCORE   予約名が言語エンティティの名前に使用されています

17-0-2 必要(Required)

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

MISRA.UNDEF.WRONGNAME.UNDERSCORE   予約名が定義されていません

17-0-1 必要(Required)

MISRA.DEFINE.WRONGNAME   標準ライブラリからの名前がマクロ名に使用されています

MISRA.DEFINE.WRONGNAME.UNDERSCORE   予約名がマクロ名に使用されています

18-0-5 必要(Required)

MISRA.STDLIB.CSTRING   'cstring' ライブラリからの関数が使用されています

MISRA.STDLIB.CSTRING.MACRO   'cstring' ライブラリからのマクロが使用されています

18-0-4 必要(Required)

MISRA.INCL.UNSAFE   安全でないヘッダーのインクルード

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

18-0-3 必要(Required)

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

18-0-2 必要(Required)

MISRA.INCL.UNSAFE   安全でないヘッダーのインクルード

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

18-0-1 必要(Required)

MISRA.EXPANSION.UNSAFE   安全ではないマクロの使用

18-2-1 必要(Required)

MISRA.EXPANSION.UNSAFE   安全ではないマクロの使用

18-4-1 必要(Required)

MISRA.STDLIB.MEMORY   動的ヒープメモリ割り当ての使用

18-7-1 必要(Required)

MISRA.EXPANSION.UNSAFE   安全ではないマクロの使用

MISRA.INCL.UNSAFE   安全でないヘッダーのインクルード

MISRA.STDLIB.SIGNAL   signal.h の信号処理装置の使用

19-3-1 必要(Required)

MISRA.EXPANSION.UNSAFE   安全ではないマクロの使用

MISRA.STDLIB.ERRNO   エラーインジケーター 'errno' が使用されています

27-0-1 必要(Required)

MISRA.INCL.UNSAFE   安全でないヘッダーのインクルード

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

Dir. 0.3.1 書類(Document)

Dir. 0.4.1 書類(Document)

Dir. 0.4.2 書類(Document)

Dir. 0.4.3 書類(Document)

Dir. 1.0.2 書類(Document)

Dir. 1.0.3 書類(Document)

Dir. 2.2.1 書類(Document)

Dir. 7.4.1 書類(Document)

Dir. 9.6.1 書類(Document)

Dir. 15.0.1 書類(Document)

Dir. 16.6.1 書類(Document)

Dir. 17.0.4 書類(Document)

サポートのサマリー

サポート対象合計: 196

静的に検証不可能な規則の合計: 12

サポートされていない静的に検証可能な規則の合計: 20

MISRA C++ の対象範囲: 91% (静的に検証不可能な規則を除く)

"MISRA"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。​