AUTOSAR 18-10: C and C++

You can use the AUTOSAR C++14 taxonomy to ensure compliance with the AUTOSAR C++14 Standard, release 18-10. The AUTOSAR C++14 (18-10) taxonomy detects violations of our both our Klocwork C/C++ checkers and our MISRA checkers.

Rule Checker name and description
"

MISRA.INCL.SYMS  Non-standard characters in header file names

#elif and #endif pre-processor directives shall reside in the same file as the #if or #ifdef directive to which they are related.

MISRA.ELIF.OTHERFILE  #elif in an improper file

MISRA.ELSE.OTHERFILE  #else in an improper file

MISRA.ENDIF.OTHERFILE  #endif in an improper file

&& operator and the || operator shall not be overloaded.

MISRA.BIN_OP.OVERLOAD  Comma, || or && operator overloaded

(2) for hexadecimal

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

(2) override

AUTOSAR.MEMB.VIRTUAL.SPEC  Virtual function declaration shall contain exactly one of the three specifiers: (1) virtual, (2) override, (3) final.

(2) std::forward if the value is forwarding reference.

AUTOSAR.FORWARD  Forwarding values to other functions shall be done via: (1) std::move if the value is an rvalue reference, (2) std::forward if the value is forwarding reference

(2) the first or (3) all enumerators shall be initialized.

MISRA.ENUM.INIT  Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized.

(3) final.

AUTOSAR.MEMB.VIRTUAL.SPEC  Virtual function declaration shall contain exactly one of the three specifiers: (1) virtual, (2) override, (3) final.

(3) for binary

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

++

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

