自動車開発向け HKMC C++ セキュアコーディング基準

ガイドライン チェッカー名および説明
HKMC P-CON-001 (Middle): Do not destroy a mutex while it is locked

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

HKMC P-CON-001 (中): ロックされている間にミューテックスを破棄しないでください

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

HKMC P-CON-004 (Low): Prevent deadlock by locking mutex in predefined order

CONC.DL  デッドロック

HKMC P-CON-004 (低): 事前定義された順序でミューテックスをロックすることでデッドロックを回避します

CONC.DL  デッドロック

HKMC P-CON-005 (Low): Wrap function that can wake up falsely in a loop

CERT.CONC.WAKE_IN_LOOP  擬似的にループを起動する可能性のあるラップ関数

HKMC P-CON-005 (低): ループ内で偽って起動する可能性のあるラップ関数

CERT.CONC.WAKE_IN_LOOP  擬似的にループを起動する可能性のあるラップ関数

HKMC P-CON-006 (Low): Protect thread safety and liveness when using condition variables

CERT.CONC.UNSAFE_COND_VAR  条件変数の使用時に、スレッドセーフと活性を維持します

HKMC P-CON-006 (低): 条件変数を使用するときにスレッドセーフと活性を保護します

CERT.CONC.UNSAFE_COND_VAR  条件変数の使用時に、スレッドセーフと活性を維持します

HKMC P-CTR-001 (High): Guarantee that container indices and iterators are within the valid range

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

HKMC P-CTR-001 (高): コンテナーインデックスと反復子が有効な範囲内にあることを保証します

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

HKMC P-CTR-002 (High): Do not use valid references

ITER.CONTAINER.MODIFIED  無効な反復子の使用

HKMC P-CTR-002 (高): コンテナーの要素を参照するために、有効な参照、ポインター、および反復子を使用しないでください

ITER.CONTAINER.MODIFIED  無効な反復子の使用

HKMC P-CTR-003 (High): Overflow protection required when copying data

ITER.END.OUTPARAM.MIGHT  出力反復子としての 'end' の使用

ITER.END.OUTPARAM.MUST  出力反復子としての 'end' の使用

HKMC P-CTR-003 (高): データをコピーする場合はオーバーフロー保護が必要

ITER.END.OUTPARAM.MIGHT  出力反復子としての 'end' の使用

ITER.END.OUTPARAM.MUST  出力反復子としての 'end' の使用

HKMC P-CTR-004 (High): Use valid iterator ranges

CXX.ITER.END.BEGIN  範囲の終わりを表す反復子が範囲の始まりの前にあります

ITER.INAPPROPRIATE  コンテナーオブジェクトが不適切な反復子の使用

ITER.INAPPROPRIATE.MULTIPLE  コンテナーオブジェクトが不適切な反復子の使用

HKMC P-CTR-004 (高): 有効な反復子範囲を使用します

CXX.ITER.END.BEGIN  範囲の終わりを表す反復子が範囲の始まりの前にあります

ITER.INAPPROPRIATE  コンテナーオブジェクトが不適切な反復子の使用

ITER.INAPPROPRIATE.MULTIPLE  コンテナーオブジェクトが不適切な反復子の使用

HKMC P-CTR-006 (High): Do not use an additive operator on an iterator if the result would overflow

ITER.ADVANCE.NONADJACENT  反復子間の距離は 1 より大きい値にする

HKMC P-CTR-006 (高): 結果がオーバーフローする場合は、反復子で加法演算子を使用しない

ITER.ADVANCE.NONADJACENT  反復子間の距離は 1 より大きい値にする

HKMC P-DCL-001 (High): Do not define a C-style variadic function

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

HKMC P-DCL-001 (高): C スタイルの variadic 関数を定義しないでください

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

HKMC P-DCL-002 (Low): Do not declare or define a reserved identifier

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

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

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

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

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

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

HKMC P-DCL-002 (低): 予約済みの識別子を宣言または定義しないでください

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

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

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

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

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

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

HKMC P-DCL-003 (Low): Do not qualify a reference type with const or volatile

CERT.DCL.REF_TYPE.CONST_OR_VOLATILE  参照型を const または volatile で修飾しないでください

HKMC P-DCL-003 (低): 参照型を const または volatile で修飾しないでください

CERT.DCL.REF_TYPE.CONST_OR_VOLATILE  参照型を const または volatile で修飾しないでください

