MISRA C++:2008 規則

ガイドライン カテゴリ チェッカー名および説明
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)

Rule 0-1-1 必要(Required)

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

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

Rule 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 になります

Rule 0-1-3 必要(Required)

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

Rule 0-1-4 必要(Required)

Rule 0-1-5 必要(Required)

Rule 0-1-6 必要(Required)

Rule 0-1-7 必要(Required)

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

Rule 0-1-8 必要(Required)

Rule 0-1-9 必要(Required)

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

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

Rule 0-1-10 必要(Required)

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

Rule 0-1-11 必要(Required)

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

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

Rule 0-1-12 必要(Required)

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

Rule 0-2-1 必要(Required)

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

Rule 0-3-2 必要(Required)

Rule 1-0-1 必要(Required)

Rule 2-3-1 必要(Required)

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

Rule 2-5-1 推奨(Advisory)

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

Rule 2-7-1 必要(Required)

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

Rule 2-7-2 必要(Required)

MISRA.TOKEN.COMMENTED.CODE  コメントにはコメントアウトされたソースコードが含まれているようです

Rule 2-7-3 推奨(Advisory)

MISRA.TOKEN.COMMENTED.CODE  コメントにはコメントアウトされたソースコードが含まれているようです

Rule 2-10-1 必要(Required)

Rule 2-10-2 必要(Required)

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

Rule 2-10-3 必要(Required)

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

Rule 2-10-4 必要(Required)

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

Rule 2-10-5 推奨(Advisory)

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

Rule 2-10-6 必要(Required)

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

Rule 2-13-1 必要(Required)

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

Rule 2-13-2 必要(Required)

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

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

Rule 2-13-3 必要(Required)

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

Rule 2-13-4 必要(Required)

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

Rule 2-13-5 必要(Required)

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

Rule 3-1-1 必要(Required)

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

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

Rule 3-1-2 必要(Required)

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

Rule 3-1-3 必要(Required)

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

Rule 3-2-1 必要(Required)

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

Rule 3-2-2 必要(Required)

Rule 3-2-3 必要(Required)

Rule 3-2-4 必要(Required)

Rule 3-3-1 必要(Required)

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

Rule 3-3-2 必要(Required)

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

Rule 3-4-1 必要(Required)

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

Rule 3-9-1 必要(Required)

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

Rule 3-9-2 推奨(Advisory)

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

Rule 3-9-3 必要(Required)

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

Rule 4-5-1 必要(Required)

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

Rule 4-5-2 必要(Required)

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

Rule 4-5-3 必要(Required)

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

Rule 4-10-1 必要(Required)

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

Rule 4-10-2 必要(Required)

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

Rule 5-0-1 必要(Required)

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

Rule 5-0-2 推奨(Advisory)

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

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

Rule 5-0-3 必要(Required)

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

Rule 5-0-4 必要(Required)

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

Rule 5-0-5 必要(Required)

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

Rule 5-0-6 必要(Required)

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

Rule 5-0-7 必要(Required)

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

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

Rule 5-0-8 必要(Required)

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

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

Rule 5-0-9 必要(Required)

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

Rule 5-0-10 必要(Required)

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

Rule 5-0-11 必要(Required)

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

Rule 5-0-12 必要(Required)

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

Rule 5-0-13 必要(Required)

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

Rule 5-0-14 必要(Required)

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

Rule 5-0-15 必要(Required)

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

Rule 5-0-16 必要(Required)

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

Rule 5-0-17 必要(Required)

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

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

Rule 5-0-18 必要(Required)

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

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

Rule 5-0-19 必要(Required)

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

Rule 5-0-20 必要(Required)

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

Rule 5-0-21 必要(Required)

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

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

Rule 5-2-1 必要(Required)

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

Rule 5-2-2 必要(Required)

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

Rule 5-2-3 推奨(Advisory)

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

Rule 5-2-4 必要(Required)

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

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

Rule 5-2-5 必要(Required)

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

Rule 5-2-6 必要(Required)

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

Rule 5-2-7 必要(Required)

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

Rule 5-2-8 必要(Required)

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

Rule 5-2-9 推奨(Advisory)

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

Rule 5-2-10 推奨(Advisory)

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

Rule 5-2-11 必要(Required)

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

Rule 5-2-12 必要(Required)

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

Rule 5-3-1 必要(Required)

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

Rule 5-3-2 必要(Required)

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

Rule 5-3-3 必要(Required)

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

Rule 5-3-4 必要(Required)

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

Rule 5-8-1 必要(Required)

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

Rule 5-14-1 必要(Required)

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

Rule 5-17-1 必要(Required)

Rule 5-18-1 必要(Required)

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

Rule 5-19-1 推奨(Advisory)

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

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

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

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

Rule 6-2-1 必要(Required)

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

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

Rule 6-2-2 必要(Required)

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

Rule 6-2-3 必要(Required)

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

Rule 6-3-1 必要(Required)

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

Rule 6-4-1 必要(Required)

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

Rule 6-4-2 必要(Required)

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

Rule 6-4-3 必要(Required)

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

Rule 6-4-4 必要(Required)

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

Rule 6-4-5 必要(Required)

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

Rule 6-4-6 必要(Required)

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

Rule 6-4-7 必要(Required)

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

Rule 6-4-8 必要(Required)

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

Rule 6-5-1 必要(Required)

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

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

Rule 6-5-2 必要(Required)

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

Rule 6-5-3 必要(Required)

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

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

Rule 6-5-4 必要(Required)

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

Rule 6-5-5 必要(Required)

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

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

