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 | 必要(Required) |
UNREACH.ENUM enum が取りうる値が原因で、コードは到達不能になっています UNREACH.GEN 到達不能コード UNREACH.RETURN 到達不能な void return文 UNUSED.FUNC.GEN 関数を定義していますが、使用していません MISRA.FUNC.UNUSEDPAR 非仮想関数の仮引数が使用されていません MISRA.FUNC.UNUSEDPAR.UNNAMED 非仮想関数で名前のない仮引数が使用されていません MISRA.FUNC.VIRTUAL.UNUSEDPAR 仮想関数セットの仮引数が使用されていません 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 になります LV_UNUSED.GEN ローカル変数は使用されません MISRA.FUNC.UNUSEDRET 非 void 関数の戻り値が使用されていません VA_UNUSED.GEN 値を割り当て後に使用しません VA_UNUSED.INIT 値を初期化後に使用しません MISRA.ASSIGN.OVERLAP オブジェクトがオーバーラップするオブジェクトに割り当てられています |
| Rule 1 | 必要(Required) | |
| Rule 2 | 必要(Required) |
MISRA.VAR.HIDDEN 内部のスコープで宣言された識別子によって外部のスコープの識別子が非表示になっています MISRA.TYPEDEF.NOT_UNIQUE Typedef 名がその他のエンティティ用に使用されています MISRA.CT.UNIQUE.ID 識別子がタグ名と不整合です MISRA.VAR.UNIQUE.STATIC 静的ストレージ指定の識別子がその他の識別子と不整合です MISRA.TYPE.NAMECLASH.CPP.2008 ある名前空間の識別子が他の名前空間の識別子と同じスペルです MISRA.TOKEN.WRONGESC.CPP.2008 リテラルに不正なエスケープ文字列があります MISRA.TOKEN.OCTAL.ESCAPE 8 進数のエスケープ文字列の使用 MISRA.TOKEN.OCTAL.INT 8 進数の整数定数を使用しています MISRA.LITERAL.UNSIGNED.SUFFIX 'U' 添え字の付かない符号なし整数リテラルです MISRA.LITERAL.SUFFIX.CASE リテラルの添え字は小文字です MISRA.STRINGS.CONCAT 狭い文字列リテラルと広い文字列リテラルが連結されています MISRA.CHAR.TRIGRAPH 3 文字表記の使用 MISRA.CHAR.DIGRAPH 2 文字表記の使用 MISRA.TOKEN.BADCOM コメントに不適切な文字列があります MISRA.TOKEN.COMMENTED.CODE コメントにはコメントアウトされたソースコードが含まれているようです |
| Rule 3 | 必要(Required) |
MISRA.ONEDEFRULE.FUNC ヘッダーファイルでグローバル関数が定義されています MISRA.ONEDEFRULE.VAR ヘッダーファイルでグローバル変数が定義されています MISRA.DECL.FUNC_LOCAL 関数がローカルで宣言されています MISRA.DECL.ARRAY_SIZE 配列の宣言でサイズが不明です MISRA.OBJ.TYPE.COMPAT 型がその他の宣言の型と互換性がありません MISRA.LINKAGE.EXTERN 外部リンクを持つオブジェクトまたは関数の宣言がヘッダーファイルにありません MISRA.FUNC.STATIC.REDECL 関数またはオブジェクトの再宣言に 'static' 修飾子がありません MISRA.VAR.MIN.VIS 名前の可視性が高すぎます MISRA.OBJ.TYPE.IDENT 型がその他の宣言の型と一致していません MISRA.BUILTIN_NUMERIC 組み込み数値型が使用されています MISRA.FLOAT.BIT.REPR 浮動小数点値のビット操作結果はストレージのレイアウトによって変わります |
| Rule 4 | 必要(Required) |
MISRA.LITERAL.NULL.INT NULL が整数値として使用されています MISRA.LITERAL.NULL.PTR リテラルのゼロが NULLポインタ定数として使用されています MISRA.LOGIC.OPERATOR.NOT_BOOL 論理演算ではない演算子のオペランドが実質的にはブール値です MISRA.ENUM.OPERAND 列挙型の式が代数コンテキストで使用されています MISRA.CHAR.OPERAND 型 'char' または 'wchar_t' の式が文字以外のオペランドで使用されています |
| Rule 5 | 必要(Required) |
PORTING.VAR.EFFECTS ある使用法が副次的な影響を受ける式で変数が 2 回使用されています MISRA.CAST.UNSIGNED_BITS unsigned char または short でのビット演算の結果は元の型にキャストできません MISRA.CHAR.NOT_CHARACTER 文字でない値に 'char' が使用されています MISRA.SIGNED_CHAR.NOT_NUMERIC 数値でない値に 'signed char' または 'unsigned char' が使用されています MISRA.STMT.COND.NOT_BOOLEAN if または loop ステートメントの条件がブール式になっていません MISRA.EXPR.COND.NOT_BOOLEAN 条件式の最初のオペランドがブール式ではありません MISRA.PTR.ARITH 代数式または配列インデックス式でポインタが使用されています MISRA.PTR.ARITH.NOT_SAME.2008 ポインターオペランドの計算から得られるポインターは、そのポインターオペランドと同じ配列の要素をアドレス指定します MISRA.PTR.SUB ポインターの減算は、同じ配列を指している場合にのみ適用されます MISRA.PTR.SUB.OBJECT ポインターの減算は、同じオブジェクトを指している場合にのみ適用されます MISRA.PTR.CMP.2008 比較演算子を使用したポインターの比較は、同じ配列を指していて、範囲内にある場合にのみ適用されます MISRA.PTR.CMP.OBJECT.2008 比較演算子を使用したポインターの比較は、同じオブジェクトを指しており、範囲内である場合にのみ適用されます MISRA.PTR.TO_PTR_TO_PTR ポインタ宣言に 2 つ以上のレベルの間接指定があります MISRA.EXPR.PARENS.INSUFFICIENT 式の演算子優先規則に制限された依存性が必要です MISRA.EXPR.PARENS.REDUNDANT 式の演算子優先規則に制限された依存性が必要です MISRA.BITS.OPERAND ビット演算のオペランドが別の基底型を持っています MISRA.BITS.NOT_UNSIGNED ビット演算のオペランドが符号なし整数ではありません MISRA.BITS.NOT_UNSIGNED.PREP ビット演算のオペランドが符号なし整数ではありません MISRA.CVALUE.IMPL.CAST.CPP 暗黙の型変換で符号、型サイズ、型の違いにより情報の損失を起こす記述があります。 MISRA.CONV.INT.SIGN 暗黙的な整数変換により符号が変わります MISRA.CONV.FLOAT 暗黙的な浮動小数点変換です MISRA.CONV.NUM.NARROWER 狭いタイプへの暗黙的な数値変換です MISRA.CAST.FLOAT_INT 整数型への浮動小数点式のキャスト MISRA.CAST.INT_FLOAT 浮動小数点タイプへの複合式のキャスト MISRA.CAST.FLOAT.WIDER より広い浮動小数点タイプへの浮動小数点式のキャスト MISRA.CAST.INT.WIDER より広い整数型への複合式のキャスト MISRA.CAST.INT.SIGN 自明ではない複合式が別の符号を持つ型にキャストされています MISRA.LOGIC.SIDEEFF 論理 'and' 式または論理 'or' 式の右側のオペランドは副作用があります MISRA.COMMA カンマ演算子が使用されています MISRA.COMP.WRAPAROUND 条件内でラップアラウンドしています MISRA.ELIF.WRAPAROUND #elif ディレクティブでラップアラウンドします MISRA.IF.WRAPAROUND #if ディレクティブでラップアラウンドします NUM.OVERFLOW.DF 起こり得る数値のオーバーフローまたはラップアラウンド MISRA.LOGIC.POSTFIX 論理 'and' 式または論理 'or' 式のオペランドが後置式ではありません MISRA.INCR_DECR.OTHER 増分または減分の演算子がその他の演算子と混合して式で使用されています MISRA.BIN_OP.OVERLOAD カンマ、|| または && 演算子が多重定義されています MISRA.FUNC.ARRAY.PARAMS 配列タイプの関数引数がポインタに減退しています MISRA.CAST.PTR.VRCLASS 仮想基本クラスを指すポインタから派生クラスを指すポインタへのキャストにおいて、'dynamic_cast' を用いていません MISRA.CAST.POLY.TYPE 多様性基本クラスから派生クラスへのキャストです MISRA.C_CAST 非 void タイプへの C スタイルのキャストです MISRA.FUNC_CAST 関数表記が明示的なコンストラクタ呼び出しとは異なるものにキャストされています MISRA.CAST.CONST キャスト演算により const または volatile がポインターまたは参照から除外されます。 MISRA.CAST.FUNC_PTR.CPP キャストにより関数ポインタがその他のポインタ型に変換されます MISRA.CAST.PTR.UNRELATED ポインタ型のオブジェクトを関連のない型にキャストしています MISRA.CAST.INT_TO_PTR 整数型または void を指すポインタを持つオブジェクトがポインタ型にキャストされています MISRA.CAST.PTR_TO_INT ポインタと整数型間のキャスト MISRA.LOGIC.NOT_BOOL 論理演算のオペランドがブール値ではありません MISRA.UMINUS.UNSIGNED 単項マイナス演算子が符号なしオペランドに対して使用されています。 MISRA.UN_OP.OVERLOAD 単項の & 演算子が多重定義されています MISRA.SIZEOF.SIDE_EFFECT sizeof のオペランドに副作用があります MISRA.SHIFT.RANGE シフト演算子の右側のオペランドは範囲外 (左側のオペランドの最大ビット長以上か、または負) です |
| Rule 6 | 必要(Required) |
MISRA.ASSIGN.COND 条件内で代入演算子が使用されています MISRA.ASSIGN.SUBEXPR 代入演算子は条件外の部分式に使用されています MISRA.FLOAT_EQUAL 浮動小数点式のイコールがテストされています MISRA.NULL.STMT 行上に NULL ステートメント以外のものがあるか、またはコメントが不適切な場所に記述されています MISRA.STMT.NO_COMPOUND switch、while、do/while または for ステートメントのボディが複合ステートメントではありません MISRA.IF.NO_COMPOUND if/else ステートメントのボディが複合ステートメントではありません MISRA.IF.NO_ELSE if/else-if ステートメントのチェインが else で終了していないか、または空の else 句で終了しています MISRA.SWITCH.NOT_WELL_FORMED switch ステートメントの形式が不適切です MISRA.SWITCH.LABEL switch のラベルが switch ボディ内の入れ子複合ステートメント内に置かれています MISRA.SWITCH.NO_BREAK switch 句の最後に break ステートメントまたは throw ステートメントがありません MISRA.SWITCH.NODEFAULT switch ステートメントの最後に default 句がありません MISRA.SWITCH.BOOL switch ステートメントの条件がブール式です MISRA.SWITCH.NO_CASE switch ステートメントに case 句がありません MISRA.FOR.COUNTER.FLT for ループのカウンターが浮動小数点タイプです MISRA.FOR.COUNTER.MANY for ループのカウンターが多すぎます MISRA.FOR.COND.EQ ループカウンターに対して++ 演算子または -- 演算子を使用していませんが、ループカウンターがイコールかどうかで判定しています MISRA.FOR.COND.CHANGE for ループのカウンターがループ条件セクション内で変更されています MISRA.FOR.STMT.CHANGE for ループのカウンターがループステートメント内で変更されています MISRA.FOR.INCR for ループのカウンターが不適切な方法で変更されています MISRA.FOR.LOOP_CONTROL.CHANGE.COND for ループの条件セクションでループ制御変数が変更されています MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR for ループの式セクションでループ制御変数が変更されています MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN ループ制御変数がブール値ではありません MISRA.GOTO.NESTED 入れ子複合ステートメント内で宣言されたラベルに goto しています MISRA.GOTO.AFTER.LABEL goto が制約なしで使用されています MISRA.CONTINUE.ILL continue ステートメントが不適切な形式の for ループで使用されています MISRA.ITER.ONETERM 反復ステートメントに複数の break または for ループ終端への複数の goto があります MISRA.RETURN.NOT_LAST 関数内で return が最後のステートメントになっていません |
| Rule 7 | 必要(Required) |
MISRA.VAR.NEEDS.CONST 変数は変更されませんが、const 修飾子なしで宣言されています MISRA.PPARAM.NEEDS.CONST ポインタパラメーターを使用しないでアドレスされたオブジェクトを変更していますが、const を指すポインタとして宣言されていません MISRA.NS.GLOBAL グローバル名前空間で関数、変数、または型が宣言されています MISRA.NS.GLOBAL.USING グローバル名前空間でのディレクティブまたは宣言の使用 MISRA.NS.MAIN 'main' の名前の付いた非グローバル関数が定義されています MISRA.NAMESPACE.UNMD ヘッダーファイルに名前のない名前空間があります MISRA.NS.USING_DIR ディレクティブを使用しています MISRA.NS.USING_DECL 同じ名前空間での識別子に対する複数宣言はその識別子の using 宣言にまたがってはいけません MISRA.NAMESPACE.DECL ヘッダーファイルに using 宣言があります MISRA.NAMESPACE.DIR ヘッダーファイルに using ディレクティブがあります MISRA.NS.USING.HEADER ヘッダーファイルでディレクティブまたは宣言が使用されています MISRA.PRAGMA.ASM 不正なアセンブラ命令です MISRA.ASM.ENCAPS アセンブリ言語が分離されていません LOCRET.RET 関数がローカル変数のアドレスを返しています LOCRET.ARG 関数がローカル変数のアドレスを返しています LOCRET.GLOB 関数がローカル変数のアドレスを返しています MISRA.ADDR.REF.PARAM 関数が参照渡しパラメーターへの参照を返しています MISRA.ADDR.REF.PARAM.PTR 関数が参照渡しパラメーターのアドレスを返しています MISRA.FUNC.RECUR 再帰関数 |
| Rule 8 | 必要(Required) |
MISRA.DECL.MANY_DCLS 1 つの宣言に複数の宣言子があります MISRA.SAME.DEFPARAMS オーバーライドする仮想関数とオーバーライドされる関数が異なるデフォルト引数を持っています MISRA.FUNC.VARARG 関数が可変数の引数を持っています MISRA.FUNC.PARAMS.IDENT 関数の宣言と定義で使用される識別子が一致していません FUNCRET.GEN 非 void 関数に戻り値がありません MISRA.FUNC.ADDR & 演算子なしで関数のアドレスが使用されています 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 未初期化の変数 MISRA.INIT.BRACES 不適切な初期化子が配置を固定しています MISRA.ENUM.INIT 1 番目以外の列挙子が明示的に初期化されていますが、一部の要素が明示的に初期化されていません |
| Rule 9 | 必要(Required) |
MISRA.CONST.RET.NON_CONST 定数のメンバー関数が非定数のポインタをメンバー変数に返しています MISRA.RET.REF.NON_CONST メンバー関数が非定数のハンドルをメンバー変数に返しています MISRA.MEMB.NON_CONST 非定数のメンバー関数はどのメンバー変数も変更しません MISRA.MEMB.NON_STATIC 非スタティックメンバー関数は同じクラスのその他の非スタティックメンバーを使用しません MISRA.UNION 和集合が使用されています MISRA.BITFIELD.TYPE.CPP ビットフィールドの型は、ブール、符号付き/符号なし整数のいずれでもありません MISRA.FIELD.BIT.ENUM ビットフィールドが列挙型を持っています MISRA.BITFIELD.SIGNED 名前付きの符号付きビットフィールドの長さが 2 未満です |
| Rule 10 | 推奨(Advisory) |
MISRA.DERIVE.VIRTUAL クラスが仮想基本クラスから派生しています MISRA.VIRTUAL.BASE.DIAMOND 基本クラスがダイヤモンド階層以外で仮想として使用されています MISRA.BASE.VIRTUAL.NOTVIRTUAL 基本クラスが継承階層で仮想および非仮想の両方で使用されています MISRA.BASE.IDS.UNIQUE 継承階層でメンバー名が 2 回使用されています MISRA.BASE.MANYDEFS オーバーライドする関数とオーバーライドされる仮想関数の両方で定義があります MISRA.VIRTUAL.NOVIRTUAL オーバーライドする仮想関数が 'virtual' キーワードなしで宣言されています MISRA.PUREVIRT.OVRD 純粋な仮想関数が純粋でない仮想関数をオーバーライドしています |
| Rule 11 | 必要(Required) |
MISRA.MEMB.NOT_PRIVATE 非 POD クラスのメンバー変数がプライベートではありません |
| Rule 12 | 必要(Required) |
MISRA.CTOR.DYNAMIC オブジェクトの動的タイプがそのコンストラクタのボディから使用されています MISRA.DTOR.DYNAMIC オブジェクトの動的タイプがそのデストラクタのボディから使用されています MISRA.CTOR.BASE コンストラクタがその基本クラスのコンストラクタを明示的に呼び出していません MISRA.CTOR.NOT_EXPLICIT 組み込み型の引数を持つコンストラクタが '明示的に' 宣言されていません MISRA.COPYASSIGN.ABSTRACT コピー代入は保護するか、または抽象クラスでプライベートにして宣言する必要があります |
| Rule 14 | 必要(Required) |
MISRA.GENFU.ASSOC 汎用関数が関連付けられた名前空間で宣言されています MISRA.COPY.CSTR.TMPL クラスには、単一の汎用パラメーターを持つテンプレートコンストラクタがありますが、コピーコンストラクタが定義されていません MISRA.COPYASSIGN.TMPL コピー代入演算子は、単一の汎用パラメーターを持つテンプレートコピー代入演算子をクラスに持たせるときに定義する必要があります MISRA.TEMPLMEM.NOQUAL インスタンス化されたテンプレートで、依存基本クラスで宣言されたメンバーが修飾子または 'this' なしで使用されています MISRA.FUNC.DECL.AFTERUSE テンプレートをインスタンス化するときに多重定義解決によって選択される関数が、その使用後に定義されています MISRA.SPEC.ILL テンプレートの明示的なインスタンス化により、コードの形式が損なわれます MISRA.SPEC.SAMEFILE テンプレート特殊化とその基本テンプレートが別々のファイルで宣言されています MISRA.FUNC.SPEC.OVRLD 関数呼び出し用の実行可能関数に多重定義されたテンプレートとその明示的な特殊化が含まれています MISRA.FUNC.SPEC.NOTSPEC 関数呼び出し用の実行可能関数に特殊化と非特殊化の両方が含まれています |
| Rule 15 | 推奨(Advisory) |
MISRA.THROW.PTR 例外オブジェクトがポインタになっています MISRA.TRY.JUMP goto ステートメントまたは switch ステートメントでコントロールを try ブロックに転送できます MISRA.THROW.NULL NULL が明示的にスローされています MISRA.THROW.EMPTY 空のスロー式が catch ブロックに属していません MISRA.CATCH.ALL try-catch ブロックに省略記号例外ハンドラーがありません MISRA.CTOR.TRY.NON_STATIC コンストラクタまたはデストラクタの関数 try-catch ブロックが非スタティックなメンバーを参照しています MISRA.CATCH.BY_VALUE クラス タイプの例外オブジェクトが値によってキャッチされています MISRA.CATCH.WRONGORD try-catch ブロックで基本例外クラスのハンドラーが派生例外クラスのハンドラーよりも先に置かれています MISRA.CATCH.NOALL 省略記号例外ハンドラーが try-catch ブロックの最後に置かれていません MISRA.DECL.EXCPT.SPEC 異なる例外指定で関数が宣言されています MISRA.DTOR.THROW デストラクタにスローします MISRA.TERMINATE terminate() 関数が明示的に呼び出されています |
| Rule 16 | 必要(Required) |
MISRA.INCL.INSIDE include ディレクティブの前にプリプロセッサ出力トークンがあります MISRA.DEFINE.NOTGLOBAL グローバルレベル以外で定義されています MISRA.UNDEF.NOTGLOBAL グローバルレベル以外で定義されていません MISRA.UNDEF 定義のない使用です MISRA.DEFINE.FUNC マクロが関数のように定義されています MISRA.EXPANSION.DIRECTIVE マクロの引数内にディレクティブのようなトークンがあります MISRA.DEFINE.NOPARS マクロパラメーターに括弧がありません MISRA.ELIF.UNDEF #elif ディレクティブでマクロが定義されていません MISRA.IF.UNDEF #if ディレクティブでマクロが定義されていません MISRA.USE.UNKNOWNDIR 不明なプリプロセッサディレクティブが使用されています MISRA.ELIF.DEFINED #elif ディレクティブで不正な 'defined' が使用されています MISRA.IF.DEFINED #if ディレクティブで不正な 'defined' が使用されています MISRA.ELIF.OTHERFILE 不適切なファイルでの #elif MISRA.ELSE.OTHERFILE 不適切なファイルでの #else MISRA.ENDIF.OTHERFILE 不適切なファイルでの #endif MISRA.USE.DEFINE マクロが保護されずに定義されています MISRA.USE.EXPANSION マクロの展開 MISRA.USE.WRONGDIR 不適切なプリプロセッサディレクティブです MISRA.DEFINE.BADEXP.CPP C++ ソースで不適切なマクロ展開です MISRA.INCGUARD インクルードガードが入力されていません MISRA.INCL.SYMS ヘッダーファイル名に非標準文字が使用されています MISRA.INCL.BAD 非標準の include ディレクティブです MISRA.DEFINE.SHARP.MANY マクロ定義に # 演算子または ## 演算子がいくつか使用されています MISRA.DEFINE.SHARP マクロ定義に # 演算子または ## 演算子が使用されています MISRA.PRAGMA ドキュメントにない pragma ディレクティブです |
| Rule 17 | 必要(Required) |
MISRA.DEFINE.WRONGNAME 標準ライブラリからの名前がマクロ名に使用されています MISRA.DEFINE.WRONGNAME.UNDERSCORE 予約名がマクロ名に使用されています MISRA.UNDEF.WRONGNAME 標準ライブラリからの名前が定義されていません MISRA.UNDEF.WRONGNAME.UNDERSCORE 予約名が定義されていません MISRA.STDLIB.WRONGNAME 標準ライブラリのマクロ、オブジェクトまたは関数の名前が再使用されています MISRA.STDLIB.WRONGNAME.UNDERSCORE 予約名が言語エンティティの名前に使用されています MISRA.EXPANSION.UNSAFE 安全ではないマクロの使用 MISRA.STDLIB.LONGJMP setjmp マクロまたは longjmp 関数の使用 |
| Rule 18 | 必要(Required) |
MISRA.EXPANSION.UNSAFE 安全ではないマクロの使用 MISRA.INCL.UNSAFE 安全でないヘッダーのインクルード MISRA.STDLIB.ATOI ライブラリ stdlib.h から 'atof'、'atoi' または 'atol' が使用されています MISRA.STDLIB.ABORT ライブラリ stdlib.h から 'abort'、'exit'、'getenv' または 'system' が使用されています MISRA.STDLIB.TIME ライブラリ time.h の時間処理関数の使用 MISRA.STDLIB.CSTRING 'cstring' ライブラリからの関数が使用されています MISRA.STDLIB.CSTRING.MACRO 'cstring' ライブラリからのマクロが使用されています MISRA.STDLIB.MEMORY 動的ヒープメモリ割り当ての使用 MISRA.STDLIB.SIGNAL signal.h の信号処理装置の使用 |
| Rule 19 | 必要(Required) |
MISRA.EXPANSION.UNSAFE 安全ではないマクロの使用 MISRA.STDLIB.ERRNO エラーインジケーター 'errno' が使用されています |
| Rule 27 | 必要(Required) |
MISRA.INCL.UNSAFE 安全でないヘッダーのインクルード MISRA.STDLIB.STDIO プロダクションコードで入力/出力ライブラリ stdio.h が使用されています |
サポートのサマリー
サポート対象合計: 196
静的に検証不可能な規則の合計: 12
サポートされていない静的に検証可能な規則の合計: 20
MISRA C++ のカバー率: 91% (静的に検証不可能な規則を除く)
"MISRA"、"MISRA C" および、"MISRA C++" は、The MISRA Consortium Limited の登録商標です。