HKMC P-DCL-004 (Low): Do not write syntactically ambiguous declarations

CERT.DCL.AMBIGUOUS_DECL  構文的に曖昧な宣言を作成しないでください

HKMC P-DCL-004 (低): 構文的に曖昧な宣言を作成しないでください

CERT.DCL.AMBIGUOUS_DECL  構文的に曖昧な宣言を作成しないでください

HKMC P-DCL-005 (Low): Overload allocation and deallocation functions as a pair in the same scope

CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC  同一のスコープ内のペアとしての割り当ておよび割り当て解除関数をオーバーロードします

HKMC P-DCL-005 (低): 同一のスコープ内のペアとして割り当ておよび割り当て解除の関数をオーバーロードします

CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC  同一のスコープ内のペアとしての割り当ておよび割り当て解除関数をオーバーロードします

HKMC P-DCL-006 (Low): Attention of data leaks when passing class objects across trust boundaries

PORTING.STORAGE.STRUCT  構造の要素のバイト位置が配置属性およびパッケージ属性に依存している可能性があります。

HKMC P-DCL-006 (低): 信頼境界を越えてクラスオブジェクトを渡すときのデータ漏洩に関する注意

PORTING.STORAGE.STRUCT  構造の要素のバイト位置が配置属性およびパッケージ属性に依存している可能性があります。

HKMC P-DCL-007 (Low): Do not reenter of function during initalization of static objects

CXX.STATIC.OBJ.RECURSION  静的オブジェクトの初期化中に関数を再入力しないでください

HKMC P-DCL-007 (低): 静的オブジェクトの初期化中に関数を再入力しないでください

CXX.STATIC.OBJ.RECURSION  静的オブジェクトの初期化中に関数を再入力しないでください

HKMC P-DCL-008 (Low): Prevent termination due to exceptions in destructors or deallocation functions

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

HKMC P-DCL-008 (低): デストラクターまたは割り当て解除関数での例外による終了を防ぎます

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

HKMC P-DCL-009 (High): Do not modify the standard namespaces

CERT.DCL.STD_NS_MODIFIED  標準名前空間を変更しないでください

HKMC P-DCL-009 (高): 標準の名前空間を変更しないでください

CERT.DCL.STD_NS_MODIFIED  標準名前空間を変更しないでください

HKMC P-DCL-010 (Middle): Do not define an unnamed namespace in a header file

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

HKMC P-DCL-010 (中): 名前が付いていない名前空間をヘッダーファイルで定義しないでください

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

HKMC P-DCL-011 (High): Compliance of ODR (One-Definition Rule)

AUTOSAR.ADD.ONEDEFRULE.FUNC  関数が一定義規則に違反しています

AUTOSAR.ADD.ONEDEFRULE.VAR  変数が一定義規則に違反しています

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

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

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

HKMC P-DCL-011 (高): ODR (一定義規則: One-Definition Rule) の遵守

AUTOSAR.ADD.ONEDEFRULE.FUNC  関数が一定義規則に違反しています

AUTOSAR.ADD.ONEDEFRULE.VAR  変数が一定義規則に違反しています

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

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

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

HKMC P-ERR-001 (Low): Do not abruptly terminate the program

CERT.ERR.ABRUPT_TERM  突然プログラムを終了しないでください

HKMC P-ERR-001 (低): プログラムを突然終了しないでください

CERT.ERR.ABRUPT_TERM  突然プログラムを終了しないでください

HKMC P-ERR-003 (Low): Do not use setjmp() or longjum()

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

HKMC P-ERR-003 (低): setjmp() または longjum() を使用しないでください

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

HKMC P-ERR-004 (Low): Do not reference base classes or class data members in a constructor or destructor function-try-block handler

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

HKMC P-ERR-004 (低): コンストラクターまたはデストラクターの function-try-block ハンドラーでは、基本クラスまたはクラスデータメンバーを参照しないでください

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

HKMC P-ERR-005 (Middle): Exception handling in order from lowest class to highest class

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

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

HKMC P-ERR-005 (中): 最低クラスから最高クラスの順での例外処理

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

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

HKMC P-ERR-008 (Low): Prevent to leak resources when handling exceptions

CL.MLK  メモリリーク - デストラクタで発生

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

RH.LEAK  リソースリーク

HKMC P-ERR-008 (低): 例外を処理するときにリソースのリークを防ぎます

CL.MLK  メモリリーク - デストラクタで発生

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

RH.LEAK  リソースリーク

