MISRA C++:2023 規則

ガイドライン カテゴリ チェッカー名および説明
Dir. 0.3.1 必要(Required)

Dir. 0.3.2 必要(Required)

Dir. 5.7.2 必要(Required)

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

Dir. 15.8.1 必要(Required)

CL.SELF-ASSIGN  解放済みメモリの使用 (二重解放) - operator=

Rule 0.0.1 必要(Required)

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

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

UNREACH.SIZEOF  アーキテクチャに関連した到達不能コード

Rule 0.0.2 推奨(Advisory)

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

Rule 0.1.1 推奨(Advisory)

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

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

Rule 0.1.2 必要(Required)

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

Rule 0.2.1 推奨(Advisory)

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

Rule 0.2.2 必要(Required)

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

Rule 0.2.3 必要(Required)

Rule 0.2.4 推奨(Advisory)

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

Rule 4.1.1 必要(Required)

Rule 4.1.2 推奨(Advisory)

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

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

Rule 4.1.3 必要(Required)

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

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

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

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

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

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

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

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

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

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

Rule 4.6.1 必要(Required)

Rule 5.0.1 必要(Required)

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

Rule 5.7.1 必要(Required)

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

Rule 5.7.3 必要(Required)

Rule 5.10.1 必要(Required)

Rule 5.13.1 必要(Required)

Rule 5.13.2 必要(Required)

Rule 5.13.3 必要(Required)

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

Rule 5.13.4 必要(Required)

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

Rule 5.13.5 必要(Required)

Rule 5.13.6 必要(Required)

Rule 5.13.7 必要(Required)

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

Rule 6.0.1 必要(Required)

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

Rule 6.0.2 推奨(Advisory)

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

Rule 6.0.3 推奨(Advisory)

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

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

Rule 6.0.4 必要(Required)

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

Rule 6.2.1 必要(Required)

Rule 6.2.2 必要(Required)

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

Rule 6.2.3 必要(Required)

Rule 6.2.4 必要(Required)

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

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

Rule 6.4.1 必要(Required)

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

Rule 6.4.2 必要(Required)

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

Rule 6.4.3 必要(Required)

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

Rule 6.5.1 推奨(Advisory)

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

Rule 6.5.2 推奨(Advisory)

Rule 6.7.1 必要(Required)

Rule 6.7.2 必要(Required)

Rule 6.8.1 必要(Required)

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

UFM.DEREF.MUST  解放済みメモリの逆参照

UFM.FFM.MIGHT  解放済みメモリの使用 (二重解放)の可能性

UFM.FFM.MUST  解放済みメモリの解放

UFM.RETURN.MIGHT  解放済みメモリの戻り値への使用の可能性

UFM.RETURN.MUST  解放済みメモリの戻り値への使用

UFM.USE.MIGHT  解放済みメモリの使用の可能性

UFM.USE.MUST  解放済みメモリの使用

Rule 6.8.2 必須(Mandatory)

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

Rule 6.8.3 必要(Required)

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

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

Rule 6.8.4 推奨(Advisory)

Rule 6.9.1 必要(Required)

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

Rule 6.9.2 推奨(Advisory)

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

Rule 7.0.1 必要(Required)

CXX.BITOP.BOOL_OPERAND  潜在的な論理エラー: ブール式をビット演算子の引数として直接使用してはなりません。代わりに論理演算子の使用を検討してください。

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

Rule 7.0.2 必要(Required)

PORTING.CMPSPEC.TYPE.BOOL  'bool' 型への割り当てが 1 バイトより大きくなっています

Rule 7.0.3 必要(Required)

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

Rule 7.0.4 必要(Required)

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

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

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

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

Rule 7.0.5 必要(Required)

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

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

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

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

Rule 7.0.6 必要(Required)

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

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

Rule 7.11.1 必要(Required)

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

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

Rule 7.11.2 必要(Required)

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

Rule 7.11.3 必要(Required)

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

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

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

Rule 8.0.1 推奨(Advisory)

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

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

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

Rule 8.1.1 必要(Required)

Rule 8.1.2 推奨(Advisory)

AUTOSAR.LAMBDA.IMPLICIT_CAPTURE  変数はラムダ式で暗黙的にキャプチャしてはなりません

Rule 8.2.1 必要(Required)

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

Rule 8.2.2 必要(Required)

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

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

Rule 8.2.3 必要(Required)

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

Rule 8.2.4 必要(Required)

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

Rule 8.2.5 必要(Required)

