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

ガイドライン チェッカー名および説明
0-1-1

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

UNREACH.GEN   到達不能コード

UNREACH.RETURN   到達不能な void return文

0-1-2

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

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

0-1-4

未サポート - サポートの予定は現在ありません

0-1-5

未サポート - サポートの予定は現在ありません

0-1-6

未サポート - サポートの予定は現在ありません

0-1-7

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

0-1-8

未サポート - サポートの予定は現在ありません

0-1-9

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

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

0-1-10

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

0-1-11

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

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

0-1-12

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

0-2-1

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

0-3-1

未サポート - 静的に検証できません

0-3-2

未サポート - サポートの予定は現在ありません

0-4-1

未サポート - 静的に検証できません

0-4-2

未サポート - 静的に検証できません

0-4-3

未サポート - 静的に検証できません

1-0-1

未サポート - サポートの予定は現在ありません

1-0-2

未サポート - 静的に検証できません

1-0-3

未サポート - 静的に検証できません

2-2-1

未サポート - 静的に検証できません

2-3-1

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

2-5-1

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

2-7-1

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

2-7-2

未サポート - サポートの予定は現在ありません

2-7-3

未サポート - サポートの予定は現在ありません

2-10-1

未サポート - サポートの予定は現在ありません

2-10-2

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

2-10-3

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

2-10-4

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

2-10-5

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

2-10-6

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

2-13-1

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

2-13-2

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

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

2-13-3

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

2-13-4

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

2-13-5

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

3-1-1

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

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

3-1-2

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

3-1-3

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

3-2-1

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

3-2-2

未サポート - サポートの予定は現在ありません

3-2-3

未サポート - サポートの予定は現在ありません

3-2-4

未サポート - サポートの予定は現在ありません

3-3-1

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

3-3-2

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

3-4-1

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

3-9-1

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

3-9-2

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

3-9-3

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

4-5-1

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

4-5-2

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

4-5-3

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

4-10-1

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

4-10-2

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

5-0-1

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

5-0-2

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

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

5-0-3

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

5-0-4

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

5-0-5

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

5-0-6

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

5-0-7

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

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

5-0-8

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

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

5-0-9

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

5-0-10

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

5-0-11

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

5-0-12

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

5-0-13

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

5-0-14

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

5-0-15

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

5-0-16

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

5-0-16

未サポート - サポートの予定は現在ありません

5-0-17

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

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

5-0-17

未サポート - サポートの予定は現在ありません

5-0-18

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

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

5-0-18

未サポート - サポートの予定は現在ありません

5-0-19

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

5-0-20

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

5-0-21

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

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

5-2-1

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

5-2-2

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

5-2-3

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

5-2-4

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

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

5-2-5

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

5-2-6

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

5-2-7

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

5-2-8

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

5-2-9

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

5-2-10

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

5-2-11

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

5-2-12

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

5-3-1

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

5-3-2

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

5-3-3

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

5-3-4

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

5-8-1

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

5-14-1

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

5-17-1

未サポート - 静的に検証できません

5-18-1

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

5-19-1

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

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

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

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

6-2-1

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

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

6-2-2

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

6-2-3

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

6-3-1

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

6-4-1

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

6-4-2

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

6-4-3

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

6-4-4

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

6-4-5

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

6-4-6

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

6-4-7

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

6-4-8

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

6-5-1

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

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

6-5-2

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

6-5-3

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

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

6-5-4

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

6-5-5

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

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

6-5-6

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

6-6-1

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

6-6-2

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

6-6-3

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

6-6-4

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

6-6-5

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

7-1-1

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

7-1-2

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

7-2-1

未サポート - サポートの予定は現在ありません

7-3-1

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

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

7-3-2

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

7-3-3

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

7-3-4

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

7-3-5

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

7-3-6

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

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

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

7-4-1

未サポート - 静的に検証できません

7-4-2

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

7-4-3

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

7-5-1

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

7-5-2

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

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

7-5-3

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

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

7-5-4

MISRA.FUNC.RECUR   再帰関数

8-0-1

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

8-3-1

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

8-4-1

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

8-4-2

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

8-4-3

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

8-4-4

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

8-5-1

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

8-5-2

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

8-5-3

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

9-3-1

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

9-3-2

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

9-3-3

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

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

9-5-1

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

9-6-1

未サポート - 静的に検証できません

9-6-2

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

9-6-3

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

9-6-4

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

10-1-1

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

10-1-2

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

10-1-3

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

10-2-1

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

10-3-1

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

10-3-2

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

10-3-3

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

11-0-1

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

12-1-1

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

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

12-1-2

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

12-1-3

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

12-8-1

未サポート - サポートの予定は現在ありません

12-8-2

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

14-5-1

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

14-5-2

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

14-5-3

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

14-6-1

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

14-6-2

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

14-7-1

未サポート - サポートの予定は現在ありません

14-7-2

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

14-7-3

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

14-8-1

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

14-8-2

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

15-0-1

未サポート - 静的に検証できません

15-0-2

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

15-0-3

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

15-1-1

未サポート - サポートの予定は現在ありません

15-1-2

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

15-1-3

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

15-3-1

未サポート - サポートの予定は現在ありません

15-3-2

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

15-3-3

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

15-3-4

未サポート - サポートの予定は現在ありません

15-3-5

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

15-3-6

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

15-3-7

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

15-4-1

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

15-5-1

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

15-5-2

未サポート - サポートの予定は現在ありません

15-5-3

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

16-0-1

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

16-0-2

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

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

16-0-3

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

16-0-4

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

16-0-5

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

16-0-6

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

16-0-7

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

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

16-0-8

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

16-1-1

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

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

16-1-2

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

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

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

16-2-1

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

MISRA.USE.EXPANSION   マクロの展開

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

16-2-2

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

16-2-3

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

16-2-4

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

16-2-5

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

16-2-6

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

16-3-1

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

16-3-2

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

16-6-1

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

17-0-1

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

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

17-0-2

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

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

17-0-3

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

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

17-0-4

未サポート - 静的に検証できません

17-0-5

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

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

18-0-1

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

18-0-2

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

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

18-0-3

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

18-0-4

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

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

18-0-5

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

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

18-2-1

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

18-4-1

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

18-7-1

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

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

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

19-3-1

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

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

27-0-1

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

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

サポートのサマリー

サポート対象合計: 193

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

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

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