HKMC P-ERR-010 (Low): Catch exceptions by lvalue reference

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

HKMC P-ERR-010 (低): lvalue 参照によって例外をキャッチします

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

HKMC P-ERR-011 (Middle): Detect errors when converting a string to a number

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

HKMC P-ERR-011 (中): 文字列を数値に変換するときにエラーを検出します

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

HKMC P-EXP-001 (Middle): Attention to the order of evaluation that causes the side effects

CERT.EXPR.PARENS  式内の演算子の優先度は明示的にする必要があります。

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

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

MISRA.INCR_DECR.SIDEEFF.2012  インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません

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

HKMC P-EXP-001 (中): 副作用を引き起こす評価の順番に関する注意

CERT.EXPR.PARENS  式内の演算子の優先度は明示的にする必要があります。

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

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

MISRA.INCR_DECR.SIDEEFF.2012  インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません

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

HKMC P-EXP-002 (Low): Do not delete an array through a pointer of the incorrect type

CERT.EXPR.DELETE_ARR.BASE_PTR  不正な型のポインターを使用して配列を削除しないでください

HKMC P-EXP-002 (低): 不正確な型のポインターを介して配列を削除しないでください

CERT.EXPR.DELETE_ARR.BASE_PTR  不正な型のポインターを使用して配列を削除しないでください

HKMC P-EXP-003 (Low): Attention to use expressions that do not evaluate(calculate) operands

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

HKMC P-EXP-003 (低): オペランドを評価 (計算) しない式の使用に関する注意

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

HKMC P-EXP-004 (High): Do not reference memory before initialized

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

HKMC P-EXP-004 (高): 初期化される前にメモリを参照しないでください

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

HKMC P-EXP-005 (High): Do not access an object of its lifetime

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

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

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

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

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

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

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

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

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

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

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

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

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

HKMC P-EXP-005 (高): 存続期間であるオブジェクトにアクセスしないでください

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

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

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

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

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

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

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

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

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

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

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

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

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

HKMC P-EXP-006 (Middle): Do not access a CV variable through a CV(const or volatile) unqualified variable

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

HKMC P-EXP-006 (中): CV (const または volatile) 非修飾変数を介して CV 変数にアクセスしないでください

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

HKMC P-EXP-007 (Middle): Calling va_start requires passing an object of the appropriate type

CERT.VA_START.TYPE  正しい型のオブジェクトを va_start に渡す

HKMC P-EXP-007 (中): va_start を呼び出すには、適切なタイプのオブジェクトを渡す必要があります

CERT.VA_START.TYPE  正しい型のオブジェクトを va_start に渡す

HKMC P-EXP-010 (High): Do not access the bits that are part of the object's value

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

HKMC P-EXP-010 (高): オブジェクトの値の一部であるビットにアクセスしないでください

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

HKMC P-FIO-002 (Middle): Close file pointers that are no longer needed

RH.LEAK  リソースリーク

HKMC P-FIO-002 (中): 不要になったファイルポインターを閉じます

RH.LEAK  リソースリーク

HKMC P-MEM-001 (High): Do not reference to deallocated memory

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

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

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

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

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

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

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

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

HKMC P-MEM-001 (高): 割り当て解除されたメモリを参照しないでください

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

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

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

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

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

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

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

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

HKMC P-MEM-002 (High): Properly deallocate dynamically allocated resources

CL.FMM  メモリの解放の不一致 - デストラクタで発生

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

HKMC P-MEM-002 (高): 動的に割り当てられたリソースを適切に割り当て解除します

CL.FMM  メモリの解放の不一致 - デストラクタで発生

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

HKMC P-MEM-004 (High): Explicitly construct and destruct objects when managing object lifecycle

CERT.MEM.OBJ_LIFETIME_CTOR  初期化されていない heap メンバー関数の呼び出し

CERT.MEM.OBJ_LIFETIME_DTOR  手動で割り当てられたメモリを持つオブジェクトは明示的に破棄されない

HKMC P-MEM-004 (高): オブジェクトの有効期間を管理する場合はオブジェクトを明示的に構築および破棄する

CERT.MEM.OBJ_LIFETIME_CTOR  初期化されていない heap メンバー関数の呼び出し

CERT.MEM.OBJ_LIFETIME_DTOR  手動で割り当てられたメモリを持つオブジェクトは明示的に破棄されない

HKMC P-MEM-005 (High): Provide placement new with properly aligned pointers to sufficient storage capacity