AUTOSAR.CAST.REINTERPRET  reinterpret_cast は使用してはなりません

Rule 8.2.6 必要(Required)

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

Rule 8.2.7 推奨(Advisory)

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

Rule 8.2.8 必要(Required)

Rule 8.2.9 必要(Required)

Rule 8.2.10 必要(Required)

MISRA.FUNC.RECUR  再帰関数

Rule 8.2.11 必要(Required)

Rule 8.3.1 推奨(Advisory)

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

Rule 8.3.2 推奨(Advisory)

Rule 8.7.1 必要(Required)

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

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

Rule 8.7.2 必要(Required)

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

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

Rule 8.9.1 必要(Required)

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

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

Rule 8.14.1 推奨(Advisory)

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

Rule 8.18.1 必須(Mandatory)

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

Rule 8.18.2 推奨(Advisory)

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

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

Rule 8.19.1 推奨(Advisory)

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

Rule 8.20.1 推奨(Advisory)

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

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

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

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

Rule 9.2.1 必要(Required)

Rule 9.3.1 必要(Required)

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

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

Rule 9.4.1 必要(Required)

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

Rule 9.4.2 必要(Required)

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

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

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

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

Rule 9.5.1 推奨(Advisory)

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

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

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

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

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

Rule 9.5.2 必要(Required)

Rule 9.6.1 推奨(Advisory)

AUTOSAR.GOTO  goto ステートメントは使用してはなりません

Rule 9.6.2 必要(Required)

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

Rule 9.6.3 必要(Required)

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

Rule 9.6.4 必要(Required)

Rule 9.6.5 必要(Required)

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

RETVOID.GEN  非 void 関数が void 値を返しています

Rule 10.0.1 推奨(Advisory)

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

Rule 10.1.1 推奨(Advisory)

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

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

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

Rule 10.1.2 必要(Required)

CERT.EXPR.VOLATILE.ADDR.PARAM  非 volatile ポインタを介して volatile オブジェクトを関数に渡さないでください

Rule 10.2.1 必要(Required)

Rule 10.2.2 推奨(Advisory)

Rule 10.2.3 必要(Required)

Rule 10.3.1 推奨(Advisory)

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

Rule 10.4.1 必要(Required)

AUTOSAR.ASM  asm 宣言は使用してはなりません

Rule 11.3.1 推奨(Advisory)

AUTOSAR.ARRAY.CSTYLE  C スタイルの配列は使用してはなりません

Rule 11.3.2 推奨(Advisory)

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

Rule 11.6.1 推奨(Advisory)

Rule 11.6.2 必須(Mandatory)

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 11.6.3 必要(Required)

MISRA.ENUM.IMPLICIT.VAL.NON_UNIQUE.2012  暗黙的列挙子値は一意ではありません

Rule 12.2.1 推奨(Advisory)

Rule 12.2.2 必要(Required)

Rule 12.2.3 必要(Required)

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

Rule 12.3.1 必要(Required)

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

Rule 13.1.1 推奨(Advisory)

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

Rule 13.1.2 必要(Required)

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

Rule 13.3.1 必要(Required)

AUTOSAR.MEMB.VIRTUAL.SPEC  仮想関数宣言には 3 つの指定子 (1) virtual、(2) override、(3) final の内の 1 つのみが含まれていなければなりません

Rule 13.3.2 必要(Required)

Rule 13.3.3 必要(Required)

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

Rule 13.3.4 必要(Required)

AUTOSAR.VIRTUAL.PTR_COMPARE  メンバー仮想関数を指すポインターのテストは、null ポインター定数との等価を確認する目的でのみ行う必要があります

Rule 14.1.1 推奨(Advisory)

Rule 15.0.1 必要(Required)

Rule 15.0.2 推奨(Advisory)

Rule 15.1.1 必要(Required)

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

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

Rule 15.1.2 推奨(Advisory)

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

Rule 15.1.3 必要(Required)

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

Rule 15.1.4 推奨(Advisory)

Rule 15.1.5 必要(Required)

Rule 16.5.1 必要(Required)

Rule 16.5.2 必要(Required)

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

Rule 16.6.1 推奨(Advisory)

Rule 17.8.1 必要(Required)

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

Rule 18.1.1 必要(Required)

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

Rule 18.1.2 必要(Required)

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

Rule 18.3.1 推奨(Advisory)

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

Rule 18.3.2 必要(Required)

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

Rule 18.3.3 必要(Required)

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

Rule 18.4.1 必要(Required)