Rule 6-5-6 必要(Required)

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

Rule 6-6-1 必要(Required)

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

Rule 6-6-2 必要(Required)

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

Rule 6-6-3 必要(Required)

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

Rule 6-6-4 必要(Required)

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

Rule 6-6-5 必要(Required)

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

Rule 7-1-1 必要(Required)

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

Rule 7-1-2 必要(Required)

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

Rule 7-2-1 必要(Required)

Rule 7-3-1 必要(Required)

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

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

Rule 7-3-2 必要(Required)

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

Rule 7-3-3 必要(Required)

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

Rule 7-3-4 必要(Required)

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

Rule 7-3-5 必要(Required)

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

Rule 7-3-6 必要(Required)

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

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

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

Rule 7-4-2 必要(Required)

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

Rule 7-4-3 必要(Required)

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

Rule 7-5-1 必要(Required)

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

Rule 7-5-2 必要(Required)

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

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

Rule 7-5-3 必要(Required)

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

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

Rule 7-5-4 推奨(Advisory)

MISRA.FUNC.RECUR  再帰関数

Rule 8-0-1 必要(Required)

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

Rule 8-3-1 必要(Required)

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

Rule 8-4-1 必要(Required)

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

Rule 8-4-2 必要(Required)

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

Rule 8-4-3 必要(Required)

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

Rule 8-4-4 必要(Required)

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

Rule 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  未初期化の変数

Rule 8-5-2 必要(Required)

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

Rule 8-5-3 必要(Required)

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

Rule 9-3-1 必要(Required)

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

Rule 9-3-2 必要(Required)

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

Rule 9-3-3 必要(Required)

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

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

Rule 9-5-1 必要(Required)

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

Rule 9-6-2 必要(Required)

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

Rule 9-6-3 必要(Required)

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

Rule 9-6-4 必要(Required)

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

Rule 10-1-1 推奨(Advisory)

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

Rule 10-1-2 必要(Required)

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

Rule 10-1-3 必要(Required)

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

Rule 10-2-1 推奨(Advisory)

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

Rule 10-3-1 必要(Required)

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

Rule 10-3-2 必要(Required)

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

Rule 10-3-3 必要(Required)

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

Rule 11-0-1 必要(Required)

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

Rule 12-1-1 必要(Required)

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

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

Rule 12-1-2 推奨(Advisory)

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

Rule 12-1-3 必要(Required)

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

Rule 12-8-1 必要(Required)

Rule 12-8-2 必要(Required)

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

Rule 14-5-1 必要(Required)

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

Rule 14-5-2 必要(Required)

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

Rule 14-5-3 必要(Required)

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

Rule 14-6-1 必要(Required)

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

Rule 14-6-2 必要(Required)

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

Rule 14-7-1 必要(Required)

Rule 14-7-2 必要(Required)

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

Rule 14-7-3 必要(Required)

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

Rule 14-8-1 必要(Required)

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

Rule 14-8-2 推奨(Advisory)

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

Rule 15-0-2 推奨(Advisory)

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

Rule 15-0-3 必要(Required)

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

Rule 15-1-1 必要(Required)

Rule 15-1-2 必要(Required)

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

Rule 15-1-3 必要(Required)

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

Rule 15-3-1 必要(Required)

Rule 15-3-2 推奨(Advisory)

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

Rule 15-3-3 必要(Required)

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

Rule 15-3-4 必要(Required)

Rule 15-3-5 必要(Required)

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

Rule 15-3-6 必要(Required)

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

Rule 15-3-7 必要(Required)

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

Rule 15-4-1 必要(Required)

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

Rule 15-5-1 必要(Required)

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

Rule 15-5-2 必要(Required)

Rule 15-5-3 必要(Required)

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

Rule 16-0-1 必要(Required)

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

Rule 16-0-2 必要(Required)

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

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

Rule 16-0-3 必要(Required)

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

Rule 16-0-4 必要(Required)

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

Rule 16-0-5 必要(Required)

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

Rule 16-0-6 必要(Required)

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

Rule 16-0-7 必要(Required)

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

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

Rule 16-0-8 必要(Required)

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

Rule 16-1-1 必要(Required)

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

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

Rule 16-1-2 必要(Required)

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

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

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

Rule 16-2-1 必要(Required)

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

MISRA.USE.EXPANSION  マクロの展開

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

Rule 16-2-2 必要(Required)

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

Rule 16-2-3 必要(Required)

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

Rule 16-2-4 必要(Required)

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

Rule 16-2-5 推奨(Advisory)

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

Rule 16-2-6 必要(Required)

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

Rule 16-3-1 必要(Required)

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

Rule 16-3-2 推奨(Advisory)

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

Rule 16-6-1

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

Rule 17-0-1 必要(Required)

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

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

Rule 17-0-2 必要(Required)

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

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

Rule 17-0-3 必要(Required)

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

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

Rule 17-0-5 必要(Required)

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

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

Rule 18-0-1 必要(Required)

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

Rule 18-0-2 必要(Required)

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

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

Rule 18-0-3 必要(Required)

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

Rule 18-0-4 必要(Required)

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

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

Rule 18-0-5 必要(Required)

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

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

Rule 18-2-1 必要(Required)

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

Rule 18-4-1 必要(Required)

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

Rule 18-7-1 必要(Required)

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

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

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

Rule 19-3-1 必要(Required)

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

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

Rule 27-0-1 必要(Required)

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

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

サポートのサマリー

サポート対象合計: 196

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

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

MISRA C++ のカバー率: 91% (静的に検証不可能な規則を除く)

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