CERT.MEM.PLACEMENTNEW.MISALIGNED  アライメントが適切なストレージを placement new に提供します

CERT.MEM.PLACEMENTNEW.TOOSMALL  十分なストレージを placement new に提供します。

HKMC P-MEM-005 (高): TBD

CERT.MEM.PLACEMENTNEW.MISALIGNED  アライメントが適切なストレージを placement new に提供します

CERT.MEM.PLACEMENTNEW.TOOSMALL  十分なストレージを placement new に提供します。

HKMC P-MEM-006 (High): Do not store an already-owned pointer value in an unrelated smart pointer

CERT.MEM.SMART_PTR.OWNED  複数のスマートポインターでのポインター所有権の共有

CERT.MEM.SMART_PTR.OWNED.THIS  基礎となるリソースが無関係なスマートポインターによって既に所有されている可能性がある

HKMC P-MEM-006 (高): 既に所有されているポインター値を無関係なスマートポインターに格納しない

CERT.MEM.SMART_PTR.OWNED  複数のスマートポインターでのポインター所有権の共有

CERT.MEM.SMART_PTR.OWNED.THIS  基礎となるリソースが無関係なスマートポインターによって既に所有されている可能性がある

HKMC P-MEM-007 (Middle): Memory release missing after lifetime

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

HKMC P-MEM-007 (中): 存続期間後に欠落しているメモリ解放

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

HKMC P-MSC-001 (Middle): Do not use std::rand() for generating pseudo random number

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

HKMC P-MSC-001 (中): 疑似乱数の生成には std::rand() を使用しないでください

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

HKMC P-MSC-002 (Middle): Proper seeding for random number generator

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  乱数エンジンをデフォルトで初期化してはなりません

CERT.MSC.SEED_RANDOM  疑似乱数ジェネレータを適切にシードする

HKMC P-MSC-002 (中): 乱数発生器に適切なシード

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  乱数エンジンをデフォルトで初期化してはなりません

CERT.MSC.SEED_RANDOM  疑似乱数ジェネレータを適切にシードする

HKMC P-MSC-003 (Middle): Value returning function require returning values from all exit paths

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

HKMC P-MSC-003 (中): 値を返す関数はすべての終了パスから値を返す必要があります

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

HKMC P-MSC-004 (Middle): Do not return from function declared [[noreturn]]

CERT.MSC.NORETURN_FUNC_RETURNS  [[noreturn]] と宣言された関数から返さないでください

HKMC P-MSC-004 (中): [[noreturn]] を宣言した関数から返さないでください

CERT.MSC.NORETURN_FUNC_RETURNS  [[noreturn]] と宣言された関数から返さないでください

HKMC P-MSC-005 (Middle): Return of stack variable address

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

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

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

HKMC P-MSC-005 (中): スタック変数アドレスを返す

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

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

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

HKMC P-OOP-001 (Low): Do not invoke virtual functions from constructors or destructors

CERT.OOP.CTOR.VIRTUAL_FUNC  コンストラクタまたは、デストラクタから仮想関数を呼出してはならない

HKMC P-OOP-001 (低): コントラクターまたはデストラクターから仮想関数を呼び出さないでください

CERT.OOP.CTOR.VIRTUAL_FUNC  コンストラクタまたは、デストラクタから仮想関数を呼出してはならない

HKMC P-OOP-003 (Low): Do not delete a polymorphic object without a virtual destructor

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

CWARN.DTOR.NONVIRT.DELETE  仮想メソッドを持ち、仮想デストラクタを持たないクラスのオブジェクトの式を削除しています

HKMC P-OOP-003 (低): 仮想デストラクターなしで多相オブジェクトを削除しないでください

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

CWARN.DTOR.NONVIRT.DELETE  仮想メソッドを持ち、仮想デストラクタを持たないクラスのオブジェクトの式を削除しています

HKMC P-OOP-004 (Middle): Write constructor member initializers in the fixed order

CERT.OOP.CTOR.INIT_ORDER  コンストラクターメンバー初期化子を正規の順序で作成します

HKMC P-OOP-004 (中): コンストラクターメンバーの初期化子を一定の順序で作成します

CERT.OOP.CTOR.INIT_ORDER  コンストラクターメンバー初期化子を正規の順序で作成します

HKMC P-OOP-005 (Low): Correctly handle self-copy assignment

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