Rule 18.5.1 推奨(Advisory)

AUTOSAR.EXCPT.NOEXCPT_THROW  関数を noexcept、noexcept(true)、または noexcept(<true condition>) と宣言する場合、その関数は例外を送出して終了してはなりません

Rule 18.5.2 推奨(Advisory)

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

Rule 19.0.1 必要(Required)

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

Rule 19.0.2 必要(Required)

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

Rule 19.0.3 推奨(Advisory)

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

Rule 19.0.4 推奨(Advisory)

Rule 19.1.1 必要(Required)

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

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

Rule 19.1.2 必要(Required)

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

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

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

Rule 19.1.3 必要(Required)

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

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

Rule 19.2.1 必要(Required)

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

Rule 19.2.2 必要(Required)

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

Rule 19.2.3 必要(Required)

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

Rule 19.3.1 推奨(Advisory)

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

Rule 19.3.2 必要(Required)

MISRA.DEFINE.SHARP.ORDER.2012  複数の '#' または '##' の評価の順番が指定されていません

Rule 19.3.3 必要(Required)

MISRA.DEFINE.SHARP.REPLACE.2012  それ自身さらなるマクロ置換の影響を受ける、'#' または '##' 演算子のオペランドとして使用されるマクロパラメーターは、これらの演算子のオペランドとしてのみ使用される。

Rule 19.3.4 必要(Required)

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

Rule 19.3.5 必要(Required)

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

Rule 19.6.1 推奨(Advisory)

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

PORTING.PRAGMA.ALIGN  #pragma align の使用法

PORTING.PRAGMA.PACK  #pragma pack の使用法

Rule 21.2.1 必要(Required)

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

Rule 21.2.2 必要(Required)

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

Rule 21.2.3 必要(Required)

MISRA.STDLIB.SYSTEM.2012_AMD2  ライブラリ stdlib.h からの 'system' の使用

Rule 21.2.4 必要(Required)

Rule 21.6.1 推奨(Advisory)

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

Rule 21.6.2 必要(Required)

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

Rule 21.6.3 必要(Required)

Rule 21.6.4 必要(Required)

AUTOSAR.OP.DELETE.MISSING_VERSION  プロジェクトにサイズ指定付きまたはサイズ指定なしの演算子 "delete" がグローバルに定義されている場合は、サイズ指定付きとサイズ指定なしの両方を定義する必要があります

Rule 21.6.5 必要(Required)

CERT.EXPR.DELETE_PTR.INCOMPLETE_TYPE  不完全な型へのポインターを削除しないでください

Rule 21.10.1 必要(Required)

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

Rule 21.10.2 必要(Required)

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

Rule 21.10.3 必要(Required)

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

Rule 22.3.1 必要(Required)

Rule 22.4.1 必要(Required)

Rule 23.11.1 推奨(Advisory)

Rule 24.5.1 必要(Required)

Rule 24.5.2 必要(Required)

Rule 25.5.1 必要(Required)

AUTOSAR.SETLOCALE  ライブラリ <clocale> (locale.h) と setlocale 関数は使用してはなりません

Rule 25.5.2 必須(Mandatory)

CXX.STDLIB.ILLEGAL_WRITE  標準ライブラリ関数 localeconv、getenv、setlocale、または strerror が返すポインターは、必ずそれらが const-qualified 型を指すポインターを持つかのように使用する必要があります。

Rule 25.5.3 必須(Mandatory)

CXX.STDLIB.ILLEGAL_REUSE  標準ライブラリ関数 asctime または同様の関数によって返されるポインタは、同じ関数の後続の呼び出しに続いては使用しません

Rule 26.3.1 推奨(Advisory)

AUTOSAR.VECTOR.BOOL  std::vector<bool> の特殊化は使用してはなりません

Rule 28.3.1 必要(Required)

Rule 28.6.1 必要(Required)

AUTOSAR.STDLIB.MOVE.CONST  const または const& と宣言されたオブジェクトで std::move を使用してはなりません

Rule 28.6.2 必要(Required)

AUTOSAR.FORWARD  他の関数への値の転送は、(1) std::move (値が r 値参照の場合) か (2) std::forward (値が前方参照の場合) を使用して行う必要があります

Rule 28.6.3 必要(Required)

Rule 28.6.4 必要(Required)

Rule 30.0.1 必要(Required)

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

Rule 30.0.2 必要(Required)

サポートのサマリー

サポート対象合計: 125

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

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

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

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