/*

MISRA.INCL.SYMS  Non-standard characters in header file names

//

MISRA.INCL.SYMS  Non-standard characters in header file names

<

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

> or >=.

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

A0-1-2 (Required): The value returned by a function having a non-void return type that is not an overloaded operator shall be used.

MISRA.FUNC.UNUSEDRET  Return value of a non-void function is not used

A0-1-2 (req.)

MISRA.FUNC.UNUSEDRET  Return value of a non-void function is not used

A0-1-2 (必要): オーバーロードされた演算子ではない非 void 戻り値型を持つ関数によって返される値を使用する必要があります。

MISRA.FUNC.UNUSEDRET  Return value of a non-void function is not used

A0-1-4 (Required): There shall be no unused named parameters in non-virtual functions.

MISRA.FUNC.UNUSEDPAR  Formal parameter of a non-virtual function is not used

A0-1-4 (req.)

MISRA.FUNC.UNUSEDPAR  Formal parameter of a non-virtual function is not used

A0-1-4 (必要): 非仮想関数に未使用の名前なしパラメーターがあってはなりません。

MISRA.FUNC.UNUSEDPAR  Formal parameter of a non-virtual function is not used

A0-1-5 (Required): There shall be no unused named parameters in the set of parameters for a virtual function and all the functions that override it.

MISRA.FUNC.VIRTUAL.UNUSEDPAR  Formal parameter of a virtual function set is not used

A0-1-5 (req.)

MISRA.FUNC.VIRTUAL.UNUSEDPAR  Formal parameter of a virtual function set is not used

A0-1-5 (必要): 仮想関数およびそれをオーバーライドするすべての関数のパラメータセットには、未使用の名前なしパラメーターがあってはなりません。

MISRA.FUNC.VIRTUAL.UNUSEDPAR  Formal parameter of a virtual function set is not used

A0-4-2 (Required): Type long double shall not be used.

AUTOSAR.TYPE.LONG_DOUBLE  Type long double shall not be used

A0-4-2 (req.)

AUTOSAR.TYPE.LONG_DOUBLE  Type long double shall not be used

A0-4-2 (必要): long double 型は使用してはなりません。

AUTOSAR.TYPE.LONG_DOUBLE  Type long double shall not be used

A2-5-1 (Required): Trigraphs shall not be used.

MISRA.CHAR.TRIGRAPH  Trigraph usage

A2-5-1 (req.)

MISRA.CHAR.TRIGRAPH  Trigraph usage

A2-5-1 (必要): 3 文字表記は使用してはなりません。

MISRA.CHAR.TRIGRAPH  Trigraph usage

A2-5-2 (Required): Digraphs shall not be used.

MISRA.CHAR.DIGRAPH  Digraph usage

A2-5-2 (req.)

MISRA.CHAR.DIGRAPH  Digraph usage

A2-5-2 (必要): 2 文字表記は使用してはなりません。

MISRA.CHAR.DIGRAPH  Digraph usage

A2-7-2 (Required): Sections of code shall not be “commented out”.

MISRA.TOKEN.COMMENTED.CODE  Comment appears to contain commented out source code

A2-7-2 (req.)

MISRA.TOKEN.COMMENTED.CODE  Comment appears to contain commented out source code

A2-7-2 (必要): コードのセクションは「コメントアウト」してはなりません。

MISRA.TOKEN.COMMENTED.CODE  Comment appears to contain commented out source code

A2-10-5 (Advisory): An identifier name of a function with static storage duration or a non-member object with external or internal linkage should not be reused.

MISRA.VAR.UNIQUE.STATIC  Identifier with static storage specifier clashes with other identifier

A2-10-5 (adv.)

MISRA.VAR.UNIQUE.STATIC  Identifier with static storage specifier clashes with other identifier

A2-10-5 (推奨): 静的記憶期間を持つ関数、または外部もしくは内部リンクを持つ非メンバーオブジェクトの識別子名は、再利用してはなりません。

MISRA.VAR.UNIQUE.STATIC  Identifier with static storage specifier clashes with other identifier

A2-10-6 (Required): A class or enumeration name shall not be hidden by a variable

MISRA.TYPE.NAMECLASH.CPP.2008  Identifier in one name space has same spelling as identifier in other name space

A2-10-6 (req.)

MISRA.TYPE.NAMECLASH.CPP.2008  Identifier in one name space has same spelling as identifier in other name space

A2-10-6 (必要): クラス名または列挙名は、同じスコープ内の変数、関数、または列挙子の宣言によって隠蔽されてはなりません。

MISRA.TYPE.NAMECLASH.CPP.2008  Identifier in one name space has same spelling as identifier in other name space

A2-11-1 (Required): Volatile keyword shall not be used.

AUTOSAR.TYPE.QUAL.VOLATILE  The volatile type qualifier shall not be used

A2-11-1 (req.)

AUTOSAR.TYPE.QUAL.VOLATILE  The volatile type qualifier shall not be used

A2-11-1 (必要): Volatile キーワードを使用してはなりません。

AUTOSAR.TYPE.QUAL.VOLATILE  The volatile type qualifier shall not be used

A2-13-1 (Required): Only those escape sequences that are defined in ISO/IEC 14882:2014 shall be used.

MISRA.TOKEN.WRONGESC.CPP.2008  Incorrect escape sequence in a literal

A2-13-1 (req.)

MISRA.TOKEN.WRONGESC.CPP.2008  Incorrect escape sequence in a literal

A2-13-1 (必要): ISO/IEC 14882:2014 で定義されているエスケープシーケンスのみを使用する必要があります。

MISRA.TOKEN.WRONGESC.CPP.2008  Incorrect escape sequence in a literal

A2-13-3 (Required): Type wchar_t shall not be used.

AUTOSAR.TYPE.WCHAR_T  Type wchar_t shall not be used

A2-13-3 (req.)

AUTOSAR.TYPE.WCHAR_T  Type wchar_t shall not be used

A2-13-3 (必要): wchar_t 型は使用してはなりません。

AUTOSAR.TYPE.WCHAR_T  Type wchar_t shall not be used

A2-13-4 (Required): String literals shall not be assigned to non-constant pointers.

AUTOSAR.ADD.STR.TO.NON.CONST  String literals shall not be assigned to non-constant pointers

A2-13-4 (req.)

AUTOSAR.ADD.STR.TO.NON.CONST  String literals shall not be assigned to non-constant pointers

A2-13-4 (必要): 文字列リテラルを非定数ポインターに割り当ててはなりません。

AUTOSAR.ADD.STR.TO.NON.CONST  String literals shall not be assigned to non-constant pointers

A2-13-5 (Advisory): Hexadecimal constants should be upper case.

AUTOSAR.HEX.UPPER  Hexadecimal constants should be upper case

A2-13-5 (adv.)

AUTOSAR.HEX.UPPER  Hexadecimal constants should be upper case

A2-13-5 (推奨): 16 進定数は大文字で記述する必要があります。

AUTOSAR.HEX.UPPER  Hexadecimal constants should be upper case

A3-1-1 (Required): It shall be possible to include any header file in multiple translation units without violating the One Definition Rule.

AUTOSAR.ADD.ONEDEFRULE.FUNC  Function is violating one definition rule

AUTOSAR.ADD.ONEDEFRULE.VAR  Variable is violating one definition rule

A3-1-1 (req.)

AUTOSAR.ADD.ONEDEFRULE.FUNC  Function is violating one definition rule

AUTOSAR.ADD.ONEDEFRULE.VAR  Variable is violating one definition rule

A3-1-1 (必要): One Definition Rule に違反せずに任意のヘッダーファイルを複数の翻訳単位に含めることが可能でなければなりません。

AUTOSAR.ADD.ONEDEFRULE.FUNC  Function is violating one definition rule

AUTOSAR.ADD.ONEDEFRULE.VAR  Variable is violating one definition rule

A3-1-3 (Advisory): Implementation files

AUTOSAR.ADD.FILE.EXT  Local implementation files not having .cpp file extension

A3-1-3 (adv.)

AUTOSAR.ADD.FILE.EXT  Local implementation files not having .cpp file extension

A3-1-3 (推奨): プロジェクト内でローカルに定義される実装ファイルのファイル名拡張子は「.cpp」でなければなりません。

AUTOSAR.ADD.FILE.EXT  Local implementation files not having .cpp file extension

A3-1-4 (Required): When an array with external linkage is declared

MISRA.DECL.ARRAY_SIZE  Declaration of array with unknown size

A3-1-4 (req.)

MISRA.DECL.ARRAY_SIZE  Declaration of array with unknown size

A3-1-4 (必要): 外部リンクを持つ配列を宣言する場合は、そのサイズを明示的に指定しなければなりません。

MISRA.DECL.ARRAY_SIZE  Declaration of array with unknown size

A3-1-5 (Required): A function definition shall only be placed in a class definition if (1) the function is intended to be inlined (2) it is a member function template (3) it is a member function of a class template.

AUTOSAR.FUNC.INLINE_DEF  A function definition shall only be placed in a class definition if (1) the function is intended to be inlined (2); it is a member function template; (3) it is a member function of a class template

A3-1-5 (req.)

AUTOSAR.FUNC.INLINE_DEF  A function definition shall only be placed in a class definition if (1) the function is intended to be inlined (2); it is a member function template; (3) it is a member function of a class template

A3-1-5 (必要): 関数定義をクラス定義内に配置できるのは、(1) その関数がインライン化される予定であるか、(2) それがメンバー関数テンプレートであるか、(3) それがクラステンプレートのメンバー関数である場合のみです。

AUTOSAR.FUNC.INLINE_DEF  A function definition shall only be placed in a class definition if (1) the function is intended to be inlined (2); it is a member function template; (3) it is a member function of a class template

A3-3-1 (Required): Objects or functions with external linkage (including members of named namespaces) shall be declared in a header file.

MISRA.LINKAGE.EXTERN  Object or function declaration with external linkage not in header file

A3-3-1 (req.)

MISRA.LINKAGE.EXTERN  Object or function declaration with external linkage not in header file

A3-3-1 (必要): 外部リンク (名前付き名前空間のメンバーを含む) を持つオブジェクトまたは関数は、ヘッダーファイル内で宣言しなければなりません。

MISRA.LINKAGE.EXTERN  Object or function declaration with external linkage not in header file

A3-9-1 (Required): Fixed width integer types from <cstdint>

AUTOSAR.BUILTIN_NUMERIC  Fixed width integer types from <cstdint> shall be used in place of the basic numerical types

A3-9-1 (req.)

AUTOSAR.BUILTIN_NUMERIC  Fixed width integer types from <cstdint> shall be used in place of the basic numerical types

A3-9-1 (必要): 基本的な数値型の代わりに、サイズと符号を示す、<cstdint> で提供される固定幅の整数型を使用しなければなりません。

AUTOSAR.BUILTIN_NUMERIC  Fixed width integer types from <cstdint> shall be used in place of the basic numerical types

A4-5-1 (Required): Expressions with type enum or enum class shall not be used as operands to built-in and overloaded operators.

AUTOSAR.ADD.ENUM.OP  Enum shall not be used in arithmetic context

A4-5-1 (req.)

AUTOSAR.ADD.ENUM.OP  Enum shall not be used in arithmetic context

A4-5-1 (必要): enum または enum class 型の式は、組み込み演算子およびオーバーロードされる演算子のオペランドとして使用してはなりません。

AUTOSAR.ADD.ENUM.OP  Enum shall not be used in arithmetic context

A4-10-1 (Required): Only nullptr literal shall be used as the null-pointer-constant.

AUTOSAR.ADD.NULLPTR  Only nullptr literal shall be used as the null-pointer-constant

A4-10-1 (req.)

AUTOSAR.ADD.NULLPTR  Only nullptr literal shall be used as the null-pointer-constant

A4-10-1 (必要): nullptr リテラルのみを null ポインター定数として使用しなければなりません。

AUTOSAR.ADD.NULLPTR  Only nullptr literal shall be used as the null-pointer-constant

A5-0-1 (Required): The value of an expression shall be the same under any order of evaluation that the standard permits.

AUTOSAR.ADD.EXPR.EVAL.MULTI.CALL  The value of an expression shall be the same under any order of evaluation that the standard permits

AUTOSAR.ADD.EXPR.EVAL.VOLATILE  The value of an expression shall be the same under any order of evaluation that the standard permits

A5-0-1 (req.)

AUTOSAR.ADD.EXPR.EVAL.MULTI.CALL  The value of an expression shall be the same under any order of evaluation that the standard permits

AUTOSAR.ADD.EXPR.EVAL.VOLATILE  The value of an expression shall be the same under any order of evaluation that the standard permits

A5-0-1 (必要): 式の値は、標準で許可されている評価順序に関係なく同じでなければなりません。

AUTOSAR.ADD.EXPR.EVAL.MULTI.CALL  The value of an expression shall be the same under any order of evaluation that the standard permits

AUTOSAR.ADD.EXPR.EVAL.VOLATILE  The value of an expression shall be the same under any order of evaluation that the standard permits

A5-0-2 (Required): The condition of an if-statement and the condition of an iteration statement shall have type bool.

AUTOSAR.ADD.COND.NOT.BOOL  The condition of an if-statement and iteration statement shall have type bool

AUTOSAR.ADD.LOGIC.NOT_BOOL  The condition of an if-statement and iteration statement shall have type bool

A5-0-2 (req.)

AUTOSAR.ADD.COND.NOT.BOOL  The condition of an if-statement and iteration statement shall have type bool

AUTOSAR.ADD.LOGIC.NOT_BOOL  The condition of an if-statement and iteration statement shall have type bool

A5-0-2 (必要): if ステートメントおよび反復ステートメントの条件は bool 型でなければなりません。

AUTOSAR.ADD.COND.NOT.BOOL  The condition of an if-statement and iteration statement shall have type bool

AUTOSAR.ADD.LOGIC.NOT_BOOL  The condition of an if-statement and iteration statement shall have type bool

A5-0-3 (Required): The declaration of objects shall contain no more than two levels of pointer indirection.

MISRA.PTR.TO_PTR_TO_PTR  Pointer declaration has more than two levels of indirection

A5-0-3 (req.)

MISRA.PTR.TO_PTR_TO_PTR  Pointer declaration has more than two levels of indirection

A5-0-3 (必要): オブジェクトの宣言には、2 レベルを超えるポインター間接参照を含めないでください。

MISRA.PTR.TO_PTR_TO_PTR  Pointer declaration has more than two levels of indirection

A5-1-1 (Required): Literal values shall not be used apart from type initialization

AUTOSAR.ADD.LITERAL  Literal values shall not be used apart from type initialization

A5-1-1 (req.)

AUTOSAR.ADD.LITERAL  Literal values shall not be used apart from type initialization

A5-1-1 (必要): リテラル値は、型の初期化以外では使用してはなりません。もしくは、代わりにシンボリック名を使用してください。

AUTOSAR.ADD.LITERAL  Literal values shall not be used apart from type initialization

A5-1-2 (Required): Variables shall not be implicitly captured in a lambda expression.

AUTOSAR.LAMBDA.IMPLICIT_CAPTURE  Variables shall not be implicitly captured in a lambda expression

A5-1-2 (req.)

AUTOSAR.LAMBDA.IMPLICIT_CAPTURE  Variables shall not be implicitly captured in a lambda expression

A5-1-2 (必要): 変数はラムダ式で暗黙的にキャプチャしてはなりません。

AUTOSAR.LAMBDA.IMPLICIT_CAPTURE  Variables shall not be implicitly captured in a lambda expression

A5-1-3 (Required): Parameter list (possibly empty) shall be included in every lambda expression.

AUTOSAR.LAMBDA.NO_PARAM_LIST  Parameter list (possibly empty) shall be included in every lambda expression

A5-1-3 (req.)

AUTOSAR.LAMBDA.NO_PARAM_LIST  Parameter list (possibly empty) shall be included in every lambda expression

A5-1-3 (必要): パラメーターリスト (空の可能性がある) はすべてのラムダ式に含めなければなりません。

AUTOSAR.LAMBDA.NO_PARAM_LIST  Parameter list (possibly empty) shall be included in every lambda expression

A5-1-4 (Required): A lambda expression object shall not outlive any of its reference-captured objects.

AUTOSAR.LAMBDA.REF_LIFETIME  A lambda expression object shall not outlive any of its reference-captured objects

A5-1-4 (req.)

AUTOSAR.LAMBDA.REF_LIFETIME  A lambda expression object shall not outlive any of its reference-captured objects

A5-1-4 (必要): ラムダ式オブジェクトは、その参照キャプチャされたオブジェクトよりも長く存続してはなりません。

AUTOSAR.LAMBDA.REF_LIFETIME  A lambda expression object shall not outlive any of its reference-captured objects

A5-1-6 (Advisory): Return type of a non-void return type lambda expression should be explicitly specified.

AUTOSAR.LAMBDA.IMPLICIT_RETURN_TYPE  Return type of a non-void return type lambda expression should be explicitly specified

A5-1-6 (adv.)

AUTOSAR.LAMBDA.IMPLICIT_RETURN_TYPE  Return type of a non-void return type lambda expression should be explicitly specified

A5-1-6 (推奨): 非 void 戻り型ラムダ式の戻り型は明示的に指定しなければなりません。

AUTOSAR.LAMBDA.IMPLICIT_RETURN_TYPE  Return type of a non-void return type lambda expression should be explicitly specified

A5-1-7 (Required): A lambda shall not be an operand to decltype or typeid.

AUTOSAR.LAMBDA.TYPE_OPERAND  A lambda shall not be an operand to decltype or typeid

A5-1-7 (req.)

AUTOSAR.LAMBDA.TYPE_OPERAND  A lambda shall not be an operand to decltype or typeid

A5-1-7 (必要): ラムダを decltype または typeid のオペランドにしてはなりません。

AUTOSAR.LAMBDA.TYPE_OPERAND  A lambda shall not be an operand to decltype or typeid

A5-1-8 (Advisory): Lambda expressions should not be defined inside another lambda expression.

AUTOSAR.LAMBDA.NESTED  Lambda expressions should not be defined inside another lambda expression

A5-1-8 (adv.)

AUTOSAR.LAMBDA.NESTED  Lambda expressions should not be defined inside another lambda expression

A5-1-8 (推奨): ラムダ式を他のラムダ式内で定義してはなりません。

AUTOSAR.LAMBDA.NESTED  Lambda expressions should not be defined inside another lambda expression

A5-2-1 (Advisory): dynamic_cast should not be used.

AUTOSAR.CAST.DYNAMIC  dynamic_cast should not be used

A5-2-1 (adv.)

AUTOSAR.CAST.DYNAMIC  dynamic_cast should not be used

A5-2-1 (推奨): dynamic_cast は使用してはなりません。

AUTOSAR.CAST.DYNAMIC  dynamic_cast should not be used

A5-2-2 (Required): Traditional C-style casts shall not be used.

AUTOSAR.CAST.CSTYLE  Traditional C-style casts shall not be used

A5-2-2 (req.)

AUTOSAR.CAST.CSTYLE  Traditional C-style casts shall not be used

A5-2-2 (必要): 従来の C スタイルのキャストは使用してはなりません。

AUTOSAR.CAST.CSTYLE  Traditional C-style casts shall not be used

A5-2-3 (Required): A cast shall not remove any const or volatile qualification from the type of a pointer or reference.

MISRA.CAST.CONST  Cast operation removes const or volatile modifier from a pointer or reference

A5-2-3 (req.)

MISRA.CAST.CONST  Cast operation removes const or volatile modifier from a pointer or reference

A5-2-3 (必要): キャストでは、ポインターまたは参照の型から const または volatile 修飾を削除してはなりません。

MISRA.CAST.CONST  Cast operation removes const or volatile modifier from a pointer or reference

A5-2-4 (Required): reinterpret_cast shall not be used.

AUTOSAR.CAST.REINTERPRET  reinterpret_cast shall not be used

A5-2-4 (req.)

AUTOSAR.CAST.REINTERPRET  reinterpret_cast shall not be used

A5-2-4 (必要): reinterpret_cast は使用してはなりません。

AUTOSAR.CAST.REINTERPRET  reinterpret_cast shall not be used

A5-2-5 (Required): An array or container shall not be accessed beyond its range.

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

A5-2-5 (req.)

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

A5-2-5 (必要): 配列またはコンテナーにはその範囲を超えてアクセスしてはなりません。

ABV.ANY_SIZE_ARRAY  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL  Buffer Overflow - Array Index Out of Bounds

ABV.GENERAL.MULTIDIMENSION  Buffer Overflow - Array Index Out of Bounds

ABV.ITERATOR  Buffer Overflow - Array Index may be out of Bounds

ABV.MEMBER  Buffer Overflow - Array Index Out of Bounds

ABV.NON_ARRAY  Non-array object is used as an array

ABV.STACK  Buffer Overflow - Local Array Index Out of Bounds

ABV.TAINTED  Buffer Overflow from Unvalidated Input

ABV.UNICODE.BOUND_MAP  Buffer overflow in mapping character function

ABV.UNICODE.FAILED_MAP  Mapping function failed

ABV.UNICODE.NNTS_MAP  Buffer overflow in mapping character function

ABV.UNICODE.SELF_MAP  Mapping function failed

ABV.UNKNOWN_SIZE  Buffer Overflow - Array Index Out of Bounds

A5-2-6 (Required): The operands of a logical && or \\ shall be parenthesized if the operands contain binary operators.

MISRA.LOGIC.POSTFIX  Operand in a logical 'and' or 'or' expression is not a postfix expression

A5-2-6 (req.)

MISRA.LOGIC.POSTFIX  Operand in a logical 'and' or 'or' expression is not a postfix expression

A5-2-6 (必要): 論理演算子 && または \\ のオペランドにバイナリ演算子が含まれている場合は、そのオペランドを括弧で囲まなければなりません。

MISRA.LOGIC.POSTFIX  Operand in a logical 'and' or 'or' expression is not a postfix expression

A5-3-2 (Required): Null pointers shall not be dereferenced.

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

A5-3-2 (req.)

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

A5-3-2 (必要): null ポインターを逆参照してはなりません。

NPD.CHECK.CALL.MIGHT  Pointer may be passed to function that can dereference it after it was positively checked for NULL

NPD.CHECK.CALL.MUST  Pointer will be passed to function that may dereference it after it was positively checked for NULL

NPD.CHECK.MIGHT  Pointer may be dereferenced after it was positively checked for NULL

NPD.CHECK.MUST  Pointer will be dereferenced after it was positively checked for NULL

NPD.CONST.CALL  NULL is passed to function that can dereference it

NPD.CONST.DEREF  NULL is dereferenced

NPD.FUNC.CALL.MIGHT  Result of function that may return NULL may be passed to another function that may dereference it

NPD.FUNC.CALL.MUST  Result of function that may return NULL will be passed to another function that may dereference it

NPD.FUNC.MIGHT  Result of function that can return NULL may be dereferenced

NPD.FUNC.MUST  Result of function that may return NULL will be dereferenced

NPD.GEN.CALL.MIGHT  Null pointer may be passed to function that may dereference it

NPD.GEN.CALL.MUST  Null pointer will be passed to function that may dereference it

NPD.GEN.MIGHT  Null pointer may be dereferenced

NPD.GEN.MUST  Null pointer will be dereferenced

A5-6-1 (Required): The right hand operand of the integer division or remainder operators shall not be equal to zero.

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

A5-6-1 (req.)

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

A5-6-1 (必要): 整数の除算または剰余演算子の右側のオペランドはゼロになってはなりません。

DBZ.CONST  Division by a zero constant occurs

DBZ.CONST.CALL  The value '0' is passed to function that can use this value as divisor

DBZ.GENERAL  Division by zero might occur

DBZ.GENERAL.FLOAT  Division by floating-point zero might occur

DBZ.ITERATOR  Division by zero might occur in a loop iterator

DBZ.ITERATOR.CALL  Division by zero might occur in a function call

DBZ.ITERATOR.FLOAT  Division by zero might occur in a loop iterator

A5-10-1 (Required): A pointer to member virtual function shall only be tested for equality with null-pointer-constant.

AUTOSAR.VIRTUAL.PTR_COMPARE  A pointer to member virtual function shall only be tested for equality with null-pointer-constant

A5-10-1 (req.)

AUTOSAR.VIRTUAL.PTR_COMPARE  A pointer to member virtual function shall only be tested for equality with null-pointer-constant

A5-10-1 (必要): メンバー仮想関数を指すポインターのテストは、null ポインター定数との等価を確認する目的でのみ行わなければなりません。

AUTOSAR.VIRTUAL.PTR_COMPARE  A pointer to member virtual function shall only be tested for equality with null-pointer-constant

A5-16-1 (Required): The ternary conditional operator shall not be used as a sub-expression.

AUTOSAR.TERNARY.NESTED  The ternary conditional operator shall not be used as a sub-expression

A5-16-1 (req.)

AUTOSAR.TERNARY.NESTED  The ternary conditional operator shall not be used as a sub-expression

A5-16-1 (必要): 3 項条件演算子を部分式として使用してはなりません。

AUTOSAR.TERNARY.NESTED  The ternary conditional operator shall not be used as a sub-expression

A6-2-1 (Required): Move and copy assignment operators shall either move or respectively copy base classes and data members of a class

AUTOSAR.ADD.ASSIGN.OP.SIDE.EFFECT  Move and copy assignment operators shall either move or respectively copy base classes and data members of a class, without any side effects

A6-2-1 (req.)

AUTOSAR.ADD.ASSIGN.OP.SIDE.EFFECT  Move and copy assignment operators shall either move or respectively copy base classes and data members of a class, without any side effects

A6-2-1 (必要): move および copy 代入演算子は、副作用を発生させることなく基底クラスとクラスのデータメンバーの移動または個別コピーを行わなければなりません。

AUTOSAR.ADD.ASSIGN.OP.SIDE.EFFECT  Move and copy assignment operators shall either move or respectively copy base classes and data members of a class, without any side effects

A6-4-1 (Required): A switch statement shall have at least two case-clauses

AUTOSAR.SWITCH.CASECOUNT  A switch statement shall have at least two case-clauses, distinct from the default label

A6-4-1 (req.)

AUTOSAR.SWITCH.CASECOUNT  A switch statement shall have at least two case-clauses, distinct from the default label

A6-4-1 (必要): switch ステートメントには、デフォルトのラベルとは異なる 2 つ以上の case 節を指定しなければなりません。

AUTOSAR.SWITCH.CASECOUNT  A switch statement shall have at least two case-clauses, distinct from the default label

A6-5-2 (Required): A for loop shall contain a single loop-counter which shall not have floating-point type.

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

A6-5-2 (req.)

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

A6-5-2 (必要): for ループには、浮動小数点型ではない単一のループカウンターを含めなければなりません。

MISRA.FOR.COUNTER.FLT  For loop counter has a floating point type

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

A6-5-3 (Advisory): Do statements should not be used.

AUTOSAR.DO  Do statements should not be used

A6-5-3 (adv.)

AUTOSAR.DO  Do statements should not be used

A6-5-3 (推奨): do ステートメントは使用してはなりません。

AUTOSAR.DO  Do statements should not be used

A6-5-4 (Advisory): For-init-statement and expression should not perform actions other than loop-counter initialization and modification.

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

A6-5-4 (adv.)

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

A6-5-4 (推奨): for-init-statement および for-init-expression によってループカウンターの初期化と変更以外のアクションを実行してはなりません。

MISRA.FOR.COUNTER.MANY  Many counters in a for loop

A6-6-1 (Required): The goto statement shall not be used.

AUTOSAR.GOTO  The goto statement shall not be used

A6-6-1 (req.)

AUTOSAR.GOTO  The goto statement shall not be used

A6-6-1 (必要): goto ステートメントは使用してはなりません。

AUTOSAR.GOTO  The goto statement shall not be used

A7-1-1 (Required): Constexpr or const specifiers shall be used for immutable data declaration.

MISRA.VAR.NEEDS.CONST  Variable is not modified but is declared without const qualifier

A7-1-1 (req.)

MISRA.VAR.NEEDS.CONST  Variable is not modified but is declared without const qualifier

A7-1-1 (必要): イミュータブルデータ宣言には、constexpr または const 指定子を使用しなければなりません。

MISRA.VAR.NEEDS.CONST  Variable is not modified but is declared without const qualifier

A7-1-3 (Required): CV-qualifiers shall be placed on the right hand side of the type that is a typedef or a using name.

AUTOSAR.TYPEDEF.CVQ_EAST  CV-qualifiers shall be placed on the right hand side of the type that is a typedef or a using name

A7-1-3 (req.)

AUTOSAR.TYPEDEF.CVQ_EAST  CV-qualifiers shall be placed on the right hand side of the type that is a typedef or a using name

A7-1-3 (必要): CV 修飾子は、typedef または using name である型の右側に置かなければなりません。

AUTOSAR.TYPEDEF.CVQ_EAST  CV-qualifiers shall be placed on the right hand side of the type that is a typedef or a using name

A7-1-4 (Required): The register keyword shall not be used.

AUTOSAR.REGISTER  The register keyword shall not be used

A7-1-4 (req.)

AUTOSAR.REGISTER  The register keyword shall not be used

A7-1-4 (必要): register キーワードは使用してはなりません。

AUTOSAR.REGISTER  The register keyword shall not be used

A7-1-5 (Required): The auto specifier shall not be used apart from following cases: ...

AUTOSAR.ADD.AUTO.SPECIFIER  The auto specifier shall not be used here

A7-1-5 (req.)

AUTOSAR.ADD.AUTO.SPECIFIER  The auto specifier shall not be used here

A7-1-5 (必要): auto 指定子は、次の場合を除き、使用してはなりません。...

AUTOSAR.ADD.AUTO.SPECIFIER  The auto specifier shall not be used here

A7-1-6 (Required): The typedef specifier shall not be used.

AUTOSAR.TYPEDEF  The typedef specifier shall not be used

A7-1-6 (req.)

AUTOSAR.TYPEDEF  The typedef specifier shall not be used

A7-1-6 (必要): typedef 指定子は使用してはなりません。

AUTOSAR.TYPEDEF  The typedef specifier shall not be used

A7-1-7 (Required): Each expression statement and identifier declaration shall be placed on a separate line.

AUTOSAR.STYLE.SINGLE_DECL_PER_LINE  Each expression statement and identifier declaration shall be placed on a separate line

AUTOSAR.STYLE.SINGLE_STMT_PER_LINE  Each expression statement and identifier declaration shall be placed on a separate line

A7-1-7 (req.)

AUTOSAR.STYLE.SINGLE_DECL_PER_LINE  Each expression statement and identifier declaration shall be placed on a separate line

AUTOSAR.STYLE.SINGLE_STMT_PER_LINE  Each expression statement and identifier declaration shall be placed on a separate line

A7-1-7 (必要): 各式ステートメントと識別子宣言は、個別の行に配置しなければなりません。

AUTOSAR.STYLE.SINGLE_DECL_PER_LINE  Each expression statement and identifier declaration shall be placed on a separate line

AUTOSAR.STYLE.SINGLE_STMT_PER_LINE  Each expression statement and identifier declaration shall be placed on a separate line

A7-1-8 (Required): A non-type specifier shall be placed before a type specifier in a declaration.

AUTOSAR.DECL.NONTYPE_SPECIFIER  A non-type specifier shall be placed before a type specifier in a declaration

A7-1-8 (req.)

AUTOSAR.DECL.NONTYPE_SPECIFIER  A non-type specifier shall be placed before a type specifier in a declaration

A7-1-8 (必要): 宣言では、型指定子以外の指定子は型指定子の前に置かなければなりません。

AUTOSAR.DECL.NONTYPE_SPECIFIER  A non-type specifier shall be placed before a type specifier in a declaration

A7-1-9 (Required): A class

AUTOSAR.DECL.IN_DEFN  A class, structure, or enumeration shall not be declared in the definition of its type

A7-1-9 (req.)

AUTOSAR.DECL.IN_DEFN  A class, structure, or enumeration shall not be declared in the definition of its type

A7-1-9 (必要): クラス、構造体、または列挙をその型の定義で宣言してはなりません。

AUTOSAR.DECL.IN_DEFN  A class, structure, or enumeration shall not be declared in the definition of its type

A7-2-2 (Required): Enumeration underlying base type shall be explicitly defined.

AUTOSAR.ENUM.EXPLICIT_BASE_TYPE  Enumeration underlying base type shall be explicitly defined

A7-2-2 (req.)

AUTOSAR.ENUM.EXPLICIT_BASE_TYPE  Enumeration underlying base type shall be explicitly defined

A7-2-2 (必要): 列挙の基になるベース型は、明示的に定義しなければなりません。

AUTOSAR.ENUM.EXPLICIT_BASE_TYPE  Enumeration underlying base type shall be explicitly defined

A7-2-3 (Required): Enumerations shall be declared as scoped enum classes.

AUTOSAR.ENUM.UNSCOPED  Enumerations shall be declared as scoped enum classes

A7-2-3 (req.)

AUTOSAR.ENUM.UNSCOPED  Enumerations shall be declared as scoped enum classes

A7-2-3 (必要): 列挙は、スコープ付きの enum クラスとして宣言しなければなりません。

AUTOSAR.ENUM.UNSCOPED  Enumerations shall be declared as scoped enum classes

A7-2-4 (Required): In an enumeration

MISRA.ENUM.INIT  Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized.

A7-2-4 (req.)

MISRA.ENUM.INIT  Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized.

A7-2-4 (必要): 列挙型では、(1) どれも初期化されないか、または (2) 最初の列挙子もしくは (3) すべての列挙子が初期化されなければなりません。

MISRA.ENUM.INIT  Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized.

A7-3-1 (Required): All overloads of a function shall be visible from where it is called.

MISRA.NS.USING_DECL  Multiple declarations for an identifier in the same namespace should not straddle a using-declaration for that identifier

A7-3-1 (req.)

MISRA.NS.USING_DECL  Multiple declarations for an identifier in the same namespace should not straddle a using-declaration for that identifier

A7-3-1 (必要): 関数のすべてのオーバーロードは、それが呼び出された場所から見えなければなりません。

MISRA.NS.USING_DECL  Multiple declarations for an identifier in the same namespace should not straddle a using-declaration for that identifier

A7-4-1 (Required): The asm declaration shall not be used.

AUTOSAR.ASM  The asm declaration shall not be used

A7-4-1 (req.)

AUTOSAR.ASM  The asm declaration shall not be used

A7-4-1 (必要): asm 宣言は使用してはなりません。

AUTOSAR.ASM  The asm declaration shall not be used

A7-5-1 (Required): A function shall not return a reference or a pointer to a parameter that is passed by reference to const.

AUTOSAR.ADD.RTN.REF.CONST.PARAM  A function shall not return a reference or a pointer to a parameter that is passed by reference to const

A7-5-1 (req.)

AUTOSAR.ADD.RTN.REF.CONST.PARAM  A function shall not return a reference or a pointer to a parameter that is passed by reference to const

A7-5-1 (必要): const への参照によって渡されるパラメーターへの参照またはポインターを関数が返してはなりません。

AUTOSAR.ADD.RTN.REF.CONST.PARAM  A function shall not return a reference or a pointer to a parameter that is passed by reference to const

A7-5-2 (Required): Functions shall not call themselves

MISRA.FUNC.RECUR  Recursive function

A7-5-2 (req.)

MISRA.FUNC.RECUR  Recursive function

A7-5-2 (必要): 関数は、直接的か間接的かにかかわらず、その関数自身を呼び出してはなりません。

MISRA.FUNC.RECUR  Recursive function

A8-2-1 (Required): When declaring function templates

AUTOSAR.ADD.FUNC.TEMPLATE.TRAIL.RTN  In function templates, the trailing return type syntax shall be used if the return type depends on the type of parameters

A8-2-1 (req.)

AUTOSAR.ADD.FUNC.TEMPLATE.TRAIL.RTN  In function templates, the trailing return type syntax shall be used if the return type depends on the type of parameters

A8-2-1 (必要): 関数テンプレートを宣言する場合、戻り値型がパラメーターの型に依存するのであれば、後置戻り値型構文を使用しなければなりません。

AUTOSAR.ADD.FUNC.TEMPLATE.TRAIL.RTN  In function templates, the trailing return type syntax shall be used if the return type depends on the type of parameters

A8-4-1 (Required): Functions shall not be defined using the ellipsis notation.

MISRA.FUNC.VARARG  Function with variable number of arguments

A8-4-1 (req.)

MISRA.FUNC.VARARG  Function with variable number of arguments

A8-4-1 (必要): 関数は省略記法を使用して定義してはなりません。

MISRA.FUNC.VARARG  Function with variable number of arguments

A8-4-2 (Required): All exit paths from a function with non-void return type shall have an explicit return statement with an expression.

FUNCRET.GEN  Non-void function does not return value

A8-4-2 (req.)

FUNCRET.GEN  Non-void function does not return value

A8-4-2 (必要): void 以外の戻り値の型を持つ関数からのすべての終了パスには、式を含む明示的な return ステートメントが必要です。

FUNCRET.GEN  Non-void function does not return value

A8-5-0 (Required): All memory shall be initialized before it is read.

UNINIT.CTOR.MIGHT  Uninitialized Variable in Constructor - possible

UNINIT.CTOR.MUST  Uninitialized Variable in Constructor

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

A8-5-0 (req.)

UNINIT.CTOR.MIGHT  Uninitialized Variable in Constructor - possible

UNINIT.CTOR.MUST  Uninitialized Variable in Constructor

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

A8-5-0 (必要): すべてのメモリは、読み取られる前に初期化されなければなりません。

UNINIT.CTOR.MIGHT  Uninitialized Variable in Constructor - possible

UNINIT.CTOR.MUST  Uninitialized Variable in Constructor

UNINIT.HEAP.MIGHT  Uninitialized Heap Use - possible

UNINIT.HEAP.MUST  Uninitialized Heap Use

UNINIT.STACK.ARRAY.MIGHT  Uninitialized Array - possible

UNINIT.STACK.ARRAY.MUST  Uninitialized Array

UNINIT.STACK.ARRAY.PARTIAL.MUST  Partially Uninitialized Array

UNINIT.STACK.MIGHT  Uninitialized Variable - possible

UNINIT.STACK.MUST  Uninitialized Variable

A8-5-1 (Required): In an initialization list

CWARN.MEMBER.INIT.ORDER  Members of the initialization list are not listed in the order in which they are declared in the class

A8-5-1 (req.)

CWARN.MEMBER.INIT.ORDER  Members of the initialization list are not listed in the order in which they are declared in the class

A8-5-1 (必要): 初期化リストで、初期化の順序が次のようにならなければなりません。...

CWARN.MEMBER.INIT.ORDER  Members of the initialization list are not listed in the order in which they are declared in the class

A8-5-3 (Required): A variable of type auto shall not be initialized using {} or ={} braced-initialization.

AUTOSAR.ADD.AUTO.INIT.FORMAT  A variable of type auto shall not be initialized using {} or ={} braced-initialization.

A8-5-3 (req.)

AUTOSAR.ADD.AUTO.INIT.FORMAT  A variable of type auto shall not be initialized using {} or ={} braced-initialization.

A8-5-3 (必要): auto 型の変数を {} または ={} ブレース初期化を使用して初期化してはなりません。

AUTOSAR.ADD.AUTO.INIT.FORMAT  A variable of type auto shall not be initialized using {} or ={} braced-initialization.

A8-5-4 (Advisory): If a class has a user-declared constructor that takes a parameter of type std::initializer_list

AUTOSAR.ADD.CTOR.INIT.LIST  If a class has a user-declared constructor that takes a parameter of type std::initializer_list, then it shall be the only constructor apart from special member function constructors

A8-5-4 (adv.)

AUTOSAR.ADD.CTOR.INIT.LIST  If a class has a user-declared constructor that takes a parameter of type std::initializer_list, then it shall be the only constructor apart from special member function constructors

A8-5-4 (推奨): std::initializer_list 型のパラメーターを受け取るユーザー宣言コンストラクターがクラスに含まれる場合、特殊メンバー関数コンストラクターを除いて、そのコンストラクターが唯一のコンストラクターでなければなりません。

AUTOSAR.ADD.CTOR.INIT.LIST  If a class has a user-declared constructor that takes a parameter of type std::initializer_list, then it shall be the only constructor apart from special member function constructors

A9-5-1 (Required): Unions shall not be used.

AUTOSAR.UNION  Unions shall not be used

A9-5-1 (req.)

AUTOSAR.UNION  Unions shall not be used

A9-5-1 (必要): 和集合は使用してはなりません。

AUTOSAR.UNION  Unions shall not be used

A10-2-1 (Required): Non-virtual public or protected member functions shall not be redefined in derived classes.

AUTOSAR.ADD.REDEF.DERIVED.FUNC  Non-virtual public or protected member functions shall not be redefined in derived classes.

A10-2-1 (req.)

AUTOSAR.ADD.REDEF.DERIVED.FUNC  Non-virtual public or protected member functions shall not be redefined in derived classes.

A10-2-1 (必要):パブリックの、または保護された非仮想メンバー関数を派生クラスで再定義してはなりません。

AUTOSAR.ADD.REDEF.DERIVED.FUNC  Non-virtual public or protected member functions shall not be redefined in derived classes.

A10-3-1 (Required): Virtual function declaration shall contain exactly one of the three specifiers: (1) virtual

AUTOSAR.MEMB.VIRTUAL.SPEC  Virtual function declaration shall contain exactly one of the three specifiers: (1) virtual, (2) override, (3) final.

A10-3-1 (req.)

AUTOSAR.MEMB.VIRTUAL.SPEC  Virtual function declaration shall contain exactly one of the three specifiers: (1) virtual, (2) override, (3) final.

A10-3-1 (必要): 仮想関数宣言には 3 つの指定子 (1) virtual、(2) override、(3) final の内の 1 つだけを含める必要があります。

AUTOSAR.MEMB.VIRTUAL.SPEC  Virtual function declaration shall contain exactly one of the three specifiers: (1) virtual, (2) override, (3) final.

A10-3-2 (Required): Each overriding virtual function shall be declared with the override or final specifier.

AUTOSAR.ADD.OVERRIDE.VIRTUAL.SPECIFIER  Each overriding virtual function shall be declared with the override or final specifier

A10-3-2 (req.)

AUTOSAR.ADD.OVERRIDE.VIRTUAL.SPECIFIER  Each overriding virtual function shall be declared with the override or final specifier

A10-3-2 (必要): オーバーライドする仮想関数はそれぞれ、override または final 指定子で宣言する必要があります。

AUTOSAR.ADD.OVERRIDE.VIRTUAL.SPECIFIER  Each overriding virtual function shall be declared with the override or final specifier

A10-3-3 (Required): Virtual functions shall not be introduced in a final class.

AUTOSAR.MEMB.VIRTUAL.FINAL  Virtual functions shall not be introduced in a final class

A10-3-3 (req.)

AUTOSAR.MEMB.VIRTUAL.FINAL  Virtual functions shall not be introduced in a final class

A10-3-3 (必要): 仮想関数は final クラスに含めてはなりません。

AUTOSAR.MEMB.VIRTUAL.FINAL  Virtual functions shall not be introduced in a final class

A10-3-5 (Required): A user-defined assignment operator shall not be virtual.

AUTOSAR.ADD.ASSIGN.OP.VIRTUAL  A user-defined assignment operator shall not be virtual

A10-3-5 (req.)

AUTOSAR.ADD.ASSIGN.OP.VIRTUAL  A user-defined assignment operator shall not be virtual

A10-3-5 (必要): ユーザー定義の代入演算子は virtual であってはなりません。

AUTOSAR.ADD.ASSIGN.OP.VIRTUAL  A user-defined assignment operator shall not be virtual

A11-3-1 (Required): Friend declarations shall not be used.

AUTOSAR.FRIEND_DECL  Friend declarations shall not be used

A11-3-1 (req.)

AUTOSAR.FRIEND_DECL  Friend declarations shall not be used

A11-3-1 (必要): フレンド宣言は使用してはなりません。

AUTOSAR.FRIEND_DECL  Friend declarations shall not be used

A12-1-1 (Required): Constructors shall explicitly initialize all virtual base classes

MISRA.CTOR.BASE  Constructor does not explicitly call constructor of its base class

A12-1-1 (req.)

MISRA.CTOR.BASE  Constructor does not explicitly call constructor of its base class

A12-1-1 (必要): コンストラクターは、すべての仮想基底クラス、すべての直接非仮想基底クラス、およびすべての非静的データメンバーを明示的に初期化しなければなりません。

MISRA.CTOR.BASE  Constructor does not explicitly call constructor of its base class

A12-1-2 (Required): Both NSDMI and a non-static member initializer in a constructor shall not be used in the same type.

AUTOSAR.CTOR.NSDMI_INIT_LIST  Both NSDMI and a non-static member initializer in a constructor shall not be used in the same type

A12-1-2 (req.)

AUTOSAR.CTOR.NSDMI_INIT_LIST  Both NSDMI and a non-static member initializer in a constructor shall not be used in the same type

A12-1-2 (必要): コンストラクター内の NSDMI と非静的メンバー初期化子の両方を同じ型で使用してはなりません。

AUTOSAR.CTOR.NSDMI_INIT_LIST  Both NSDMI and a non-static member initializer in a constructor shall not be used in the same type

A12-1-4 (Required): All constructors that are callable with a single argument of fundamental type shall be declared explicit.

AUTOSAR.CTOR.NO_EXPLICIT  All constructors that are callable with a single argument of fundamental type shall be declared explicit

A12-1-4 (req.)

AUTOSAR.CTOR.NO_EXPLICIT  All constructors that are callable with a single argument of fundamental type shall be declared explicit

A12-1-4 (必要): 基本型の単一の引数で呼び出せるすべてのコンストラクターは、explicit と宣言する必要があります。

AUTOSAR.CTOR.NO_EXPLICIT  All constructors that are callable with a single argument of fundamental type shall be declared explicit

A12-4-2 (Advisory): If a public destructor of a class is non-virtual

AUTOSAR.DTOR.NON_VIRTUAL  If a public destructor of a class is non-virtual, then the class should be declared final

A12-4-2 (adv.)

AUTOSAR.DTOR.NON_VIRTUAL  If a public destructor of a class is non-virtual, then the class should be declared final

A12-4-2 (推奨): クラスのパブリックデストラクタが非仮想的である場合、そのクラスは final と宣言する必要があります。

AUTOSAR.DTOR.NON_VIRTUAL  If a public destructor of a class is non-virtual, then the class should be declared final

A12-6-1 (Required): All class data members that are initialized by the constructor shall be initialized using member initializers.

AUTOSAR.ADD.CTOR.MEMBER.INIT  All class data members that are initialized by the constructor shall be initialized using member initializers

A12-6-1 (req.)

AUTOSAR.ADD.CTOR.MEMBER.INIT  All class data members that are initialized by the constructor shall be initialized using member initializers

A12-6-1 (必要): このコンストラクターによって初期化されるクラスデータメンバーはすべて、メンバー初期化子を使用して初期化する必要があります。

AUTOSAR.ADD.CTOR.MEMBER.INIT  All class data members that are initialized by the constructor shall be initialized using member initializers

A12-8-4 (Required): Move constructor shall not initialize its class members and base classes using copy semantics.

AUTOSAR.CTOR.MOVE.COPY_SEMANTICS  Move constructor shall not initialize its class members and base classes using copy semantics

A12-8-4 (req.)

AUTOSAR.CTOR.MOVE.COPY_SEMANTICS  Move constructor shall not initialize its class members and base classes using copy semantics

A12-8-4 (必要): 移動コンストラクタがコピーセマンティクスを使用してそのクラスメンバーと基底クラスを初期化してはなりません。

AUTOSAR.CTOR.MOVE.COPY_SEMANTICS  Move constructor shall not initialize its class members and base classes using copy semantics

A12-8-5 (Required): A copy assignment and a move assignment operators shall handle self-assignment.

CL.SELF-ASSIGN  Use of free memory (double free) - in operator=

A12-8-5 (req.)

CL.SELF-ASSIGN  Use of free memory (double free) - in operator=

A12-8-5 (必要): コピー代入演算子と移動代入演算子は自己代入を処理しなければなりません。

CL.SELF-ASSIGN  Use of free memory (double free) - in operator=

A12-8-7 (Advisory): Assignment operators should be declared with the ref-qualifier &.

AUTOSAR.ASSIGN.REF_QUAL  Assignment operators should be declared with the ref-qualifier &

A12-8-7 (adv.)

AUTOSAR.ASSIGN.REF_QUAL  Assignment operators should be declared with the ref-qualifier &

A12-8-7 (推奨): 代入演算子は、参照修飾子 & を使用して宣言する必要があります。

AUTOSAR.ASSIGN.REF_QUAL  Assignment operators should be declared with the ref-qualifier &

A13-1-2 (Required): User defined suffixes of the user defined literal operators shall start with underscore followed by one or more letters.

AUTOSAR.OP.LITERAL.SUFFIX  User defined suffixes of the user defined literal operators shall start with underscore followed by one or more letters

A13-1-2 (req.)

AUTOSAR.OP.LITERAL.SUFFIX  User defined suffixes of the user defined literal operators shall start with underscore followed by one or more letters

A13-1-2 (必要): ユーザー定義のリテラル演算子のユーザー定義の接尾辞は、アンダースコアで始まり、その後に 1 字以上の英字が続く必要があります。

AUTOSAR.OP.LITERAL.SUFFIX  User defined suffixes of the user defined literal operators shall start with underscore followed by one or more letters

A13-2-1 (Required): An assignment operator shall return a reference to “this”.

AUTOSAR.ASSIGN.RETURN  An assignment operator shall return a reference to "this"

A13-2-1 (req.)

AUTOSAR.ASSIGN.RETURN  An assignment operator shall return a reference to "this"

A13-2-1 (必要): 代入演算子は "this" への参照を返す必要があります。

AUTOSAR.ASSIGN.RETURN  An assignment operator shall return a reference to "this"

A13-2-2 (Required): A binary arithmetic operator and a bitwise operator shall return a “prvalue”.

AUTOSAR.OP.BINARY.RETVAL  A binary arithmetic operator and a bitwise operator shall return a "prvalue"

A13-2-2 (req.)

AUTOSAR.OP.BINARY.RETVAL  A binary arithmetic operator and a bitwise operator shall return a "prvalue"

A13-2-2 (必要): 2 進算術演算子とビット演算子は "prvalue" を返す必要があります。

AUTOSAR.OP.BINARY.RETVAL  A binary arithmetic operator and a bitwise operator shall return a "prvalue"

A13-2-3 (Required): A relational operator shall return a boolean value.

AUTOSAR.OP.RELATIONAL.RETVAL  A relational operator shall return a boolean value

A13-2-3 (req.)

AUTOSAR.OP.RELATIONAL.RETVAL  A relational operator shall return a boolean value

A13-2-3 (必要): 関係演算子はブール値を返す必要があります。

AUTOSAR.OP.RELATIONAL.RETVAL  A relational operator shall return a boolean value

A13-5-1 (Required): If “operator[]” is to be overloaded with a non-const version

AUTOSAR.OP.INDEX.NON_CONST  If "operator[]" is to be overloaded with a non-const version, const version shall also be implemented

A13-5-1 (req.)

AUTOSAR.OP.INDEX.NON_CONST  If "operator[]" is to be overloaded with a non-const version, const version shall also be implemented

A13-5-1 (必要): "operator[]" を非 const バージョンで多重定義する予定であれば、const バージョンも実装する必要があります。

AUTOSAR.OP.INDEX.NON_CONST  If "operator[]" is to be overloaded with a non-const version, const version shall also be implemented

A13-5-2 (Required): All user-defined conversion operators shall be defined explicit.

AUTOSAR.OP.CONV.NON_EXPLICIT  All user-defined conversion operators shall be defined explicit

A13-5-2 (req.)

AUTOSAR.OP.CONV.NON_EXPLICIT  All user-defined conversion operators shall be defined explicit

A13-5-2 (必要): ユーザー定義の変換演算子はすべて、explicit と定義する必要があります。

AUTOSAR.OP.CONV.NON_EXPLICIT  All user-defined conversion operators shall be defined explicit

A13-5-3 (Advisory): User-defined conversion operators should not be used.

AUTOSAR.OP.CONV  User-defined conversion operators should not be used

A13-5-3 (adv.)

AUTOSAR.OP.CONV  User-defined conversion operators should not be used

A13-5-3 (推奨): ユーザー定義の変換演算子は使用してはなりません。

AUTOSAR.OP.CONV  User-defined conversion operators should not be used

A13-5-5 (Required): Comparison operators shall be non-member functions with identical parameter types and noexcept.

AUTOSAR.OP.COMPARE.MEMBER  Comparison operators shall be non-member functions

AUTOSAR.OP.COMPARE.NON_NOEXCEPT  Comparison operators shall be noexcept

AUTOSAR.OP.COMPARE.PARAMS  Comparison operators shall have identical parameter types

A13-5-5 (req.)

AUTOSAR.OP.COMPARE.MEMBER  Comparison operators shall be non-member functions

AUTOSAR.OP.COMPARE.NON_NOEXCEPT  Comparison operators shall be noexcept

AUTOSAR.OP.COMPARE.PARAMS  Comparison operators shall have identical parameter types

A13-5-5 (必要): 比較演算子は、同一のパラメーター型と noexcept を持つ非メンバー関数でなければなりません。

AUTOSAR.OP.COMPARE.MEMBER  Comparison operators shall be non-member functions

AUTOSAR.OP.COMPARE.NON_NOEXCEPT  Comparison operators shall be noexcept

AUTOSAR.OP.COMPARE.PARAMS  Comparison operators shall have identical parameter types

A13-6-1 (Required): Digit sequences separators ’ shall only be used as follows: (1) for decimal

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

A13-6-1 (req.)

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

A13-6-1 (必要): 数字列の区切り子 ' は、(1) 10 進数を 3 桁ずつ、(2) 16 進数を 2 桁ずつ、(3) 2 進数を 4 桁ずつ区切る場合のみ使用する必要があります。

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

A14-5-3 (Advisory): A non-member generic operator shall only be declared in a namespace that does not contain class (struct) type

AUTOSAR.OP.TMPL.NON_MEMBER  A non-member generic operator shall only be declared in a namespace that does not contain class (struct) type, enum type or union type declarations

A14-5-3 (adv.)

AUTOSAR.OP.TMPL.NON_MEMBER  A non-member generic operator shall only be declared in a namespace that does not contain class (struct) type, enum type or union type declarations

A14-5-3 (推奨): 非メンバージェネリック演算子は、クラス (構造体) 型、列挙型、または和集合型の宣言が含まれない名前空間でのみ宣言する必要があります。

AUTOSAR.OP.TMPL.NON_MEMBER  A non-member generic operator shall only be declared in a namespace that does not contain class (struct) type, enum type or union type declarations

A14-8-2 (Required): Explicit specializations of function templates shall not be used.

AUTOSAR.FUNC.TMPL.EXPLICIT_SPEC  Explicit specializations of function templates shall not be used

A14-8-2 (req.)

AUTOSAR.FUNC.TMPL.EXPLICIT_SPEC  Explicit specializations of function templates shall not be used

A14-8-2 (必要): 関数テンプレートの明示的な指定は使用してはなりません。

AUTOSAR.FUNC.TMPL.EXPLICIT_SPEC  Explicit specializations of function templates shall not be used

A15-1-2 (Required): An exception object shall not be a pointer.

MISRA.THROW.PTR  Exception object is a pointer

A15-1-2 (req.)

MISRA.THROW.PTR  Exception object is a pointer

A15-1-2 (必要): 例外オブジェクトはポインターであってはなりません。

MISRA.THROW.PTR  Exception object is a pointer

A15-1-4 (Required): If a function exits with an exception

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

A15-1-4 (req.)

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

A15-1-4 (必要): 関数は、例外で終了する場合には、スローの前に、構築したすべてのオブジェクト/リソースを有効な状態にするか、または削除しなければなりません。

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

A15-2-2 (Required): If a constructor is not noexcept and the constructor cannot finish object initialization

CL.MLK  Memory Leak - in destructor

A15-2-2 (req.)

CL.MLK  Memory Leak - in destructor

A15-2-2 (必要): コンストラクターは、noexcept ではなく、オブジェクトの初期化を完了できない場合には、オブジェクトのリソースの割り当てを解除し、例外をスローしなければなりません。

CL.MLK  Memory Leak - in destructor

A15-3-3 (Required): Main function and a task main function shall catch at least: base class exceptions from all third-party libraries used

MISRA.CATCH.ALL  No ellipsis exception handler in a try-catch block

A15-3-3 (req.)

MISRA.CATCH.ALL  No ellipsis exception handler in a try-catch block

A15-3-3 (必要): メイン関数およびタスクのメイン関数は、少なくとも、使用されているすべてのサードパーティライブラリからの基底クラス例外と、std::exception およびその他のすべての未処理の例外をキャッチしなければなりません。

MISRA.CATCH.ALL  No ellipsis exception handler in a try-catch block

A15-3-5 (Required): A class type exception shall be caught by reference or const reference.

MISRA.CATCH.BY_VALUE  Exception object of class type is caught by value

A15-3-5 (req.)

MISRA.CATCH.BY_VALUE  Exception object of class type is caught by value

A15-3-5 (必要): クラス型例外は参照または const 参照によってキャッチされなければなりません。

MISRA.CATCH.BY_VALUE  Exception object of class type is caught by value

A15-4-1 (Required): Dynamic exception-specification shall not be used.

AUTOSAR.EXCPT.DYNAMIC_SPEC  Dynamic exception-specification shall not be used

A15-4-1 (req.)

AUTOSAR.EXCPT.DYNAMIC_SPEC  Dynamic exception-specification shall not be used

A15-4-1 (必要): 動的な例外指定は使用してはなりません。

AUTOSAR.EXCPT.DYNAMIC_SPEC  Dynamic exception-specification shall not be used

A15-4-2 (Required): If a function is declared to be noexcept

AUTOSAR.EXCPT.NOEXCPT_THROW  If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception

A15-4-2 (req.)

AUTOSAR.EXCPT.NOEXCPT_THROW  If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception

A15-4-2 (必要): 関数が noexcept、noexcept(true)、または noexcept(<true condition>) であると宣言されている場合、その関数は例外で終了してはなりません。

AUTOSAR.EXCPT.NOEXCPT_THROW  If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception

A15-5-1 (Required): All user-provided class destructors

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

A15-5-1 (req.)

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

A15-5-1 (必要): ユーザー指定のクラスデストラクター、割り当て解除関数、移動コンストラクター、移動代入演算子、およびスワップ関数は、どれも例外を送出して終了してはなりません。

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

A16-0-1 (Required): ... inclusion and include guards

MISRA.USE.DEFINE  Non-guarding macro definition

A16-0-1 (req.)

MISRA.USE.DEFINE  Non-guarding macro definition

A16-0-1 (必要): ...インクルードおよびインクルードガード、ならびに次のディレクティブの使用: ...

MISRA.USE.DEFINE  Non-guarding macro definition

A16-2-1 (Required): The ’

MISRA.INCL.SYMS  Non-standard characters in header file names

A16-2-1 (req.)

MISRA.INCL.SYMS  Non-standard characters in header file names

A16-2-1 (必要): 文字 ’、"、/*、//、\ がヘッダーファイル名または #include ディレクティブ内に存在してはなりません。

MISRA.INCL.SYMS  Non-standard characters in header file names

A17-0-1 (Required): Reserved identifiers

MISRA.DEFINE.WRONGNAME  Usage of a name from the standard library for naming a macro

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

A17-0-1 (req.)

MISRA.DEFINE.WRONGNAME  Usage of a name from the standard library for naming a macro

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

A17-0-1 (必要): 標準ライブラリ内の予約済みの識別子、マクロ、関数は、定義、再定義、または未定義にすることはできません。

MISRA.DEFINE.WRONGNAME  Usage of a name from the standard library for naming a macro

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

A18-0-2 (Required): The error state of a conversion from string to a numeric value shall be checked.

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

A18-0-2 (req.)

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

A18-0-2 (必要): 文字列から数値への変換のエラー状態がチェックされなければなりません。

MISRA.STDLIB.ATOI  Use of 'atof', 'atoi' or 'atol' from library stdlib.h

A18-0-3 (Required): The library <clocale> (locale.h) and the setlocale function shall not be used.

AUTOSAR.SETLOCALE  The library <clocale> (locale.h) and the setlocale function shall not be used

A18-0-3 (req.)

AUTOSAR.SETLOCALE  The library <clocale> (locale.h) and the setlocale function shall not be used

A18-0-3 (必要): ライブラリ <clocale> (locale.h) および setlocale 関数は使用してはなりません。

AUTOSAR.SETLOCALE  The library <clocale> (locale.h) and the setlocale function shall not be used

A18-1-1 (Required): C-style arrays shall not be used.

AUTOSAR.ARRAY.CSTYLE  C-style arrays shall not be used

A18-1-1 (req.)

AUTOSAR.ARRAY.CSTYLE  C-style arrays shall not be used

A18-1-1 (必要): C スタイルの配列は使用してはなりません。

AUTOSAR.ARRAY.CSTYLE  C-style arrays shall not be used

A18-1-2 (Required): The std::vector<bool> specialization shall not be used.

AUTOSAR.VECTOR.BOOL  The std::vector<bool> specialization shall not be used

A18-1-2 (req.)

AUTOSAR.VECTOR.BOOL  The std::vector<bool> specialization shall not be used

A18-1-2 (必要): std::vector<bool> 特殊化は使用してはなりません。

AUTOSAR.VECTOR.BOOL  The std::vector<bool> specialization shall not be used

A18-1-3 (Required): The std::auto_ptr type shall not be used.

AUTOSAR.AUTO_PTR  The std::auto_ptr type shall not be used

A18-1-3 (req.)

AUTOSAR.AUTO_PTR  The std::auto_ptr type shall not be used

A18-1-3 (必要): std::auto_ptr 型は使用してはなりません。

AUTOSAR.AUTO_PTR  The std::auto_ptr type shall not be used

A18-5-1 (Required): Functions malloc

AUTOSAR.STDLIB.MEMORY  Functions malloc, calloc, realloc and free shall not be used

A18-5-1 (req.)

AUTOSAR.STDLIB.MEMORY  Functions malloc, calloc, realloc and free shall not be used

A18-5-1 (必要): 関数 malloc、calloc、realloc、および free は使用してはなりません。

AUTOSAR.STDLIB.MEMORY  Functions malloc, calloc, realloc and free shall not be used

A18-5-2 (Required): Non-placement new or delete expressions shall not be used.

AUTOSAR.OP.NEW_DELETE  Non-placement new or delete expressions shall not be used

A18-5-2 (req.)

AUTOSAR.OP.NEW_DELETE  Non-placement new or delete expressions shall not be used

A18-5-2 (必要): non-placement new 式または non-placement delete 式を使用してはなりません。

AUTOSAR.OP.NEW_DELETE  Non-placement new or delete expressions shall not be used

A18-5-3 (Required): The form of the delete expression shall match the form of the new expression used to allocate the memory.

FMM.MIGHT  Freeing Mismatched Memory - possible

FMM.MUST  Freeing Mismatched Memory

A18-5-3 (req.)

FMM.MIGHT  Freeing Mismatched Memory - possible

FMM.MUST  Freeing Mismatched Memory

A18-5-3 (必要): delete 式の形式はメモリ割り当てに使用される新しい式の形式と一致しなければなりません。

FMM.MIGHT  Freeing Mismatched Memory - possible

FMM.MUST  Freeing Mismatched Memory

A18-5-4 (Required): If a project has sized or unsized version of operator “delete” globally defined

AUTOSAR.OP.DELETE.MISSING_VERSION  If a project has sized or unsized version of operator "delete" globally defined, then both sized and unsized versions shall be defined

A18-5-4 (req.)

AUTOSAR.OP.DELETE.MISSING_VERSION  If a project has sized or unsized version of operator "delete" globally defined, then both sized and unsized versions shall be defined

A18-5-4 (必要): プロジェクトにサイズ指定付きまたはサイズ指定なしの演算子 “delete” がグローバルに定義されている場合は、サイズ指定付きとサイズ指定なしの両方を定義する必要があります。

AUTOSAR.OP.DELETE.MISSING_VERSION  If a project has sized or unsized version of operator "delete" globally defined, then both sized and unsized versions shall be defined

A18-5-11 (Required): “operator new” and “operator delete” shall be defined together.

AUTOSAR.OP.NEW_NO_DELETE  "operator new" and "operator delete" shall be defined together

A18-5-11 (req.)

AUTOSAR.OP.NEW_NO_DELETE  "operator new" and "operator delete" shall be defined together

A18-5-11 (必要): "operator new" と "operator delete" は一緒に定義する必要があります。

AUTOSAR.OP.NEW_NO_DELETE  "operator new" and "operator delete" shall be defined together

A18-9-1 (Required): The std::bind shall not be used.

AUTOSAR.STDLIB.BIND  The std::bind shall not be used

A18-9-1 (req.)

AUTOSAR.STDLIB.BIND  The std::bind shall not be used

A18-9-1 (必要): std::bind は使用してはなりません。

AUTOSAR.STDLIB.BIND  The std::bind shall not be used

A18-9-2 (Required): Forwarding values to other functions shall be done via: (1) std::move if the value is an rvalue reference

AUTOSAR.FORWARD  Forwarding values to other functions shall be done via: (1) std::move if the value is an rvalue reference, (2) std::forward if the value is forwarding reference

A18-9-2 (req.)

AUTOSAR.FORWARD  Forwarding values to other functions shall be done via: (1) std::move if the value is an rvalue reference, (2) std::forward if the value is forwarding reference

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

AUTOSAR.FORWARD  Forwarding values to other functions shall be done via: (1) std::move if the value is an rvalue reference, (2) std::forward if the value is forwarding reference

A18-9-3 (Required): The std::move shall not be used on objects declared const or const&.

AUTOSAR.STDLIB.MOVE.CONST  The std::move shall not be used on objects declared const or const&

A18-9-3 (req.)

AUTOSAR.STDLIB.MOVE.CONST  The std::move shall not be used on objects declared const or const&

A18-9-3 (必要): const または const& と宣言されたオブジェクトで std::move を使用してはなりません。

AUTOSAR.STDLIB.MOVE.CONST  The std::move shall not be used on objects declared const or const&

A21-8-1 (Required): Arguments to character-handling functions shall be representable as an unsigned char.

AUTOSAR.STDLIB.CCTYPE.UCHAR  Arguments to character-handling functions defined in <cctype> shall be representable as an unsigned char

A21-8-1 (req.)

AUTOSAR.STDLIB.CCTYPE.UCHAR  Arguments to character-handling functions defined in <cctype> shall be representable as an unsigned char

A21-8-1 (必要): 文字処理関数の引数は、unsigned char として表現できなければなりません。

AUTOSAR.STDLIB.CCTYPE.UCHAR  Arguments to character-handling functions defined in <cctype> shall be representable as an unsigned char

A26-5-1 (Required): Pseudorandom numbers shall not be generated using std::rand().

AUTOSAR.STDLIB.RAND  Pseudorandom numbers shall not be generated using std::rand()

AUTOSAR.STDLIB.RANDOM_SHUFFLE  Pseudorandom numbers shall not be generated using std::rand()

A26-5-1 (req.)

AUTOSAR.STDLIB.RAND  Pseudorandom numbers shall not be generated using std::rand()

AUTOSAR.STDLIB.RANDOM_SHUFFLE  Pseudorandom numbers shall not be generated using std::rand()

A26-5-1 (必要): 疑似乱数は std::rand() を使用して生成してはなりません。

AUTOSAR.STDLIB.RAND  Pseudorandom numbers shall not be generated using std::rand()

AUTOSAR.STDLIB.RANDOM_SHUFFLE  Pseudorandom numbers shall not be generated using std::rand()

A26-5-2 (Required): Random number engines shall not be default-initialized.

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  Random number engines shall not be default-initialized

A26-5-2 (req.)

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  Random number engines shall not be default-initialized

A26-5-2 (必要): 乱数エンジンをデフォルトで初期化してはなりません。

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  Random number engines shall not be default-initialized

A27-0-2 (Advisory): A C-style string shall guarantee sufficient space for data and the null terminator.

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

A27-0-2 (adv.)

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

A27-0-2 (推奨): C スタイルの文字列は、データと null 終了文字のための十分なスペースを保証しなければなりません。

NNTS.MIGHT  Buffer Overflow - Non-null Terminated String

NNTS.MUST  Buffer Overflow - Non-null Terminated String

NNTS.TAINTED  Unvalidated User Input Causing Buffer Overflow - Non-Null Terminated String

SV.UNBOUND_STRING_INPUT.CIN  Usage of cin for unbounded string input

SV.UNBOUND_STRING_INPUT.FUNC  Usage of unbounded string input

A27-0-4 (Required): C-style strings shall not be used.

SV.BANNED.RECOMMENDED.ALLOCA  Banned recommended API: stack allocation functions

SV.BANNED.RECOMMENDED.NUMERIC  Banned recommended API: unsafe numeric conversion functions

SV.BANNED.RECOMMENDED.OEM  Banned recommended API: OEM character page conversion functions

SV.BANNED.RECOMMENDED.PATH  Banned recommended API: unsafe path name manipulation functions

SV.BANNED.RECOMMENDED.SCANF  Banned recommended API: unsafe scanf-type functions

SV.BANNED.RECOMMENDED.SPRINTF  Banned recommended API: unsafe sprintf-type functions

SV.BANNED.RECOMMENDED.STRLEN  Banned recommended API: unsafe string length functions

SV.BANNED.RECOMMENDED.TOKEN  Banned recommended API: unsafe string tokenizing functions

SV.BANNED.RECOMMENDED.WINDOW  Banned recommended API: unsafe window functions

A27-0-4 (req.)

SV.BANNED.RECOMMENDED.ALLOCA  Banned recommended API: stack allocation functions

SV.BANNED.RECOMMENDED.NUMERIC  Banned recommended API: unsafe numeric conversion functions

SV.BANNED.RECOMMENDED.OEM  Banned recommended API: OEM character page conversion functions

SV.BANNED.RECOMMENDED.PATH  Banned recommended API: unsafe path name manipulation functions

SV.BANNED.RECOMMENDED.SCANF  Banned recommended API: unsafe scanf-type functions

SV.BANNED.RECOMMENDED.SPRINTF  Banned recommended API: unsafe sprintf-type functions

SV.BANNED.RECOMMENDED.STRLEN  Banned recommended API: unsafe string length functions

SV.BANNED.RECOMMENDED.TOKEN  Banned recommended API: unsafe string tokenizing functions

SV.BANNED.RECOMMENDED.WINDOW  Banned recommended API: unsafe window functions

A27-0-4 (必要): C スタイルの文字列は使用してはなりません。

SV.BANNED.RECOMMENDED.ALLOCA  Banned recommended API: stack allocation functions

SV.BANNED.RECOMMENDED.NUMERIC  Banned recommended API: unsafe numeric conversion functions

SV.BANNED.RECOMMENDED.OEM  Banned recommended API: OEM character page conversion functions

SV.BANNED.RECOMMENDED.PATH  Banned recommended API: unsafe path name manipulation functions

SV.BANNED.RECOMMENDED.SCANF  Banned recommended API: unsafe scanf-type functions

SV.BANNED.RECOMMENDED.SPRINTF  Banned recommended API: unsafe sprintf-type functions

SV.BANNED.RECOMMENDED.STRLEN  Banned recommended API: unsafe string length functions

SV.BANNED.RECOMMENDED.TOKEN  Banned recommended API: unsafe string tokenizing functions

SV.BANNED.RECOMMENDED.WINDOW  Banned recommended API: unsafe window functions

M0-1-1 (Required): A project shall not contain unreachable code.

UNREACH.ENUM  Code is unreachable due to the possible value(s) of an enum

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

M0-1-1 (req.)

UNREACH.ENUM  Code is unreachable due to the possible value(s) of an enum

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

M0-1-1 (必要): プロジェクトには到達不能なコードを含めてはなりません。

UNREACH.ENUM  Code is unreachable due to the possible value(s) of an enum

UNREACH.GEN  Unreachable code

UNREACH.RETURN  Unreachable Void Return

M0-1-2 (Required): A project shall not contain infeasible paths.

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

M0-1-2 (req.)

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

M0-1-2 (必要): プロジェクトには実行不可能なパスを含めてはなりません。

CWARN.NOEFFECT.UCMP.GE  Comparison of unsigned value against 0 is always true

CWARN.NOEFFECT.UCMP.GE.MACRO  Comparison of unsigned value against 0 within a macro is always true

CWARN.NOEFFECT.UCMP.LT  Comparison of unsigned value against 0 is always false

CWARN.NOEFFECT.UCMP.LT.MACRO  Comparison of unsigned value against 0 within a macro is always false

M0-1-3 (Required): A project shall not contain unused variables.

LV_UNUSED.GEN  Local variable unused

M0-1-3 (req.)

LV_UNUSED.GEN  Local variable unused

M0-1-3 (必要): プロジェクトには未使用の変数を含めてはなりません。

LV_UNUSED.GEN  Local variable unused

M0-1-9 (Required): There shall be no dead code.

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

M0-1-9 (req.)

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

M0-1-9 (必要): 到達不能コードが存在してはなりません。

VA_UNUSED.GEN  Value is Never Used after Assignment

VA_UNUSED.INIT  Value is Never Used after Initialization

M0-1-10 (Advisory): Every defined function should be called at least once.

UNUSED.FUNC.GEN  Function defined but not used

M0-1-10 (adv.)

UNUSED.FUNC.GEN  Function defined but not used

M0-1-10 (推奨): すべての定義された関数は、少なくとも 1 回は呼び出されなければなりません。

UNUSED.FUNC.GEN  Function defined but not used

M0-2-1 (Required): An object shall not be assigned to an overlapping object.

MISRA.ASSIGN.OVERLAP  Object is assigned to an overlapping object

M0-2-1 (req.)

MISRA.ASSIGN.OVERLAP  Object is assigned to an overlapping object

M0-2-1 (必要): オブジェクトは、重複するオブジェクトに割り当てられてはなりません。

MISRA.ASSIGN.OVERLAP  Object is assigned to an overlapping object

M2-7-1 (Required): The character sequence /* shall not be used within a C-style comment.

MISRA.TOKEN.BADCOM  Inappropriate character sequence in a comment

M2-7-1 (req.)

MISRA.TOKEN.BADCOM  Inappropriate character sequence in a comment

M2-7-1 (必要): 文字シーケンス /* は、C スタイルのコメント内で使用してはなりません。

MISRA.TOKEN.BADCOM  Inappropriate character sequence in a comment

M2-13-2 (Required): Octal constants (other than zero) and octal escape sequences (other than “\0” ) shall not be used.

MISRA.TOKEN.OCTAL.ESCAPE  Usage of octal escape sequences

MISRA.TOKEN.OCTAL.INT  Usage of octal integer constants

M2-13-2 (req.)

MISRA.TOKEN.OCTAL.ESCAPE  Usage of octal escape sequences

MISRA.TOKEN.OCTAL.INT  Usage of octal integer constants

M2-13-2 (必要): 8 進定数 (ゼロ以外) および 8 進エスケープシーケンス (“\0” 以外) は使用してはなりません。

MISRA.TOKEN.OCTAL.ESCAPE  Usage of octal escape sequences

MISRA.TOKEN.OCTAL.INT  Usage of octal integer constants

M2-13-3 (Required): A “U” suffix shall be applied to all octal or hexadecimal integer literals of unsigned type.

MISRA.LITERAL.UNSIGNED.SUFFIX  Unsigned integer literal without 'U' suffix

M2-13-3 (req.)

MISRA.LITERAL.UNSIGNED.SUFFIX  Unsigned integer literal without 'U' suffix

M2-13-3 (必要): 符号なし型のすべての 8 進数または 16 進数の整数リテラルには “U” 接頭辞を適用しなければなりません。

MISRA.LITERAL.UNSIGNED.SUFFIX  Unsigned integer literal without 'U' suffix

M2-13-4 (Required): Literal suffixes shall be upper case.

MISRA.LITERAL.SUFFIX.CASE  Literal suffix in lower case.

M2-13-4 (req.)

MISRA.LITERAL.SUFFIX.CASE  Literal suffix in lower case.

M2-13-4 (必要): リテラル接尾辞は大文字にしなければなりません。

MISRA.LITERAL.SUFFIX.CASE  Literal suffix in lower case.

M3-1-2 (Required): Functions shall not be declared at block scope.

MISRA.DECL.FUNC_LOCAL  Function is declared locally

M3-1-2 (req.)

MISRA.DECL.FUNC_LOCAL  Function is declared locally

M3-2-1 (Required): All declarations of an object or function shall have compatible types.

MISRA.OBJ.TYPE.COMPAT  Type not compatible with type of other declaration

M3-2-1 (req.)

MISRA.OBJ.TYPE.COMPAT  Type not compatible with type of other declaration

M3-2-1 (必要): オブジェクトまたは関数のすべての宣言は互換性のある型を持たなければなりません。

MISRA.OBJ.TYPE.COMPAT  Type not compatible with type of other declaration

M3-2-1 (必要): 関数はブロックスコープで宣言してはなりません。

MISRA.DECL.FUNC_LOCAL  Function is declared locally

M3-3-2 (Required): If a function has internal linkage then all re-declarations shall include the static storage class specifier.

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

M3-3-2 (req.)

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

M3-3-2 (必要): 関数に内部リンケージがある場合、すべての再宣言に静的ストレージクラス指定子を含めなければなりません。

MISRA.FUNC.STATIC.REDECL  Function or object redeclaration does not include 'static' modifier

M3-4-1 (Required): An identifier declared to be an object or type shall be defined in a block that minimizes its visibility.

MISRA.VAR.MIN.VIS  Name visibility is too wide

M3-4-1 (req.)

MISRA.VAR.MIN.VIS  Name visibility is too wide

M3-4-1 (必要): オブジェクトまたは型として宣言された識別子は、その可視性を最小限に抑えるブロック内で定義しなければなりません。

MISRA.VAR.MIN.VIS  Name visibility is too wide

M3-9-1 (Required): The types used for an object

MISRA.OBJ.TYPE.IDENT  Type not identical with type of other declaration

M3-9-1 (req.)

MISRA.OBJ.TYPE.IDENT  Type not identical with type of other declaration

M3-9-1 (必要): オブジェクト、関数の戻り値の型、または関数のパラメータに使用される型は、すべての宣言および再宣言でトークンごとに同一でなければなりません。

MISRA.OBJ.TYPE.IDENT  Type not identical with type of other declaration

M3-9-3 (Required): The underlying bit representations of floating-point values shall not be used.

MISRA.FLOAT.BIT.REPR  Use of bit manipulations of floating-point values which rely on storage layout

M3-9-3 (req.)

MISRA.FLOAT.BIT.REPR  Use of bit manipulations of floating-point values which rely on storage layout

M3-9-3 (必要): 浮動小数点値の基礎となるビット表現は使用してはなりません。

MISRA.FLOAT.BIT.REPR  Use of bit manipulations of floating-point values which rely on storage layout

M4-5-1 (Required): Expressions with type bool shall not be used as operands to built-in operators.

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

M4-5-1 (req.)

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

M4-5-1 (必要): bool 型の式は組み込み演算子のオペランドとして使用してはなりません。

MISRA.LOGIC.OPERATOR.NOT_BOOL  Operand of non-logical operator is effectively boolean

M4-5-3 (Required): Expressions with type (plain) char and wchar_t shall not be used as operands to built-in operators other than the assignment operator =

MISRA.CHAR.OPERAND  Expression of type 'char' or 'wchar_t' is used as non-character operand

M4-5-3 (req.)

MISRA.CHAR.OPERAND  Expression of type 'char' or 'wchar_t' is used as non-character operand

M4-5-3 (必要): (プレーン) char および wchar_t 型の式は、代入演算子 =、等価演算子 == と !=、および単項の & 演算子以外の組み込み演算子のオペランドとして使用してはなりません。

MISRA.CHAR.OPERAND  Expression of type 'char' or 'wchar_t' is used as non-character operand

M4-10-1 (Required): NULL shall not be used as an integer value.

MISRA.LITERAL.NULL.INT  NULL used as an integer value.

M4-10-1 (req.)

MISRA.LITERAL.NULL.INT  NULL used as an integer value.

M4-10-1 (必要): null は整数値として使用してはなりません。

MISRA.LITERAL.NULL.INT  NULL used as an integer value.

M4-10-2 (Required): Literal zero (0) shall not be used as the null-pointer-constant.

MISRA.LITERAL.NULL.PTR  Literal zero used as the null-pointer-constant.

M4-10-2 (req.)

MISRA.LITERAL.NULL.PTR  Literal zero used as the null-pointer-constant.

M4-10-2 (必要): リテラルゼロ (0) は、null ポインター定数として使用してはなりません。

MISRA.LITERAL.NULL.PTR  Literal zero used as the null-pointer-constant.

M5-0-2 (Advisory): Limited dependence should be placed on C++ operator precedence rules in expressions.

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

MISRA.EXPR.PARENS.REDUNDANT  Limited dependence required for operator precedence rules in expressions

M5-0-2 (adv.)

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

MISRA.EXPR.PARENS.REDUNDANT  Limited dependence required for operator precedence rules in expressions

M5-0-2 (推奨): C++ 演算子の優先順位規則に限定的な依存関係を式で設定しなければなりません。

MISRA.EXPR.PARENS.INSUFFICIENT  Limited dependence required for operator precedence rules in expressions

MISRA.EXPR.PARENS.REDUNDANT  Limited dependence required for operator precedence rules in expressions

M5-0-3 (Required): A cvalue expression shall not be implicitly converted to a different underlying type.

MISRA.CVALUE.IMPL.CAST.CPP  The value of an expression implicitly converted to a different type

M5-0-3 (req.)

MISRA.CVALUE.IMPL.CAST.CPP  The value of an expression implicitly converted to a different type

M5-0-3 (必要): cvalue 式は、異なる基底型に暗黙的に変換してはなりません。

MISRA.CVALUE.IMPL.CAST.CPP  The value of an expression implicitly converted to a different type

M5-0-4 (Required): An implicit integral conversion shall not change the signedness of the underlying type.

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

M5-0-4 (req.)

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

M5-0-4 (必要): 暗黙的な整数変換では、基底型の符号を変更してはなりません。

MISRA.CONV.INT.SIGN  Implicit integral conversion changes signedness

M5-0-5 (Required): There shall be no implicit floating-integral conversions.

MISRA.CONV.FLOAT  Implicit floating-point conversion

M5-0-5 (req.)

MISRA.CONV.FLOAT  Implicit floating-point conversion

M5-0-5 (必要): 暗黙的な浮動小数点数から整数への変換が行われてはなりません。

MISRA.CONV.FLOAT  Implicit floating-point conversion

M5-0-6 (Required): An implicit integral or floating-point conversion shall not reduce the size of the underlying type.

MISRA.CONV.NUM.NARROWER  Implicit numeric conversion to narrower type

M5-0-6 (req.)

MISRA.CONV.NUM.NARROWER  Implicit numeric conversion to narrower type

M5-0-6 (必要): 暗黙的な整数または浮動小数点の変換によって、基底型のサイズが縮小されてはなりません。

MISRA.CONV.NUM.NARROWER  Implicit numeric conversion to narrower type

M5-0-7 (Required): There shall be no explicit floating-integral conversions of a cvalue expression.

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

M5-0-7 (req.)

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

M5-0-7 (必要): cvalue 式の明示的な浮動小数点数から整数への変換が行われてはなりません。

MISRA.CAST.FLOAT_INT  Cast of floating point expression to integral type

MISRA.CAST.INT_FLOAT  Cast of integral expression to floating point type

M5-0-8 (Required): An explicit integral or floating-point conversion shall not increase the size of the underlying type of a cvalue expression.

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.INT.WIDER  Cast of integral expression to a wider integral type

M5-0-8 (req.)

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.INT.WIDER  Cast of integral expression to a wider integral type

M5-0-8 (必要): 明示的な整数または浮動小数点の変換が、cvalue 式の基底型のサイズを大きくしてはなりません。

MISRA.CAST.FLOAT.WIDER  Cast of floating point expression to a wider floating point type

MISRA.CAST.INT.WIDER  Cast of integral expression to a wider integral type

M5-0-9 (Required): An explicit integral conversion shall not change the signedness of the underlying type of a cvalue expression.

MISRA.CAST.INT.SIGN  Non-trivial integral expression is cast to type with different signedness

M5-0-9 (req.)

MISRA.CAST.INT.SIGN  Non-trivial integral expression is cast to type with different signedness

M5-0-9 (必要): 明示的な整数変換では、cvalue 式の基底型の符号を変更してはなりません。

MISRA.CAST.INT.SIGN  Non-trivial integral expression is cast to type with different signedness

M5-0-10 (Required): If the bitwise operators ~and << are applied to an operand with an underlying type of unsigned char or unsigned short

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

M5-0-10 (req.)

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

M5-0-10 (必要): ビット演算子 ~ および << が、unsigned char または unsigned short を基底型とするオペランドに適用された場合、結果が直ちにオペランドの基底型にキャストされなければなりません。

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

M5-0-11 (Required): The plain char type shall only be used for the storage and use of character values.

MISRA.CHAR.NOT_CHARACTER  'char' is used for non-character value

M5-0-11 (req.)

MISRA.CHAR.NOT_CHARACTER  'char' is used for non-character value

M5-0-11 (必要): プレーン char 型は、文字値の保存と使用にのみ使用されなければなりません。

MISRA.CHAR.NOT_CHARACTER  'char' is used for non-character value

M5-0-12 (Required): Signed char and unsigned char type shall only be used for the storage and use of numeric values.

MISRA.SIGNED_CHAR.NOT_NUMERIC  'signed char' or 'unsigned char' is used for non-numeric value

M5-0-12 (req.)

MISRA.SIGNED_CHAR.NOT_NUMERIC  'signed char' or 'unsigned char' is used for non-numeric value

M5-0-12 (必要): 符号付き char 型と符号なし char 型は、数値の保存と使用にのみ使用されなければなりません。

MISRA.SIGNED_CHAR.NOT_NUMERIC  'signed char' or 'unsigned char' is used for non-numeric value

M5-0-14 (Required): The first operand of a conditional-operator shall have type bool.

MISRA.EXPR.COND.NOT_BOOLEAN  First operand of conditional expression is not a boolean expression

M5-0-14 (req.)

MISRA.EXPR.COND.NOT_BOOLEAN  First operand of conditional expression is not a boolean expression

M5-0-14 (必要): 条件演算子の最初のオペランドは bool 型でなければなりません。

MISRA.EXPR.COND.NOT_BOOLEAN  First operand of conditional expression is not a boolean expression

M5-0-15 (Required): Array indexing shall be the only form of pointer arithmetic.

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

M5-0-15 (req.)

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

M5-0-15 (必要): 配列インデックスは、ポインター演算の唯一の形式とします。

MISRA.PTR.ARITH  Pointer is used in arithmetic or array index expression

M5-0-16 (Required): A pointer operand and any pointer resulting from pointer arithmetic using that operand shall both address elements of the same array.

MISRA.PTR.ARITH.NOT_SAME.2008  A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand

M5-0-16 (req.)

MISRA.PTR.ARITH.NOT_SAME.2008  A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand

M5-0-16 (必要): ポインターオペランドと、そのオペランドを使用したポインター演算の結果のポインターは、両方とも同じ配列の要素をアドレス指定しなければなりません。

MISRA.PTR.ARITH.NOT_SAME.2008  A pointer resulting from arithmetic on a pointer operand shall address an element of the same array as that pointer operand

M5-0-20 (Required): Non-constant operands to a binary bitwise operator shall have the same underlying type.

MISRA.BITS.OPERAND  Operands of bitwise operation have different underlying types

M5-0-20 (req.)

MISRA.BITS.OPERAND  Operands of bitwise operation have different underlying types

M5-0-20 (必要): 二項ビット演算子の非定数オペランドは、同じ基底型でなければなりません。

MISRA.BITS.OPERAND  Operands of bitwise operation have different underlying types

M5-0-21 (Required): Bitwise operators shall only be applied to operands of unsigned underlying type.

MISRA.BITS.NOT_UNSIGNED  Operand of bitwise operation is not unsigned integer

MISRA.BITS.NOT_UNSIGNED.PREP  Operand of bitwise operation is not unsigned integer

M5-0-21 (req.)

MISRA.BITS.NOT_UNSIGNED  Operand of bitwise operation is not unsigned integer

MISRA.BITS.NOT_UNSIGNED.PREP  Operand of bitwise operation is not unsigned integer

M5-0-21 (必要): ビット演算子は、符号なしの基底型オペランドにのみ適用されなければなりません。

MISRA.BITS.NOT_UNSIGNED  Operand of bitwise operation is not unsigned integer

MISRA.BITS.NOT_UNSIGNED.PREP  Operand of bitwise operation is not unsigned integer

M5-2-2 (Required): A pointer to a virtual base class shall only be cast to a pointer to a derived class by means of dynamic_cast.

MISRA.CAST.PTR.VRCLASS  A cast form pointer to a virtual base class to pointer to a derived class does not use 'dynamic_cast'

M5-2-2 (req.)

MISRA.CAST.PTR.VRCLASS  A cast form pointer to a virtual base class to pointer to a derived class does not use 'dynamic_cast'

M5-2-2 (必要): 仮想基底クラスへのポインターは、dynamic_cast によって派生クラスへのポインターにのみキャストしなければなりません。

MISRA.CAST.PTR.VRCLASS  A cast form pointer to a virtual base class to pointer to a derived class does not use 'dynamic_cast'

M5-2-3 (Advisory): Casts from a base class to a derived class should not be performed on polymorphic types.

MISRA.CAST.POLY.TYPE  Cast from a polymorphic base class to a derived class

M5-2-3 (adv.)

MISRA.CAST.POLY.TYPE  Cast from a polymorphic base class to a derived class

M5-2-3 (推奨): 基底クラスから派生クラスへのキャストは、多態型で実行されてはなりません。

MISRA.CAST.POLY.TYPE  Cast from a polymorphic base class to a derived class

M5-2-6 (Required): A cast shall not convert a pointer to a function to any other pointer type

MISRA.CAST.FUNC_PTR.CPP  Cast converts function pointer to other pointer type

M5-2-6 (req.)

MISRA.CAST.FUNC_PTR.CPP  Cast converts function pointer to other pointer type

M5-2-6 (必要): キャストは、関数へのポインターを、関数型へのポインターを含む他のポインター型に変換してはなりません。

MISRA.CAST.FUNC_PTR.CPP  Cast converts function pointer to other pointer type

M5-2-8 (Required): An object with integer type or pointer to void type shall not be converted to an object with pointer type.

MISRA.CAST.INT_TO_PTR  Object with integer type or pointer to void cast to pointer type

M5-2-8 (req.)

MISRA.CAST.INT_TO_PTR  Object with integer type or pointer to void cast to pointer type

M5-2-8 (必要): 整数型または void 型へのポインターを持つオブジェクトは、ポインター型のオブジェクトに変換してはなりません。

MISRA.CAST.INT_TO_PTR  Object with integer type or pointer to void cast to pointer type

M5-2-9 (Required): A cast shall not convert a pointer type to an integral type.

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

M5-2-9 (req.)

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

M5-2-9 (必要): キャストでポインター型が整数型に変換されてはなりません。

MISRA.CAST.PTR_TO_INT  Cast between a pointer and an integral type

M5-2-10 (Required): The increment (++) and decrement (−−) operators shall not be mixed with other operators in an expression.

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

M5-2-10 (req.)

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

M5-2-10 (必要): 増分 (++) 演算子と減分 (−−) 演算子は、式の中で他の演算子と混在させてはなりません。

MISRA.INCR_DECR.OTHER  Increment or decrement operator is mixed with other operators in expression

M5-2-11 (Required): The comma operator

MISRA.BIN_OP.OVERLOAD  Comma, || or && operator overloaded

M5-2-11 (req.)

MISRA.BIN_OP.OVERLOAD  Comma, || or && operator overloaded

M5-2-11 (必要): カンマ演算子、&& 演算子、|| 演算子はオーバーロードしてはなりません。

MISRA.BIN_OP.OVERLOAD  Comma, || or && operator overloaded

M5-2-12 (Required): An identifier with array type passed as a function argument shall not decay to a pointer.

MISRA.FUNC.ARRAY.PARAMS  Function argument with array type decay to a pointer

M5-2-12 (req.)

MISRA.FUNC.ARRAY.PARAMS  Function argument with array type decay to a pointer

M5-2-12 (必要): 関数の引数として渡される配列型の識別子は、ポインターに減衰されてはなりません。

MISRA.FUNC.ARRAY.PARAMS  Function argument with array type decay to a pointer

M5-3-1 (Required): Each operand of the ! operator

MISRA.LOGIC.NOT_BOOL  Operand of logical operation is not boolean

M5-3-1 (req.)

MISRA.LOGIC.NOT_BOOL  Operand of logical operation is not boolean

M5-3-1 (必要): ! 演算子、論理 && 演算子、または論理 || 演算子の各オペランドは、bool 型でなければなりません。

MISRA.LOGIC.NOT_BOOL  Operand of logical operation is not boolean

M5-3-2 (Required): The unary minus operator shall not be applied to an expression whose underlying type is unsigned.

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

M5-3-2 (req.)

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

M5-3-2 (必要): 単項マイナス演算子は、基底型が符号なしの式に適用してはなりません。

MISRA.UMINUS.UNSIGNED  Operand of unary minus is unsigned

M5-3-3 (Required): The unary & operator shall not be overloaded.

MISRA.UN_OP.OVERLOAD  Unary & operator is overloaded

M5-3-3 (req.)

MISRA.UN_OP.OVERLOAD  Unary & operator is overloaded

M5-3-3 (必要): 単項 & 演算子はオーバーロードされてはなりません。

MISRA.UN_OP.OVERLOAD  Unary & operator is overloaded

M5-3-4 (Required): Evaluation of the operand to the sizeof operator shall not contain side effects.

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

M5-3-4 (req.)

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

M5-3-4 (必要): sizeof 演算子のオペランドの評価には副作用が含まれてはなりません。

MISRA.SIZEOF.SIDE_EFFECT  Operand of sizeof has side effects

M5-8-1 (Required): The right hand operand of a shift operator shall lie between zero and one less than the width in bits of the underlying type of the left hand operand.

MISRA.SHIFT.RANGE  Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative

M5-8-1 (req.)

MISRA.SHIFT.RANGE  Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative

M5-8-1 (必要): シフト演算子の右側のオペランドは、左側のオペランドの基底型のビット幅より 0 ~ 1 少ない値までの範囲になければなりません。

MISRA.SHIFT.RANGE  Right operand of shift operation is out of range - greater or equal to max bit-length of left operand, or negative

M5-14-1 (Required): The right hand operand of a logical &&

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

M5-14-1 (req.)

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

M5-14-1 (必要): 論理 && 演算子または論理 || 演算子の右側のオペランドには副作用が含まれていてはなりません。

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

M5-18-1 (Required): The comma operator shall not be used.

MISRA.COMMA  Comma operator is used

M5-18-1 (req.)

MISRA.COMMA  Comma operator is used

M5-18-1 (必要): カンマ演算子は使用してはなりません。

MISRA.COMMA  Comma operator is used

M5-19-1 (Required): Evaluation of constant unsigned integer expressions shall not lead to wrap-around.

MISRA.COMP.WRAPAROUND  Wrap-around in a condition

MISRA.ELIF.WRAPAROUND  Wrap-around in #elif directive

M5-19-1 (req.)

MISRA.COMP.WRAPAROUND  Wrap-around in a condition

MISRA.ELIF.WRAPAROUND  Wrap-around in #elif directive

M5-19-1 (必要): 符号なし定数整数式の評価では、ラップアラウンドが発生してはなりません。

MISRA.COMP.WRAPAROUND  Wrap-around in a condition

MISRA.ELIF.WRAPAROUND  Wrap-around in #elif directive

M6-2-1 (Required): Assignment operators shall not be used in sub-expressions.

MISRA.ASSIGN.COND  Assignment operator is used in a condition

MISRA.ASSIGN.SUBEXPR  Assignment operator is used in a sub-expression outside a condition

M6-2-1 (req.)

MISRA.ASSIGN.COND  Assignment operator is used in a condition

MISRA.ASSIGN.SUBEXPR  Assignment operator is used in a sub-expression outside a condition

M6-2-1 (必要): 代入演算子は部分式では使用してはなりません。

MISRA.ASSIGN.COND  Assignment operator is used in a condition

MISRA.ASSIGN.SUBEXPR  Assignment operator is used in a sub-expression outside a condition

M6-2-2 (Required): Floating-point expressions shall not be directly or indirectly tested for equality or inequality.

MISRA.FLOAT_EQUAL  Floating point expression is tested for equality

M6-2-2 (req.)

MISRA.FLOAT_EQUAL  Floating point expression is tested for equality

M6-2-2 (必要): 浮動小数点式は、等価性または不等価性を直接的または間接的にテストしてはなりません。

MISRA.FLOAT_EQUAL  Floating point expression is tested for equality

M6-2-3 (Required): Before preprocessing

MISRA.NULL.STMT  Null statement is not the only statement on line or comments are placed incorrectly

M6-2-3 (req.)

MISRA.NULL.STMT  Null statement is not the only statement on line or comments are placed incorrectly

M6-2-3 (必要): プリプロセッシングの前に、null ステートメントは 1 行にのみ出現しなければなりません。null ステートメントに続く最初の文字が空白文字である場合に限り、その後にコメントを続けることができます。

MISRA.NULL.STMT  Null statement is not the only statement on line or comments are placed incorrectly

M6-3-1 (Required): The statement forming the body of a switch

MISRA.STMT.NO_COMPOUND  The body of switch, while, do/while or for statement is not a compound statement

M6-3-1 (req.)

MISRA.STMT.NO_COMPOUND  The body of switch, while, do/while or for statement is not a compound statement

M6-3-1 (必要): switch、while、do ... while、または for ステートメントの本体を形成するステートメントは、複合ステートメントでなければなりません。

MISRA.STMT.NO_COMPOUND  The body of switch, while, do/while or for statement is not a compound statement

M6-4-1 (Required): An if ( condition ) construct shall be followed by a compound statement. The else keyword shall be followed by either a compound statement

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

M6-4-1 (req.)

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

M6-4-1 (必要): if (条件) 構造の後には複合ステートメントが続く必要があります。else キーワードの後には、複合ステートメントまたは別の if ステートメントが続く必要があります。

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

M6-4-2 (Required): All if ... else if constructs shall be terminated with an else clause.

MISRA.IF.NO_ELSE  A chain of if/else-if statements is not terminated with else or is terminated with an empty else clause

M6-4-2 (req.)

MISRA.IF.NO_ELSE  A chain of if/else-if statements is not terminated with else or is terminated with an empty else clause

M6-4-2 (必要): すべての if ... else if 構文は else 節で終了しなければなりません。

MISRA.IF.NO_ELSE  A chain of if/else-if statements is not terminated with else or is terminated with an empty else clause

M6-4-3 (Required): A switch statement shall be a well-formed switch statement.

MISRA.SWITCH.NOT_WELL_FORMED  Switch statement is not well-formed

M6-4-3 (req.)

MISRA.SWITCH.NOT_WELL_FORMED  Switch statement is not well-formed

M6-4-3 (必要): switch ステートメントは、適切な形式の switch ステートメントでなければなりません。

MISRA.SWITCH.NOT_WELL_FORMED  Switch statement is not well-formed

M6-4-4 (Required): A switch-label shall only be used when the most closely-enclosing compound statement is the body of a switch statement.

MISRA.SWITCH.LABEL  A switch label belongs to nested compound statement inside switch body

M6-4-4 (req.)

MISRA.SWITCH.LABEL  A switch label belongs to nested compound statement inside switch body

M6-4-4 (必要): switch ラベルは、最も近くで囲む複合ステートメントが switch ステートメントの本体である場合にのみ使用しなければなりません。

MISRA.SWITCH.LABEL  A switch label belongs to nested compound statement inside switch body

M6-4-5 (Required): An unconditional throw or break statement shall terminate every non-empty switch-clause.

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

M6-4-5 (req.)

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

M6-4-5 (必要): 無条件の throw または break ステートメントは、すべての空でない switch 節を終了しなければなりません。

MISRA.SWITCH.NO_BREAK  No break or throw statement at the end of switch-clause

M6-4-6 (Required): The final clause of a switch statement shall be the default-clause.

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

M6-4-6 (req.)

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

M6-4-6 (必要): switch ステートメントの最後の節は default 節でなければなりません。

MISRA.SWITCH.NODEFAULT  No default clause at the end of a switch statement

M6-4-7 (Required): The condition of a switch statement shall not have bool type.

MISRA.SWITCH.BOOL  Condition of switch statement is boolean expression

M6-4-7 (req.)

MISRA.SWITCH.BOOL  Condition of switch statement is boolean expression

M6-4-7 (必要): switch ステートメントの条件は bool 型であってはなりません。

MISRA.SWITCH.BOOL  Condition of switch statement is boolean expression

M6-5-2 (Required): If loop-counter is not modified by −− or ++

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

M6-5-2 (req.)

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

M6-5-2 (必要): ループカウンターが −− または ++ によって変更されていない場合、条件内で、ループカウンターは <=、<、>、または >= のオペランドとしてのみ使用されなければなりません。

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

M6-5-3 (Required): The loop-counter shall not be modified within condition or statement.

MISRA.FOR.COND.CHANGE  For loop counter is modified within the loop condition section

MISRA.FOR.STMT.CHANGE  For loop counter is modified within the loop statement

M6-5-3 (req.)

MISRA.FOR.COND.CHANGE  For loop counter is modified within the loop condition section

MISRA.FOR.STMT.CHANGE  For loop counter is modified within the loop statement

M6-5-3 (必要): ループカウンターは、条件またはステートメント内で変更されてはなりません。

MISRA.FOR.COND.CHANGE  For loop counter is modified within the loop condition section

MISRA.FOR.STMT.CHANGE  For loop counter is modified within the loop statement

M6-5-4 (Required): The loop-counter shall be modified by one of: −−

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

M6-5-4 (req.)

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

M6-5-4 (必要): ループカウンターは、−−、++、− = n、または + = n (n はループの期間中一定のまま) のいずれかによって変更されなければなりません。

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

M6-5-5 (Required): A loop-control-variable other than the loop-counter shall not be modified within condition or expression.

MISRA.FOR.LOOP_CONTROL.CHANGE.COND  Loop control variable is modified in condition section of a for loop

MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR  Loop control variable is modified in expression section of a for loop

M6-5-5 (req.)

MISRA.FOR.LOOP_CONTROL.CHANGE.COND  Loop control variable is modified in condition section of a for loop

MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR  Loop control variable is modified in expression section of a for loop

M6-5-5 (必要): ループカウンター以外のループ制御変数は、条件または式内で変更されてはなりません。

MISRA.FOR.LOOP_CONTROL.CHANGE.COND  Loop control variable is modified in condition section of a for loop

MISRA.FOR.LOOP_CONTROL.CHANGE.EXPR  Loop control variable is modified in expression section of a for loop

M6-5-6 (Required): A loop-control-variable other than the loop-counter which is modified in statement shall have type bool.

MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN  Loop control variable is not boolean

M6-5-6 (req.)

MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN  Loop control variable is not boolean

M6-5-6 (必要): ステートメントで変更されるループカウンター以外のループ制御変数は、bool 型でなければなりません。

MISRA.FOR.LOOP_CONTROL.NOT_BOOLEAN  Loop control variable is not boolean

M6-6-1 (Required): Any label referenced by a goto statement shall be declared in the same block

MISRA.GOTO.NESTED  Goto to a label declared in a nested compound statement

M6-6-1 (req.)

MISRA.GOTO.NESTED  Goto to a label declared in a nested compound statement

M6-6-1 (必要): goto ステートメントで参照されるラベルは同じブロック内、または goto ステートメントを囲むブロック内で宣言しなければなりません。

MISRA.GOTO.NESTED  Goto to a label declared in a nested compound statement

M6-6-2 (Required): The goto statement shall jump to a label declared later in the same function body.

MISRA.GOTO.AFTER.LABEL  Unconstrained use of goto

M6-6-2 (req.)

MISRA.GOTO.AFTER.LABEL  Unconstrained use of goto

M6-6-2 (必要): goto ステートメントは、同じ関数本体内で後で宣言されたラベルにジャンプしなければなりません。

MISRA.GOTO.AFTER.LABEL  Unconstrained use of goto

M6-6-3 (Required): The continue statement shall only be used within a well-formed for loop.

MISRA.CONTINUE.ILL  Continue statement is used in an ill-formed for loop

M6-6-3 (req.)

MISRA.CONTINUE.ILL  Continue statement is used in an ill-formed for loop

M6-6-3 (必要): continue ステートメントは、整形式の for ループ内でのみ使用されなければなりません。

MISRA.CONTINUE.ILL  Continue statement is used in an ill-formed for loop

M7-1-2 (Required): A pointer or reference parameter in a function shall be declared as pointer to const or reference to const if the corresponding object is not modified.

MISRA.PPARAM.NEEDS.CONST  Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const

M7-1-2 (req.)

MISRA.PPARAM.NEEDS.CONST  Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const

M7-1-2 (必要): 関数内のポインターまたは参照パラメーターは、対応するオブジェクトが変更されていない場合は、const へのポインターまたは const への参照として宣言しなければなりません。

MISRA.PPARAM.NEEDS.CONST  Pointer parameter is not used to modify the addressed object but is not declared as a pointer to const

M7-3-1 (Required): The global namespace shall only contain main

MISRA.NS.GLOBAL  Function, variable or type declaration in global namespace

MISRA.NS.GLOBAL.USING  Using directive or declaration in global namespace

M7-3-1 (req.)

MISRA.NS.GLOBAL  Function, variable or type declaration in global namespace

MISRA.NS.GLOBAL.USING  Using directive or declaration in global namespace

M7-3-1 (必要): グローバル名前空間には、main、名前空間宣言、extern "C" 宣言のみを含めなければなりません。

MISRA.NS.GLOBAL  Function, variable or type declaration in global namespace

MISRA.NS.GLOBAL.USING  Using directive or declaration in global namespace

M7-3-2 (Required): The identifier main shall not be used for a function other than the global function main.

MISRA.NS.MAIN  Non-global function with name 'main' is defined

M7-3-2 (req.)

MISRA.NS.MAIN  Non-global function with name 'main' is defined

M7-3-2 (必要): 識別子 main は、グローバル関数 main 以外の関数には使用してはなりません。

MISRA.NS.MAIN  Non-global function with name 'main' is defined

M7-3-3 (Required): There shall be no unnamed namespaces in header files.

MISRA.NAMESPACE.UNMD  Unnamed namespace in header file

M7-3-3 (req.)

MISRA.NAMESPACE.UNMD  Unnamed namespace in header file

M7-3-3 (必要): ヘッダーファイルに名前のない名前空間があってはなりません。

MISRA.NAMESPACE.UNMD  Unnamed namespace in header file

M7-3-4 (Required): Using-directives shall not be used.

MISRA.NS.USING_DIR  Using directive

M7-3-4 (req.)

MISRA.NS.USING_DIR  Using directive

M7-3-4 (必要): using ディレクティブは使用してはなりません。

MISRA.NS.USING_DIR  Using directive

M7-3-6 (Required): Using-directives and using-declarations (excluding class scope or function scope using-declarations) shall not be used in header files.

MISRA.NAMESPACE.DECL  Using-declaration in header file

MISRA.NAMESPACE.DIR  Using-directive in header file

MISRA.NS.USING.HEADER  Using directive or declaration is used in a header file

M7-3-6 (req.)

MISRA.NAMESPACE.DECL  Using-declaration in header file

MISRA.NAMESPACE.DIR  Using-directive in header file

MISRA.NS.USING.HEADER  Using directive or declaration is used in a header file

M7-3-6 (必要): using ディレクティブおよび using 宣言 (クラススコープまたは関数スコープの using 宣言を除く) は、ヘッダーファイルでは使用してはなりません。

MISRA.NAMESPACE.DECL  Using-declaration in header file

MISRA.NAMESPACE.DIR  Using-directive in header file

MISRA.NS.USING.HEADER  Using directive or declaration is used in a header file

M7-4-2 (Required): Assembler instructions shall only be introduced using the asm declaration.

MISRA.PRAGMA.ASM  Incorrect assembler instruction

M7-4-2 (req.)

MISRA.PRAGMA.ASM  Incorrect assembler instruction

M7-4-2 (必要): アセンブラー命令は、asm 宣言を使用してのみ導入しなければなりません。

MISRA.PRAGMA.ASM  Incorrect assembler instruction

M7-4-3 (Required): Assembly language shall be encapsulated and isolated.

MISRA.ASM.ENCAPS  Assembly language is not isolated.

M7-4-3 (req.)

MISRA.ASM.ENCAPS  Assembly language is not isolated.

M7-4-3 (必要): アセンブリ言語はカプセル化および分離されなければなりません。

MISRA.ASM.ENCAPS  Assembly language is not isolated.

M8-0-1 (Required): An init-declarator-list or a member-declarator-list shall consist of a single init-declarator or member-declarator respectively.

MISRA.DECL.MANY_DCLS  More than one declarator in one declaration

M8-0-1 (req.)

MISRA.DECL.MANY_DCLS  More than one declarator in one declaration

M8-0-1 (必要): 初期化宣言子リストまたはメンバー宣言子リストは、それぞれ単一の初期化宣言子またはメンバー宣言子で構成されなければなりません。

MISRA.DECL.MANY_DCLS  More than one declarator in one declaration

M8-3-1 (Required): Parameters in an overriding virtual function shall either use the same default arguments as the function they override

MISRA.SAME.DEFPARAMS  Overriding virtual function and the function it overrides have different default arguments

M8-3-1 (req.)

MISRA.SAME.DEFPARAMS  Overriding virtual function and the function it overrides have different default arguments

M8-3-1 (必要): オーバーライドする仮想関数のパラメータは、オーバーライドする関数と同じデフォルト引数を使用するか、デフォルト引数を指定しないかのいずれかでなければなりません。

MISRA.SAME.DEFPARAMS  Overriding virtual function and the function it overrides have different default arguments

M8-4-2 (Required): The identifiers used for the parameters in a re-declaration of a function shall be identical to those in the declaration.

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

M8-4-2 (req.)

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

M8-4-2 (必要): 関数の再宣言でパラメータに使用される識別子は、宣言内の識別子と同一でなければなりません。

MISRA.FUNC.PARAMS.IDENT  Identifiers used in declaration and definition of function are not identical

M8-4-4 (Required): A function identifier shall either be used to call the function or it shall be preceded by &.

MISRA.FUNC.ADDR  Address of a function is used without & operator

M8-4-4 (req.)

MISRA.FUNC.ADDR  Address of a function is used without & operator

M8-4-4 (必要): 関数識別子は、関数を呼び出すために使用されるか、または、その前に & が付けられなければなりません。

MISRA.FUNC.ADDR  Address of a function is used without & operator

M8-5-2 (Required): Braces shall be used to indicate and match the structure in the non-zero initialization of arrays and structures.

MISRA.INIT.BRACES  Incorrect initializer braces placement.

M8-5-2 (req.)

MISRA.INIT.BRACES  Incorrect initializer braces placement.

M8-5-2 (必要): 配列と構造体の非ゼロ初期化では、構造を示して一致させるために {} (波括弧) を使用しなければなりません。

MISRA.INIT.BRACES  Incorrect initializer braces placement.

M9-3-1 (Required): Const member functions shall not return non-const pointers or references to class-data.

MISRA.CONST.RET.NON_CONST  Constant member function returns non-const pointer to member variable

M9-3-1 (req.)

MISRA.CONST.RET.NON_CONST  Constant member function returns non-const pointer to member variable

M9-3-1 (必要): const メンバー関数は、非 const ポインターやクラスデータへの参照を返してはなりません。

MISRA.CONST.RET.NON_CONST  Constant member function returns non-const pointer to member variable

M9-3-3 (Required): If a member function can be made static then it shall be made static

MISRA.MEMB.NON_CONST  Non-const member function does not change any member variables

MISRA.MEMB.NON_STATIC  Non-static member function does not use other non-static members of the same class

M9-3-3 (req.)

MISRA.MEMB.NON_CONST  Non-const member function does not change any member variables

MISRA.MEMB.NON_STATIC  Non-static member function does not use other non-static members of the same class

M9-3-3 (必要): メンバー関数を static にできる場合は static にし、const にできる場合は const にしなければなりません。

MISRA.MEMB.NON_CONST  Non-const member function does not change any member variables

MISRA.MEMB.NON_STATIC  Non-static member function does not use other non-static members of the same class

M9-6-4 (Required): Named bit-fields with signed integer type shall have a length of more than one bit.

MISRA.BITFIELD.SIGNED  Length of a named signed bit-field is less than 2

M9-6-4 (req.)

MISRA.BITFIELD.SIGNED  Length of a named signed bit-field is less than 2

M9-6-4 (必要): 符号付き整数型の名前付きビットフィールドは 1 ビットを超える長さでなければなりません。

MISRA.BITFIELD.SIGNED  Length of a named signed bit-field is less than 2

M10-1-1 (Advisory): Classes should not be derived from virtual bases.

MISRA.DERIVE.VIRTUAL  Class is derived from virtual base

M10-1-1 (adv.)

MISRA.DERIVE.VIRTUAL  Class is derived from virtual base

M10-1-1 (推奨): クラスは仮想基底から派生してはなりません。

MISRA.DERIVE.VIRTUAL  Class is derived from virtual base

M10-1-2 (Required): A base class shall only be declared virtual if it is used in a diamond hierarchy.

MISRA.VIRTUAL.BASE.DIAMOND  Base class is used as virtual not in diamond hierarchy

M10-1-2 (req.)

MISRA.VIRTUAL.BASE.DIAMOND  Base class is used as virtual not in diamond hierarchy

M10-1-2 (必要): 基底クラスは、ダイヤモンド階層で使用される場合にのみ仮想として宣言しなければなりません。

MISRA.VIRTUAL.BASE.DIAMOND  Base class is used as virtual not in diamond hierarchy

M10-1-3 (Required): An accessible base class shall not be both virtual and non-virtual in the same hierarchy.

MISRA.BASE.VIRTUAL.NOTVIRTUAL  Base class is used as both virtual and not virtual in inheritance hierarchy

M10-1-3 (req.)

MISRA.BASE.VIRTUAL.NOTVIRTUAL  Base class is used as both virtual and not virtual in inheritance hierarchy

M10-1-3 (必要): アクセス可能な基底クラスは、同じ階層内で仮想と非仮想の両方であってはなりません。

MISRA.BASE.VIRTUAL.NOTVIRTUAL  Base class is used as both virtual and not virtual in inheritance hierarchy

M10-2-1 (Advisory): All accessible entity names within a multiple inheritance hierarchy should be unique.

MISRA.BASE.IDS.UNIQUE  Member name is used twice in inheritance hierarchy

M10-2-1 (adv.)

MISRA.BASE.IDS.UNIQUE  Member name is used twice in inheritance hierarchy

M10-2-1 (推奨): 多重継承階層内のアクセス可能なエンティティ名はすべて一意でなければなりません。

MISRA.BASE.IDS.UNIQUE  Member name is used twice in inheritance hierarchy

M10-3-3 (Required): A virtual function shall only be overridden by a pure virtual function if it is itself declared as pure virtual.

MISRA.PUREVIRT.OVRD  Pure virtual function overrides a non pure virtual function

M10-3-3 (req.)

MISRA.PUREVIRT.OVRD  Pure virtual function overrides a non pure virtual function

M10-3-3 (必要): 仮想関数は、それ自体が純粋仮想として宣言されている場合は、純粋仮想関数によってのみオーバーライドされなければなりません。

MISRA.PUREVIRT.OVRD  Pure virtual function overrides a non pure virtual function

M11-0-1 (Required): Member data in non-POD class types shall be private.

MISRA.MEMB.NOT_PRIVATE  Member variable in non-POD class is not private

M11-0-1 (req.)

MISRA.MEMB.NOT_PRIVATE  Member variable in non-POD class is not private

M11-0-1 (必要): 非 POD クラス型のメンバーデータはプライベートでなければなりません。

MISRA.MEMB.NOT_PRIVATE  Member variable in non-POD class is not private

M12-1-1 (Required): An object’s dynamic type shall not be used from the body of its constructor or destructor.

MISRA.CTOR.DYNAMIC  Object's dynamic type is used from the body of its constructor

MISRA.DTOR.DYNAMIC  Object's dynamic type is used from the body of its destructor

M12-1-1 (req.)

MISRA.CTOR.DYNAMIC  Object's dynamic type is used from the body of its constructor

MISRA.DTOR.DYNAMIC  Object's dynamic type is used from the body of its destructor

M12-1-1 (必要): オブジェクトの dynamic 型は、そのコンストラクターまたはデストラクターの本体から使用してはなりません。

MISRA.CTOR.DYNAMIC  Object's dynamic type is used from the body of its constructor

MISRA.DTOR.DYNAMIC  Object's dynamic type is used from the body of its destructor

M14-5-3 (Required): A copy assignment operator shall be declared when there is a template assignment operator with a parameter that is a generic parameter.

MISRA.COPYASSIGN.TMPL  A copy ssignment operator should be defined when class has a template copy assignment operator with a single generic parameter

M14-5-3 (req.)

MISRA.COPYASSIGN.TMPL  A copy ssignment operator should be defined when class has a template copy assignment operator with a single generic parameter

M14-5-3 (必要): 汎用パラメーターを持つテンプレート代入演算子がある場合は、コピー代入演算子を宣言しなければなりません。

MISRA.COPYASSIGN.TMPL  A copy ssignment operator should be defined when class has a template copy assignment operator with a single generic parameter

M14-6-1 (Required): In a class template with a dependent base

MISRA.TEMPLMEM.NOQUAL  In an instantiated template a member declared in a dependant base is used without a qualificator or 'this'

M14-6-1 (req.)

MISRA.TEMPLMEM.NOQUAL  In an instantiated template a member declared in a dependant base is used without a qualificator or 'this'

M14-6-1 (必要): 依存ベースを持つクラステンプレートでは、その依存ベースで見つかる名前は、すべて、修飾 ID または this-> を使用して参照されなければなりません。

MISRA.TEMPLMEM.NOQUAL  In an instantiated template a member declared in a dependant base is used without a qualificator or 'this'

M15-0-3 (Required): Control shall not be transferred into a try or catch block using a goto or a switch statement.

MISRA.TRY.JUMP  Control can be transferred into a try block with goto or switch statement

M15-0-3 (req.)

MISRA.TRY.JUMP  Control can be transferred into a try block with goto or switch statement

M15-0-3 (必要): goto または switch ステートメントを使用して、制御を try または catch ブロックに転送してはなりません。

MISRA.TRY.JUMP  Control can be transferred into a try block with goto or switch statement

M15-1-2 (Required): NULL shall not be thrown explicitly.

MISRA.THROW.NULL  NULL is thrown explicitly

M15-1-2 (req.)

MISRA.THROW.NULL  NULL is thrown explicitly

M15-1-2 (必要): null は明示的にスローさせてはなりません。

MISRA.THROW.NULL  NULL is thrown explicitly

M15-1-3 (Required): An empty throw (throw;) shall only be used in the compound statement of a catch handler.

MISRA.THROW.EMPTY  Empty throw expression does not belong to a catch block

M15-1-3 (req.)

MISRA.THROW.EMPTY  Empty throw expression does not belong to a catch block

M15-1-3 (必要): 空の throw (throw;) は、catch ハンドラーの複合ステートメントでのみ使用されなければなりません。

MISRA.THROW.EMPTY  Empty throw expression does not belong to a catch block

M15-3-3 (Required): Handlers of a function-try-block implementation of a class constructor or destructor shall not reference non-static members from this class or its bases.

MISRA.CTOR.TRY.NON_STATIC  Function try/catch block of constructor or destructor references non-static members

M15-3-3 (req.)

MISRA.CTOR.TRY.NON_STATIC  Function try/catch block of constructor or destructor references non-static members

M15-3-3 (必要): クラスコンストラクターまたはデストラクターの関数 try ブロック実装のハンドラーは、このクラスまたはそのベースの非静的メンバーを参照してはなりません。

MISRA.CTOR.TRY.NON_STATIC  Function try/catch block of constructor or destructor references non-static members

M15-3-6 (Required): Where multiple handlers are provided in a single try-catch statement or function-try-block for a derived class and some or all of its bases

MISRA.CATCH.WRONGORD  Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block

M15-3-6 (req.)

MISRA.CATCH.WRONGORD  Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block

M15-3-6 (必要): 派生クラスとその一部またはすべてのベースに対して、単一の try-catch ステートメントまたは function-try-block に複数のハンドラーが提供されている場合、ハンドラーはベースクラスの派生順に並べられなければなりません。

MISRA.CATCH.WRONGORD  Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block

M15-3-7 (Required): Where multiple handlers are provided in a single try-catch statement or function-try-block

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

M15-3-7 (req.)

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

M15-3-7 (必要): 単一の try-catch ステートメントまたは function-try-block に複数のハンドラーが提供されている場合、省略記号 (catch-all) ハンドラーは最後に出現しなければなりません。

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

M16-0-1 (Required): #include directives in a file shall only be preceded by other pre-processor directives or comments.

MISRA.INCL.INSIDE  Include directive preceded by a preprocessor output token

M16-0-1 (req.)

MISRA.INCL.INSIDE  Include directive preceded by a preprocessor output token

M16-0-1 (必要): ファイル内の #include ディレクティブの前には、他のプリプロセッサディレクティブまたはコメントのみを置かなければなりません。

MISRA.INCL.INSIDE  Include directive preceded by a preprocessor output token

M16-0-2 (Required): Macros shall only be #define’d or #undef’d in the global namespace.

MISRA.DEFINE.NOTGLOBAL  Define not at the global level

MISRA.UNDEF.NOTGLOBAL  Undef not at the global level

M16-0-2 (req.)

MISRA.DEFINE.NOTGLOBAL  Define not at the global level

MISRA.UNDEF.NOTGLOBAL  Undef not at the global level

M16-0-2 (必要): マクロは、グローバル名前空間内でのみ #define または #undef されるものとします。

MISRA.DEFINE.NOTGLOBAL  Define not at the global level

MISRA.UNDEF.NOTGLOBAL  Undef not at the global level

M16-0-5 (Required): Arguments to a function-like macro shall not contain tokens that look like pre-processing directives.

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

M16-0-5 (req.)

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

M16-0-5 (必要): 関数のようなマクロへの引数には、プリプロセッサディレクティブのように見えるトークンを含めてはなりません。

MISRA.EXPANSION.DIRECTIVE  Directive-like tokens within a macro argument

M16-0-6 (Required): In the definition of a function-like macro

MISRA.DEFINE.NOPARS  Macro parameter with no parentheses

M16-0-6 (req.)

MISRA.DEFINE.NOPARS  Macro parameter with no parentheses

M16-0-6 (必要): 関数のようなマクロの定義では、パラメーターの各インスタンスは、# または ## のオペランドとして使用されていない限り、括弧で囲まなければなりません。

MISRA.DEFINE.NOPARS  Macro parameter with no parentheses

M16-0-7 (Required): Undefined macro identifiers shall not be used in #if or #elif pre-processor directives

MISRA.ELIF.UNDEF  Undefined macros in #elif directive

MISRA.IF.UNDEF  Undefined macros in #if directive

M16-0-7 (req.)

MISRA.ELIF.UNDEF  Undefined macros in #elif directive

MISRA.IF.UNDEF  Undefined macros in #if directive

M16-0-7 (必要): 未定義のマクロ識別子は、定義済み演算子のオペランドとして使用する場合を除き、#if または #elif プリプロセッサディレクティブで使用してはなりません。

MISRA.ELIF.UNDEF  Undefined macros in #elif directive

MISRA.IF.UNDEF  Undefined macros in #if directive

M16-0-8 (Required): If the # token appears as the first token on a line

MISRA.USE.UNKNOWNDIR  Unknown preprocessor directive is used

M16-0-8 (req.)

MISRA.USE.UNKNOWNDIR  Unknown preprocessor directive is used

M16-0-8 (必要): # トークンが行の最初のトークンとして出現する場合は、その直後にプリプロセッサトークンが続かなければなりません。

MISRA.USE.UNKNOWNDIR  Unknown preprocessor directive is used

M16-1-1 (Required): The defined pre-processor operator shall only be used in one of the two standard forms.

MISRA.ELIF.DEFINED  Incorrect 'defined' usage in #elif directive

MISRA.IF.DEFINED  Incorrect 'defined' usage in #if directive

M16-1-1 (req.)

MISRA.ELIF.DEFINED  Incorrect 'defined' usage in #elif directive

MISRA.IF.DEFINED  Incorrect 'defined' usage in #if directive

M16-1-1 (必要): 定義されたプリプロセッサ演算子は、2 つの標準形式のいずれかでのみ使用しなければなりません。

MISRA.ELIF.DEFINED  Incorrect 'defined' usage in #elif directive

MISRA.IF.DEFINED  Incorrect 'defined' usage in #if directive

M16-1-2 (Required): All #else

MISRA.ELIF.OTHERFILE  #elif in an improper file

MISRA.ELSE.OTHERFILE  #else in an improper file

MISRA.ENDIF.OTHERFILE  #endif in an improper file

M16-1-2 (req.)

MISRA.ELIF.OTHERFILE  #elif in an improper file

MISRA.ELSE.OTHERFILE  #else in an improper file

MISRA.ENDIF.OTHERFILE  #endif in an improper file

M16-1-2 (必要): すべての #else、#elif、#endif プリプロセッサディレクティブは、それらが関連する #if または #ifdef ディレクティブと同じファイル内になければなりません。

MISRA.ELIF.OTHERFILE  #elif in an improper file

MISRA.ELSE.OTHERFILE  #else in an improper file

MISRA.ENDIF.OTHERFILE  #endif in an improper file

M16-2-3 (Required): Include guards shall be provided.

MISRA.INCGUARD  Include guard is not provided

M16-2-3 (req.)

MISRA.INCGUARD  Include guard is not provided

M16-2-3 (必要): インクルードガードが提供されなければなりません。

MISRA.INCGUARD  Include guard is not provided

M16-3-1 (Required): There shall be at most one occurrence of the # or ## operators in a single macro definition.

MISRA.DEFINE.SHARP.MANY  Several # or ## operators in a macro definition

M16-3-1 (req.)

MISRA.DEFINE.SHARP.MANY  Several # or ## operators in a macro definition

M16-3-1 (必要): 単一のマクロ定義内で、# または ## 演算子は最大 1 回出現しなければなりません。

MISRA.DEFINE.SHARP.MANY  Several # or ## operators in a macro definition

M16-3-2 (Advisory): The # and ## operators should not be used.

MISRA.DEFINE.SHARP  # or ## operator in a macro definition

M16-3-2 (adv.)

MISRA.DEFINE.SHARP  # or ## operator in a macro definition

M16-3-2 (推奨): # および ## 演算子は使用してはなりません。

MISRA.DEFINE.SHARP  # or ## operator in a macro definition

M17-0-2 (Required): The names of standard library macros and objects shall not be reused.

MISRA.UNDEF.WRONGNAME  Undefinition of a name from the standard library

MISRA.UNDEF.WRONGNAME.UNDERSCORE  Undefinition of a reserved name

M17-0-2 (req.)

MISRA.UNDEF.WRONGNAME  Undefinition of a name from the standard library

MISRA.UNDEF.WRONGNAME.UNDERSCORE  Undefinition of a reserved name

M17-0-2 (必要): 標準ライブラリのマクロとオブジェクトの名前は再利用してはなりません。

MISRA.UNDEF.WRONGNAME  Undefinition of a name from the standard library

MISRA.UNDEF.WRONGNAME.UNDERSCORE  Undefinition of a reserved name

M17-0-3 (Required): The names of standard library functions shall not be overridden.

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

M17-0-3 (req.)

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

M17-0-3 (必要): 標準ライブラリ関数の名前はオーバーライドされてはなりません。

MISRA.STDLIB.WRONGNAME  Reused name of standard library macro, object or function

MISRA.STDLIB.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a language entity

M17-0-5 (Required): The setjmp macro and the longjmp function shall not be used.

MISRA.STDLIB.LONGJMP  Use of setjmp macro or longjmp function

M17-0-5 (req.)

MISRA.STDLIB.LONGJMP  Use of setjmp macro or longjmp function

M17-0-5 (必要): setjmp マクロおよび longjmp 関数は使用してはなりません。

MISRA.STDLIB.LONGJMP  Use of setjmp macro or longjmp function

M18-0-3 (Required): The library functions abort

MISRA.STDLIB.ABORT  Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h

M18-0-3 (req.)

MISRA.STDLIB.ABORT  Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h

M18-0-3 (必要): ライブラリ <cstdlib> のライブラリ関数 abort、exit、getenv、および system は使用してはなりません。

MISRA.STDLIB.ABORT  Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h

M18-0-4 (Required): The time handling functions of library <ctime> shall not be used.

MISRA.STDLIB.TIME  Use of the time handling functions of library time.h

M18-0-4 (req.)

MISRA.STDLIB.TIME  Use of the time handling functions of library time.h

M18-0-4 (必要): ライブラリ <ctime> の時間処理関数は使用してはなりません。

MISRA.STDLIB.TIME  Use of the time handling functions of library time.h

M18-0-5 (Required): The unbounded functions of library <cstring> shall not be used.

MISRA.STDLIB.CSTRING  Function from 'cstring' library is used

MISRA.STDLIB.CSTRING.MACRO  Macro from 'cstring' library is used

M18-0-5 (req.)

MISRA.STDLIB.CSTRING  Function from 'cstring' library is used

MISRA.STDLIB.CSTRING.MACRO  Macro from 'cstring' library is used

M18-0-5 (必要): ライブラリ <cstring> の無制限関数は使用してはなりません。

MISRA.STDLIB.CSTRING  Function from 'cstring' library is used

MISRA.STDLIB.CSTRING.MACRO  Macro from 'cstring' library is used

M18-7-1 (Required): The signal handling facilities of <csignal> shall not be used.

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

M18-7-1 (req.)

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

M18-7-1 (必要): <csignal> のシグナル処理機能は使用してはなりません。

MISRA.STDLIB.SIGNAL  Use of the signal handling facilities of signal.h

M19-3-1 (Required): The error indicator errno shall not be used.

MISRA.STDLIB.ERRNO  Use of error indicator 'errno'

M19-3-1 (req.)

MISRA.STDLIB.ERRNO  Use of error indicator 'errno'

M19-3-1 (必要): エラーインジケーター errno は使用してはなりません。

MISRA.STDLIB.ERRNO  Use of error indicator 'errno'

M27-0-1 (Required): The stream input/output library <cstdio> shall not be used.

MISRA.STDLIB.STDIO  Use of input/output library stdio.h in production code

M27-0-1 (req.)

MISRA.STDLIB.STDIO  Use of input/output library stdio.h in production code

M27-0-1 (必要): ストリーム入力/出力ライブラリ <cstdio> は使用してはなりません。

MISRA.STDLIB.STDIO  Use of input/output library stdio.h in production code

\ characters shall not occur in a header file name or in #include directive.

MISRA.INCL.SYMS  Non-standard characters in header file names

a function return type

MISRA.OBJ.TYPE.IDENT  Type not identical with type of other declaration

a null statement shall only occur on a line by itself; it may be followed by a comment

MISRA.NULL.STMT  Null statement is not the only statement on line or comments are placed incorrectly

all direct non-virtual base classes and all non-static data members.

MISRA.CTOR.BASE  Constructor does not explicitly call constructor of its base class

and the unary & operator.

MISRA.CHAR.OPERAND  Expression of type 'char' or 'wchar_t' is used as non-character operand

and using the following directives: ...

MISRA.USE.DEFINE  Non-guarding macro definition

any ellipsis (catch-all) handler shall occur last.

MISRA.CATCH.NOALL  Ellipsis exception handler is not the last one in a try-catch block

any name that may be found in that dependent base shall be referred to using a qualified-id or this->.

MISRA.TEMPLMEM.NOQUAL  In an instantiated template a member declared in a dependant base is used without a qualificator or 'this'

calloc

AUTOSAR.STDLIB.MEMORY  Functions malloc, calloc, realloc and free shall not be used

const version shall also be implemented.

AUTOSAR.OP.INDEX.NON_CONST  If "operator[]" is to be overloaded with a non-const version, const version shall also be implemented

deallocation functions

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

distinct from the default label.

AUTOSAR.SWITCH.CASECOUNT  A switch statement shall have at least two case-clauses, distinct from the default label

do ... while or for statement shall be a compound statement.

MISRA.STMT.NO_COMPOUND  The body of switch, while, do/while or for statement is not a compound statement

each instance of a parameter shall be enclosed in parentheses

MISRA.DEFINE.NOPARS  Macro parameter with no parentheses

either (1) none

MISRA.ENUM.INIT  Non-first enumerator is explicitly initialized, but not all elements are explicitly initialized.

either directly or indirectly.

MISRA.FUNC.RECUR  Recursive function

enum type or union type declarations.

AUTOSAR.OP.TMPL.NON_MEMBER  A non-member generic operator shall only be declared in a namespace that does not contain class (struct) type, enum type or union type declarations

every 2 digits

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

every 3 digits

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

every 4 digits.

AUTOSAR.DIGIT_SEPARATORS  Digit sequences separators ' shall only be used as follows (1) for decimal, every 3 digits, (2) for hexadecimal, every 2 digits, (3) for binary, every 4 digits

except as operands to the defined operator.

MISRA.ELIF.UNDEF  Undefined macros in #elif directive

MISRA.IF.UNDEF  Undefined macros in #if directive

exit

MISRA.STDLIB.ABORT  Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h

function or enumerator declaration in the same scope.

MISRA.TYPE.NAMECLASH.CPP.2008  Identifier in one name space has same spelling as identifier in other name space

getenv and system from library <cstdlib> shall not be used.

MISRA.STDLIB.ABORT  Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h

including a pointer to function type.

MISRA.CAST.FUNC_PTR.CPP  Cast converts function pointer to other pointer type

indicating the size and signedness

AUTOSAR.BUILTIN_NUMERIC  Fixed width integer types from <cstdint> shall be used in place of the basic numerical types

its size shall be stated explicitly.

MISRA.DECL.ARRAY_SIZE  Declaration of array with unknown size

macros and functions in the C++ standard library shall not be defined

MISRA.DEFINE.WRONGNAME  Usage of a name from the standard library for naming a macro

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

move assignment operators and swap functions shall not exit with an exception.

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

move constructors

AUTOSAR.EXCPT.SPECIAL_MEMBER_THROW  All user-provided class destructors, deallocation functions, move constructors, move assignment operators and swap functions shall not exit with an exception

namespace declarations and extern "C" declarations.

MISRA.NS.GLOBAL  Function, variable or type declaration in global namespace

MISRA.NS.GLOBAL.USING  Using directive or declaration in global namespace

noexcept(true) or noexcept(<true condition>)

AUTOSAR.EXCPT.NOEXCPT_THROW  If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception

or + = n; where n remains constant for the duration of the loop.

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

or a function parameter shall be token-for-token identical in all declarations and re-declarations.

MISRA.OBJ.TYPE.IDENT  Type not identical with type of other declaration

or another if statement.

MISRA.IF.NO_COMPOUND  The body of if/else statement is not a compound statement

or else shall not specify any default arguments.

MISRA.SAME.DEFPARAMS  Overriding virtual function and the function it overrides have different default arguments

or enumeration shall not be declared in the definition of its type.

AUTOSAR.DECL.IN_DEFN  A class, structure, or enumeration shall not be declared in the definition of its type

or in a block enclosing the goto statement.

MISRA.GOTO.NESTED  Goto to a label declared in a nested compound statement

otherwise if it can be made const then it shall be made const.

MISRA.MEMB.NON_CONST  Non-const member function does not change any member variables

MISRA.MEMB.NON_STATIC  Non-static member function does not use other non-static members of the same class

otherwise symbolic names shall be used instead.

AUTOSAR.ADD.LITERAL  Literal values shall not be used apart from type initialization

provided that the first character following the null statement is a white-space character.

MISRA.NULL.STMT  Null statement is not the only statement on line or comments are placed incorrectly

realloc and free shall not be used.

AUTOSAR.STDLIB.MEMORY  Functions malloc, calloc, realloc and free shall not be used

redefined or undefined.

MISRA.DEFINE.WRONGNAME  Usage of a name from the standard library for naming a macro

MISRA.DEFINE.WRONGNAME.UNDERSCORE  Usage of a reserved name for naming a macro

shall be used in place of the basic numerical types.

AUTOSAR.BUILTIN_NUMERIC  Fixed width integer types from <cstdint> shall be used in place of the basic numerical types

should have a file name extension of ".cpp".

AUTOSAR.ADD.FILE.EXT  Local implementation files not having .cpp file extension

std::exception and all otherwise unhandled exceptions.

MISRA.CATCH.ALL  No ellipsis exception handler in a try-catch block

structure

AUTOSAR.DECL.IN_DEFN  A class, structure, or enumeration shall not be declared in the definition of its type

that are defined locally in the project

AUTOSAR.ADD.FILE.EXT  Local implementation files not having .cpp file extension

the equality operators == and ! =

MISRA.CHAR.OPERAND  Expression of type 'char' or 'wchar_t' is used as non-character operand

the function shall place all objects/resources that the function constructed in valid states or it shall delete them.

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

the handlers shall be ordered most-derived to base class.

MISRA.CATCH.WRONGORD  Handler for a base exception class precedes to a handler for a derived exception class in a try-catch block

the logical && or the logical || operators shall have type bool.

MISRA.LOGIC.NOT_BOOL  Operand of logical operation is not boolean

the loop-counter shall only be used as an operand to <=

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

the order of initialization shall be following: ...

CWARN.MEMBER.INIT.ORDER  Members of the initialization list are not listed in the order in which they are declared in the class

the result shall be immediately cast to the underlying type of the operand.

MISRA.CAST.UNSIGNED_BITS  The result of bitwise operation on unsigned char or short is not cast back to original type

the trailing return type syntax shall be used if the return type depends on the type of parameters.

AUTOSAR.ADD.FUNC.TEMPLATE.TRAIL.RTN  In function templates, the trailing return type syntax shall be used if the return type depends on the type of parameters

then

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

then before a throw

MLK.MIGHT  Memory Leak - possible

MLK.MUST  Memory Leak

MLK.RET.MIGHT  Memory Leak - possible

MLK.RET.MUST  Memory Leak

then both sized and unsized versions shall be defined.

AUTOSAR.OP.DELETE.MISSING_VERSION  If a project has sized or unsized version of operator "delete" globally defined, then both sized and unsized versions shall be defined

then it shall be immediately followed by a pre-processing token.

MISRA.USE.UNKNOWNDIR  Unknown preprocessor directive is used

then it shall be the only constructor apart from special member function constructors.

AUTOSAR.ADD.CTOR.INIT.LIST  If a class has a user-declared constructor that takes a parameter of type std::initializer_list, then it shall be the only constructor apart from special member function constructors

then it shall deallocate the object’s resources and it shall throw an exception.

CL.MLK  Memory Leak - in destructor

then it shall not exit with an exception.

AUTOSAR.EXCPT.NOEXCPT_THROW  If a function is declared to be noexcept, noexcept(true) or noexcept(<true condition>), then it shall not exit with an exception

then the class should be declared final.

AUTOSAR.DTOR.NON_VIRTUAL  If a public destructor of a class is non-virtual, then the class should be declared final

unless it is used as the operand of # or ##.

MISRA.DEFINE.NOPARS  Macro parameter with no parentheses

while

MISRA.STMT.NO_COMPOUND  The body of switch, while, do/while or for statement is not a compound statement

within condition

MISRA.FOR.COND.EQ  ++ or -- operations are not used to change loop counter, but condition tests loop counter for equality

without any side effects.

AUTOSAR.ADD.ASSIGN.OP.SIDE.EFFECT  Move and copy assignment operators shall either move or respectively copy base classes and data members of a class, without any side effects

|| operators shall not contain side effects.

MISRA.LOGIC.SIDEEFF  Right operand in a logical 'and' or 'or' expression contains side effects

− = n

MISRA.FOR.INCR  For loop counter is modified in an inappropriate way

Support Summary:

  • 228 enforced rules

"MISRA", "MISRA C" and "MISRA C++" are registered trademarks of The MISRA Consortium Limited. ​