HKMC P-OOP-005 (低): セルフコピーの割り当てを正しく処理します

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

HKMC P-OOP-006 (High): Do not use pointer-to-member operators to access nonexistent members

CERT.OOP.PTR_MEMBER.NO_MEMBER  メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください

HKMC P-OOP-006 (高): メンバーへのポインター演算子を使用して、存在しないメンバーにアクセスしないでください

CERT.OOP.PTR_MEMBER.NO_MEMBER  メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください

HKMC P-OOP-007 (High): Prefer special member functions and overloaded operators over the C standard library

CERT.OOP.CSTD_FUNC_USE  C 標準ライブラリ関数よりも特殊メンバー関数とオーバーロードされた演算子を優先します

HKMC P-OOP-007 (高): C 標準ライブラリよりも特別なメンバー関数とオーバーロードされた演算子を優先します

CERT.OOP.CSTD_FUNC_USE  C 標準ライブラリ関数よりも特殊メンバー関数とオーバーロードされた演算子を優先します

HKMC P-OOP-008 (Low): Do not modify the source object in copy operators

CERT.OOP.COPY_MUTATES  コピー操作でソースオブジェクトを変更してはいけません

HKMC P-OOP-008 (低): コピー演算子でソースオブジェクトを変更しないでください

CERT.OOP.COPY_MUTATES  コピー操作でソースオブジェクトを変更してはいけません

HKMC P-OOP-009 (Middle): pubic static field do not mark as final

CXX.STATIC.OBJ.FINAL  初期化されたパブリック静的フィールドは最終としてマークされていません

HKMC P-OOP-009 (中): 公開静的フィールドは最終としてマークされません

CXX.STATIC.OBJ.FINAL  初期化されたパブリック静的フィールドは最終としてマークされていません

HKMC P-OOP-010 (Middle): Important data element public declaration

CXX.MEMBER.IMPORTANT.PRIVATE  重要なメンバーデータはプライベートにすべきです

HKMC P-OOP-010 (中): 重要なデータ要素のパブリック宣言

CXX.MEMBER.IMPORTANT.PRIVATE  重要なメンバーデータはプライベートにすべきです

HKMC P-OOP-011 (High): Access critical private variables through public methods

CXX.MEMBER.CRITICAL.PUBLIC.METHOD  重大なプライベートメンバーデータは、パブリックメソッドによって直接書き込み可能であってはなりません

HKMC P-OOP-011 (高): パブリックメソッドを介して重要なプライベート変数にアクセスします

CXX.MEMBER.CRITICAL.PUBLIC.METHOD  重大なプライベートメンバーデータは、パブリックメソッドによって直接書き込み可能であってはなりません

HKMC P-STR-001 (High): Guarantee that storage for strings has sufficient space for character data and the null terminator

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

HKMC P-STR-001 (高): 文字列のストレージに文字データと null 終了文字のための十分なスペースがあることを保証します

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

HKMC P-STR-003 (High): Do not use invalid references

ITER.CONTAINER.MODIFIED  無効な反復子の使用

HKMC P-STR-003 (高): basic_string を参照するときに、無効な参照、ポインター、および反復子を使用しないでください

ITER.CONTAINER.MODIFIED  無効な反復子の使用

P-CON-001

CERT.CONC.MUTEX.DESTROY_WHILE_LOCKED  ロックされている間はミューテックスを破棄しないでください

P-CON-004

CONC.DL  デッドロック

P-CON-005

CERT.CONC.WAKE_IN_LOOP  擬似的にループを起動する可能性のあるラップ関数

P-CON-006

CERT.CONC.UNSAFE_COND_VAR  条件変数の使用時に、スレッドセーフと活性を維持します

P-CTR-001

ABV.ANY_SIZE_ARRAY  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL  バッファオーバーフロー - 配列インデックスが範囲外

ABV.GENERAL.MULTIDIMENSION  バッファオーバーフロー - 配列インデックスが範囲外

ABV.NON_ARRAY  非配列オブジェクトが配列として使用される

ABV.STACK  バッファオーバーフロー - ローカル配列インデックスが範囲外

ABV.TAINTED  未検証の入力によるバッファオーバーフロー

SV.TAINTED.ALLOC_SIZE  メモリ割り当て時の未検証の整数の使用

SV.TAINTED.CALL.INDEX_ACCESS  関数呼び出し時の配列インデックスとしての未検証の整数の使用

SV.TAINTED.CALL.LOOP_BOUND  関数呼び出しのループ条件での未検証の整数の使用

SV.TAINTED.INDEX_ACCESS  配列インデックスとしての未検証の整数の使用

P-CTR-002

ITER.CONTAINER.MODIFIED  無効な反復子の使用

P-CTR-003

ITER.END.OUTPARAM.MIGHT  出力反復子としての 'end' の使用

ITER.END.OUTPARAM.MUST  出力反復子としての 'end' の使用

P-CTR-004

CXX.ITER.END.BEGIN  範囲の終わりを表す反復子が範囲の始まりの前にあります

ITER.INAPPROPRIATE  コンテナーオブジェクトが不適切な反復子の使用

ITER.INAPPROPRIATE.MULTIPLE  コンテナーオブジェクトが不適切な反復子の使用

P-CTR-006

ITER.ADVANCE.NONADJACENT  反復子間の距離は 1 より大きい値にする

P-DCL-001

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

P-DCL-002

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

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

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

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

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

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

P-DCL-003

CERT.DCL.REF_TYPE.CONST_OR_VOLATILE  参照型を const または volatile で修飾しないでください

P-DCL-004

CERT.DCL.AMBIGUOUS_DECL  構文的に曖昧な宣言を作成しないでください

P-DCL-005

CERT.DCL.SAME_SCOPE_ALLOC_DEALLOC  同一のスコープ内のペアとしての割り当ておよび割り当て解除関数をオーバーロードします

P-DCL-006

PORTING.STORAGE.STRUCT  構造の要素のバイト位置が配置属性およびパッケージ属性に依存している可能性があります。

P-DCL-007

CXX.STATIC.OBJ.RECURSION  静的オブジェクトの初期化中に関数を再入力しないでください

P-DCL-008

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

P-DCL-009

CERT.DCL.STD_NS_MODIFIED  標準名前空間を変更しないでください

P-DCL-010

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

P-DCL-011

AUTOSAR.ADD.ONEDEFRULE.FUNC  関数が一定義規則に違反しています

AUTOSAR.ADD.ONEDEFRULE.VAR  変数が一定義規則に違反しています

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

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

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

P-ERR-001

CERT.ERR.ABRUPT_TERM  突然プログラムを終了しないでください

P-ERR-003

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

P-ERR-004

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

P-ERR-005

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

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

P-ERR-008

CL.MLK  メモリリーク - デストラクタで発生

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

RH.LEAK  リソースリーク

P-ERR-010

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

P-ERR-011

CERT.ERR.CONV.STR_TO_NUM  文字列を数値に変換する際にエラーを検出する

P-EXP-001

CERT.EXPR.PARENS  式内の演算子の優先度は明示的にする必要があります。

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

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

MISRA.INCR_DECR.SIDEEFF.2012  インクリメント (++) またはデクリメント (--) 演算子を含む完全な式では、インクリメントまたはデクリメント演算子によって生じる以外に他の副作用が存在してはなりません

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

P-EXP-002

CERT.EXPR.DELETE_ARR.BASE_PTR  不正な型のポインターを使用して配列を削除しないでください

P-EXP-003

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

P-EXP-004

UNINIT.CTOR.MIGHT  コンストラクタにおける未初期化の変数の可能性

UNINIT.CTOR.MUST  コンストラクタにおける未初期化の変数

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

P-EXP-005

CL.FFM.ASSIGN  解放済みメモリの使用 (二重解放) - operator= が無いため

CL.FFM.COPY  解放済みメモリの使用 (二重解放) - コピーコンストラクタが無いため

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

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

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

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

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

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

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

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

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

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

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

UNINIT.HEAP.MIGHT  未初期化のヒープの使用の可能性

UNINIT.HEAP.MUST  未初期化のヒープの使用

UNINIT.STACK.ARRAY.MIGHT  未初期化の配列の可能性

UNINIT.STACK.ARRAY.MUST  未初期化の配列

UNINIT.STACK.ARRAY.PARTIAL.MUST  一部が未初期化の配列

UNINIT.STACK.MIGHT  未初期化の変数の可能性

UNINIT.STACK.MUST  未初期化の変数

P-EXP-006

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

P-EXP-007

CERT.VA_START.TYPE  正しい型のオブジェクトを va_start に渡す

P-EXP-010

CERT.MEMCMP.PADDED_DATA  パディングデータを比較しないでください

P-FIO-002

RH.LEAK  リソースリーク

P-MEM-001

UFM.DEREF.MIGHT  解放済みメモリの逆参照の可能性

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

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

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

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

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

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

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

P-MEM-002

CL.FMM  メモリの解放の不一致 - デストラクタで発生

FMM.MIGHT  メモリの解放の不一致の可能性

FMM.MUST  メモリの解放の不一致

P-MEM-004

CERT.MEM.OBJ_LIFETIME_CTOR  初期化されていない heap メンバー関数の呼び出し

CERT.MEM.OBJ_LIFETIME_DTOR  手動で割り当てられたメモリを持つオブジェクトは明示的に破棄されない

P-MEM-005

CERT.MEM.PLACEMENTNEW.MISALIGNED  アライメントが適切なストレージを placement new に提供します

CERT.MEM.PLACEMENTNEW.TOOSMALL  十分なストレージを placement new に提供します。

P-MEM-006

CERT.MEM.SMART_PTR.OWNED  複数のスマートポインターでのポインター所有権の共有

CERT.MEM.SMART_PTR.OWNED.THIS  基礎となるリソースが無関係なスマートポインターによって既に所有されている可能性がある

P-MEM-007

MLK.MIGHT  メモリリークの可能性

MLK.MUST  メモリリーク

MLK.RET.MIGHT  メモリリークの可能性

MLK.RET.MUST  メモリリーク

P-MSC-001

CERT.MSC.STD_RAND_CALL  疑似乱数の生成に std::rand() を使用しないでください

P-MSC-002

AUTOSAR.STDLIB.RANDOM.NBR_GEN_DEFAULT_INIT  乱数エンジンをデフォルトで初期化してはなりません

CERT.MSC.SEED_RANDOM  疑似乱数ジェネレータを適切にシードする

P-MSC-003

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

P-MSC-004

CERT.MSC.NORETURN_FUNC_RETURNS  [[noreturn]] と宣言された関数から返さないでください

P-MSC-005

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

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

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

P-OOP-001

CERT.OOP.CTOR.VIRTUAL_FUNC  コンストラクタまたは、デストラクタから仮想関数を呼出してはならない

P-OOP-003

CL.MLK.VIRTUAL  メモリリーク - デストラクタで発生している可能性

CWARN.DTOR.NONVIRT.DELETE  仮想メソッドを持ち、仮想デストラクタを持たないクラスのオブジェクトの式を削除しています

P-OOP-004

CERT.OOP.CTOR.INIT_ORDER  コンストラクターメンバー初期化子を正規の順序で作成します

P-OOP-005

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

P-OOP-006

CERT.OOP.PTR_MEMBER.NO_MEMBER  メンバー演算子へのポインターを使用して、存在しないメンバーにアクセスしないでください

P-OOP-007

CERT.OOP.CSTD_FUNC_USE  C 標準ライブラリ関数よりも特殊メンバー関数とオーバーロードされた演算子を優先します

P-OOP-008

CERT.OOP.COPY_MUTATES  コピー操作でソースオブジェクトを変更してはいけません

P-OOP-009

CXX.STATIC.OBJ.FINAL  初期化されたパブリック静的フィールドは最終としてマークされていません

P-OOP-010

CXX.MEMBER.IMPORTANT.PRIVATE  重要なメンバーデータはプライベートにすべきです

P-OOP-011

CXX.MEMBER.CRITICAL.PUBLIC.METHOD  重大なプライベートメンバーデータは、パブリックメソッドによって直接書き込み可能であってはなりません

P-STR-001

NNTS.MIGHT  バッファオーバーフロー - 非 NULL 終了文字列

NNTS.MUST  バッファオーバーフロー - 非 NULL 終了文字列

SV.FMT_STR.BAD_SCAN_FORMAT  入力書式指定子エラー

SV.UNBOUND_STRING_INPUT.CIN  バインドされていない文字列入力についての cin の使用法

SV.UNBOUND_STRING_INPUT.FUNC  バインドされていない文字列入力の使用法

P-STR-003

ITER.CONTAINER.MODIFIED  無効な反復子の使用

and iterators to reference element of a container

ITER.CONTAINER.MODIFIED  無効な反復子の使用

and iterators when referencing to basic_string

ITER.CONTAINER.MODIFIED  無効な反復子の使用

pointer

ITER.CONTAINER.MODIFIED  無効な反復子の使用

pointers

ITER.CONTAINER.MODIFIED  無効な反復子の使用

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