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

ガイドライン チェッカー名および説明
C-ARR-001

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

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

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

C-ARR-003

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

C-ARR-004

MISRA.PTR.ARITH.2012  演算式にポインターが使用されています

C-ARR-006

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

C-ARR-008

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

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

C-ARR-009

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

C-ARR-010

MISRA.FUNC.UNMATCHED.PARAMS  関数に渡される仮引数と実際のパラメーターの数が一致しません

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

C-ARR-011

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

C-CON-004

CERT.CONC.LIB_FUNC_USE  ライブラリ関数の使用時には競合状態を避けてください

C-CON-006

CONC.DL  デッドロック

C-CON-007

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

C-CON-008

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

C-CON-009

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

C-CON-011

CERT.CONC.ATOMIC_TWICE_EXPR  1 つの式でアトミック変数を 2 回参照しないでください

C-DCI-001

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

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

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

C-DCI-002

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

C-DCI-003

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

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

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

C-DCI-004

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER  フレキシブル配列メンバーの宣言時には正しい構文を使用する

C-DCI-005

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

C-DCI-006

MISRA.FUNC.NOPROT.DEF.2012  関数は定義されていますが、プロトタイプがありません

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

C-DCI-007

CERT.DCL.SWITCH.VAR_BEFORE_CASE  switch ステートメント内では最初の case ラベルより前で変数を宣言しないでください

C-DCI-009

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

C-DCI-010

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

C-DCI-011

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

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

C-DCI-012

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

C-ENV-001

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1  ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません

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

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

C-ENV-003

CERT.EXIT.HANDLER_TERMINATE  すべての exit ハンドラーは正常に戻る必要があります

C-ENV-004

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

C-ERR-001

CXX.ERRNO.INCORRECTLY_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない

CXX.ERRNO.NOT_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している

CXX.ERRNO.NOT_SET  ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない

C-ERR-002

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

C-ERR-003

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

C-EXP-001

MISRA.FUNC.UNUSEDRET.2012  非 void 関数の戻り値を使用してください

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

C-EXP-002

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

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

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

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

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

C-EXP-003

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

C-EXP-004

SV.TAINTED.CALL.DEREF  未検証ポインターの逆参照

SV.TAINTED.DEREF  未検証ポインターの逆参照

C-EXP-005

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

C-EXP-006

EFFECT  ステートメントの影響はありません

C-EXP-007

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

C-EXP-009

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

C-EXP-010

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

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

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

PORTING.CAST.PTR  両方ともポインタでない型といずれかがポインタでない型間のキャスト

PORTING.CAST.PTR.FLTPNT  非浮動小数点型のポインタへの浮動小数点式のポインタのキャスト

PORTING.CAST.PTR.SIZE  サイズに互換性がない可能性がある型への式のキャストの可能性

C-EXP-011

MISRA.CAST.FUNC_PTR.2012   関数を指すポインタと、別の非互換タイプとの間で実行された変換

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012   オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

C-EXP-012

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

C-EXP-013

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

C-EXP-014

MISRA.TYPE.RESTRICT.QUAL.2012  restrict 型修飾子は使用しない

C-EXP-015

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

C-EXP-016

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

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

C-EXP-017

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

C-FIO-001

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

C-FIO-002

CWARN.CMPCHR.EOF  'char' 式と EOF 定数との比較

C-FIO-007

RH.LEAK  リソースリーク

C-FIO-008

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.PRINT_IMPROP_LENGTH  print 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  print 関数呼び出しの引数が少なすぎます

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  print 関数呼び出しの引数が多すぎます

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_IMPROP_LENGTH  scan 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

SV.FMT_STR.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

C-FIO-009

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

C-FLP-001

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

C-FLP-002

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

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

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

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

C-FLP-003

PORTING.CAST.FLTPNT  非浮動小数点タイプへの浮動小数点式のキャスト

C-INT-001

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

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

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

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

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

PRECISION.LOSS  精度の損失

C-INT-002

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

C-INT-003

PRECISION.LOSS  精度の損失

PRECISION.LOSS.CALL  関数呼び出し中の精度の損失

C-INT-004

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

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

C-INT-005

DBZ.CONST  ゼロ定数による除算が発生しました

DBZ.CONST.CALL  値 '0' が除数としてこの値を使用できる関数に渡されます

DBZ.GENERAL  ゼロ除算が発生した可能性があります

DBZ.GENERAL.FLOAT  浮動小数点数のゼロ除算が発生した可能性があります

DBZ.ITERATOR  ループ反復子でゼロ除算が発生した可能性があります

DBZ.ITERATOR.CALL  関数呼出しでゼロ除算が発生した可能性があります

DBZ.ITERATOR.FLOAT  ループ反復子でゼロ除算が発生した可能性があります

C-INT-006

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

C-INT-007

NUM.OVERFLOW  オーバーフローの可能性

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

C-INT-008

MISRA.CAST.OBJ_PTR_TO_INT.2012   オブジェクトを指すポインタと、整数タイプとの間で実行された変換

C-INT-009

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

C-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  解放済みメモリの使用

C-MEM-002

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

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

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

MLK.MUST  メモリリーク

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

MLK.RET.MUST  メモリリーク

C-MEM-004

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

MLK.MUST  メモリリーク

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

MLK.RET.MUST  メモリリーク

C-MEM-005

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

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

C-MEM-007

CXX.REALLOC  realloc() の使用は避けてください

C-MSC-003

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

C-MSC-004

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

C-MSC-005

CERT.MSC.ASCTIME  asctime() 関数に無効なデータを渡さないでください

C-MSC-006

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

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

C-MSC-008

VA.LIST.INDETERMINATE  不定値を持つ va_list に対する va_arg() の呼び出し

C-MSC-010

CXX.GETLOGIN  マルチスレッドアプリケーションで getlogin を使用しないでください

C-MSC-013

RCA  危険な暗号化アルゴリズムが使用されています

C-MSC-014

SV.WEAK_CRYPTO.WEAK_HASH  弱ハッシュ関数

C-MSC-015

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

C-POS-002

CXX.POSIX.VFORK  vfork() を使用しないでください

C-POS-003

CERT.PUTENV.AUTO_VARIABLE  自動変数へのポインターを引数として putenv() を呼び出さないでください

CXX.PUTENV.LOCAL.PTR  putenv() でポインターをローカル変数に渡さないでください

C-POS-005

BYTEORDER.HTON.SEND  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.HTON.WRITE  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.READ  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.RECV  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

C-POS-006

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

C-POS-008

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

C-POS-009

CONC.DBL_LOCK  二重ロック

CONC.DBL_UNLOCK  二重ロック解除

CONC.DL  デッドロック

CONC.NO_UNLOCK  変数のロック解除の欠落

C-POS-011

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

C-POS-012

CWARN.NOEFFECT.SELF_ASSIGN  変数は自身に割り当てられます

CWARN.NOEFFECT.UCMP.GE  符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.GE.MACRO  マクロ内で符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.LT  符号なし値と 0 との比較は、常に false になります

CWARN.NOEFFECT.UCMP.LT.MACRO  マクロ内で符号なし値と 0 との比較は、常に false になります

CWARN.NULLCHECK.FUNCNAME  関数アドレスが 0 と直接比較されます

EFFECT  ステートメントの影響はありません

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

LA_UNUSED  ラベルが使用されていません

MISRA.STMT.NO_EFFECT  そのステートメントは副作用がなく、制御フローを変更しません

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

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

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

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

C-PRE-002

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

C-PRE-003

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

C-STR-001

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

C-STR-002

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

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

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

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

C-STR-003

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

C-STR-004

AUTOSAR.STDLIB.CCTYPE.UCHAR  <cctype> で定義される文字処理関数の引数は、unsigned char として表現できなければなりません

MISRA.ETYPE.ASSIGN.2012   より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て

C-STR-005

CXX.DIFF.WIDTH.STR_AND_FUNC  関数の呼び出し時にナロー文字列とワイド文字列の間で暗黙のキャストが行われます

C-STR-006

CXX.MALLOC.WCHAR_LENGTH  wchar_t バッファの場合、malloc でメモリを割り当てるときに (wsclen()+1*sizeof(wchar_t)) を使用します

HKMC C-ARR-001 (High): Ensure that the index is within the valid range for memory read and write operations of the array[AP

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

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

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

HKMC C-ARR-001 (高): インデックスが配列のメモリ読み取りと書き込み操作の有効な範囲内にあることを確認してください [AP

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

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

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

HKMC C-ARR-003 (Middle): Do not subtract or compare two pointers that do not reference the same array[AP

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

HKMC C-ARR-003 (中): 同じ配列を参照していない 2 つのポインターを減算または比較しないでください [AP

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

HKMC C-ARR-004 (Middle): Do not add or subtract an integer to a pointer to a non-array object[AP

MISRA.PTR.ARITH.2012  演算式にポインターが使用されています

HKMC C-ARR-004 (中): 配列以外のオブジェクトを指すポインターに整数を加算または減算しないでください [AP

MISRA.PTR.ARITH.2012  演算式にポインターが使用されています

HKMC C-ARR-006 (High): Do not add and subtract integers resized automatically in pointer[AP

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

HKMC C-ARR-006 (高): ポインターで自動的にサイズ変更された整数を加算および減算しないでください [AP

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

HKMC C-ARR-008 (High): Write before buffer start

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

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

HKMC C-ARR-008 (高): バッファ開始前の書き込み

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

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

CXX.SUSPICIOUS_INDEX_CHECK  境界チェック後のインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.CALL  境界チェック後の関数呼び出しでのインデックスの不審な使用

CXX.SUSPICIOUS_INDEX_CHECK.ZERO  ゼロのインデックスチェック後のインデックスの不審な使用

RABV.CHECK  境界チェック前のインデックスの不審な使用

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

SV.STRBO.BOUND_SPRINTF  バインドされた sprintf でのバッファオーバーフロー

SV.STRBO.UNBOUND_SPRINTF  バインドされていない sprintf でのバッファオーバーフロー

HKMC C-ARR-009 (Low): Buffer access using source buffer size

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

HKMC C-ARR-009 (低): ソースバッファサイズを使用したバッファアクセス

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

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

ABV.ITERATOR  バッファオーバーフロー - 配列インデックスが範囲外の可能性

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

HKMC C-ARR-010 (Middle): Attention not to include invalid arguments when calling a function[MCU]

MISRA.FUNC.UNMATCHED.PARAMS  関数に渡される仮引数と実際のパラメーターの数が一致しません

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

HKMC C-ARR-010 (中): 関数を呼び出すときに無効な引数を含めないための注意 [MCU]

MISRA.FUNC.UNMATCHED.PARAMS  関数に渡される仮引数と実際のパラメーターの数が一致しません

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

HKMC C-ARR-011 (High): Attention for incorrect judgement of return value by function

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-ARR-011 (高): 関数による戻り値の誤判定に関する注意

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-CON-004 (Middle): Avoid race conditions when using library functions

CERT.CONC.LIB_FUNC_USE  ライブラリ関数の使用時には競合状態を避けてください

HKMC C-CON-004 (中): ライブラリ関数を使用するときに競合状態を避けます

CERT.CONC.LIB_FUNC_USE  ライブラリ関数の使用時には競合状態を避けてください

HKMC C-CON-006 (Low): Lock according to predefine order to avoid deadlock

CONC.DL  デッドロック

HKMC C-CON-006 (低): デッドロックを回避するために事前定義された順序に従ってロックします

CONC.DL  デッドロック

HKMC C-CON-007 (Low): Wrapping of functions that can spuriously wake up in a loop

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

HKMC C-CON-007 (低): ループ内で擬似的に起動する可能性のある関数のラッピング

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

HKMC C-CON-008 (Low): Do not call signal() in a multithreaded program

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

HKMC C-CON-008 (低): マルチスレッドプログラムで signal() を呼び出さないでください

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

HKMC C-CON-009 (Low): Preserve thread safety and liveness when using condition variables

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

HKMC C-CON-009 (低): 条件変数を使用するときにスレッドセーフと活性を維持します

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

HKMC C-CON-011 (Middle): Do not reference to an atomic variable twice in an expression

CERT.CONC.ATOMIC_TWICE_EXPR  1 つの式でアトミック変数を 2 回参照しないでください

HKMC C-CON-011 (中): 1 つの式でアトミック変数を 2 回参照しないでください

CERT.CONC.ATOMIC_TWICE_EXPR  1 つの式でアトミック変数を 2 回参照しないでください

HKMC C-DCI-001 (High): Do not returning and assigning local variable address

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

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

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

HKMC C-DCI-001 (高): ローカル変数アドレスを戻したり、代入したりしないでください

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

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

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

HKMC C-DCI-002 (Middle): Do not declare same variable for internal and external linkage

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

HKMC C-DCI-002 (中): 内部と外部のリンケージに同じ変数を宣言しないでください

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

HKMC C-DCI-003 (Low): Do not declare or define a reserved identifier

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

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

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

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

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

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

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

HKMC C-DCI-004 (Low): Need to use the correct syntax when declaring a flexible array

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER  フレキシブル配列メンバーの宣言時には正しい構文を使用する

HKMC C-DCI-004 (低): 柔軟な配列を宣言するときに正しい構文を使用する必要があります

CERT.STRUCT.FLEXIBLE_ARRAY_MEMBER  フレキシブル配列メンバーの宣言時には正しい構文を使用する

HKMC C-DCI-005 (Low): Need to avoid information leakage when passing a structure across a trust boundary

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

HKMC C-DCI-005 (低): 信頼境界を越えて構造を渡すときに情報のリークを避ける必要があります

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

HKMC C-DCI-006 (Low): Do not declare of incompatible function or object

MISRA.FUNC.NOPROT.DEF.2012  関数は定義されていますが、プロトタイプがありません

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

HKMC C-DCI-006 (低): 互換性のない関数またはオブジェクトを宣言しないでください

MISRA.FUNC.NOPROT.DEF.2012  関数は定義されていますが、プロトタイプがありません

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

HKMC C-DCI-007 (Middle): Do not declare variable in a switch statement before the first case label

CERT.DCL.SWITCH.VAR_BEFORE_CASE  switch ステートメント内では最初の case ラベルより前で変数を宣言しないでください

HKMC C-DCI-007 (中): switch ステートメントで最初の case ラベルの前に変数を宣言しないでください

CERT.DCL.SWITCH.VAR_BEFORE_CASE  switch ステートメント内では最初の case ラベルより前で変数を宣言しないでください

HKMC C-DCI-009 (Middle): Do not miss default case in switch statement

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

HKMC C-DCI-009 (中): switch ステートメントでデフォルトの case を欠かさないでください

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

HKMC C-DCI-010 (Middle): Do not omit break in switch statement

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

HKMC C-DCI-010 (中): switch ステートメントで break を省略しないでください

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

HKMC C-DCI-011 (High): Need explicit handling of operator precedence using parentheses

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

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

HKMC C-DCI-011 (高): 括弧を使用して演算子の優先順位を明示的に処理する必要があります

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

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

HKMC C-DCI-012 (High): Do not compare numerical ranges without minimum check

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

HKMC C-DCI-012 (高): 最小チェックなしで数値範囲を比較しないでください

RN.INDEX  負の値のチェック前のインデックスの使用は問題となる可能性があります

HKMC C-ENV-001 (Low): Do not modify the object referenced by the return value of certain functions

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1  ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません

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

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

HKMC C-ENV-001 (低): 特定の関数の戻り値で参照されるオブジェクトを変更しないでください

MISRA.STDLIB.CTYPE.RANGE.2012_AMD1  ctype.h で関数に渡される値はすべて unsigned char として表現できるか、または値 EOF でなければなりません

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

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

HKMC C-ENV-003 (Middle): All exit handlers must return normally

CERT.EXIT.HANDLER_TERMINATE  すべての exit ハンドラーは正常に戻る必要があります

HKMC C-ENV-003 (中): すべての exit ハンドラーは正常に戻る必要があります

CERT.EXIT.HANDLER_TERMINATE  すべての exit ハンドラーは正常に戻る必要があります

HKMC C-ENV-004 (High): Do not call system()

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

HKMC C-ENV-004 (高): system() を呼び出さないでください

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

HKMC C-ERR-001 (Middle): Attention when calling a library related the errno

CXX.ERRNO.INCORRECTLY_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない

CXX.ERRNO.NOT_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している

CXX.ERRNO.NOT_SET  ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない

HKMC C-ERR-001 (中): errno に関連するライブラリを呼び出す際の注意

CXX.ERRNO.INCORRECTLY_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックは必要ない

CXX.ERRNO.NOT_CHECKED  ライブラリ関数を呼び出した後に、errno の条件チェックが欠落している

CXX.ERRNO.NOT_SET  ライブラリ関数を呼び出す前に、errno はゼロにリセットされていない

HKMC C-ERR-002 (High): Detect and handle errors of standard library

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-ERR-002 (高): 標準ライブラリのエラーを検出および処理します

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-ERR-003 (Middle): Detect errors when converting a string to a number

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

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

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

HKMC C-EXP-001 (Middle): Do not ignore return value by functions

MISRA.FUNC.UNUSEDRET.2012  非 void 関数の戻り値を使用してください

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-EXP-001 (中): 関数による戻り値を無視しないでください

MISRA.FUNC.UNUSEDRET.2012  非 void 関数の戻り値を使用してください

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-EXP-002 (Middle): Attention to the order of calculation(evaluation) that causes the side effects

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

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

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

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

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

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

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

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

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

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

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

HKMC C-EXP-003 (High): Do not reference(access

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 C-EXP-003 (高): 初期化されていないメモリを参照 (アクセス、読み取り) しないでください

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 C-EXP-004 (Middle): Attention not to reference abnormal pointer

SV.TAINTED.CALL.DEREF  未検証ポインターの逆参照

SV.TAINTED.DEREF  未検証ポインターの逆参照

HKMC C-EXP-004 (中): 異常なポインターを参照しないための注意

SV.TAINTED.CALL.DEREF  未検証ポインターの逆参照

SV.TAINTED.DEREF  未検証ポインターの逆参照

HKMC C-EXP-005 (Low): Attention when using assignment operator instead of comparison operators

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

HKMC C-EXP-005 (低): 比較演算子の代わりに代入演算子を使用する際の注意

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

HKMC C-EXP-006 (Middle): Attention when using comparison operators instead of assignment operators

EFFECT  ステートメントの影響はありません

HKMC C-EXP-006 (中): 代入演算子の代わりに比較演算子を使用する際の注意

EFFECT  ステートメントの影響はありません

HKMC C-EXP-007 (High): Attention to external input not checked for the control condition of the loop

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

HKMC C-EXP-007 (高): ループの制御条件に対するチェックが行われていない外部入力に関する注意

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

HKMC C-EXP-009 (High): Do not null pointer dereference

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

HKMC C-EXP-009 (高): null ポインターを逆参照しないでください

NPD.CHECK.CALL.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性のある関数に渡す可能性があります

NPD.CHECK.CALL.MUST  ポインタを明示的に NULL チェックした後に逆参照する可能性がある関数に渡します

NPD.CHECK.MIGHT  ポインタを明示的に NULL チェックした後に逆参照する可能性があります

NPD.CHECK.MUST  ポインタを明示的に NULL チェックした後に逆参照します

NPD.CONST.CALL  逆参照する可能性のある関数に NULL を渡しています

NPD.CONST.DEREF  NULL は逆参照されます

NPD.FUNC.CALL.MIGHT  NULL を返す関数の戻り値が、これを逆参照する可能性のある別の関数に渡される可能性があります

NPD.FUNC.CALL.MUST  NULL を返す関数の戻り値が、これを逆参照する可能性がある別の関数に渡されます

NPD.FUNC.MIGHT  NULL を返す可能性のある関数の戻り値が逆参照される場合があります

NPD.FUNC.MUST  NULL を返す可能性がある関数の戻り値が逆参照されます

NPD.GEN.CALL.MIGHT  NULLポインタを逆参照する可能性がある関数に渡す場合があります

NPD.GEN.CALL.MUST  NULLポインタを逆参照する関数に渡します

NPD.GEN.MIGHT  NULLポインタを逆参照する可能性があります

NPD.GEN.MUST  null ポインターが逆参照されます

RNPD.CALL  NULL チェック前のポインタの、関数呼び出しにおける逆参照は問題となる可能性があります

RNPD.DEREF  NULL チェック前のポインタの逆参照は問題となる可能性があります

HKMC C-EXP-010 (Low): Do not cast pointer into more strictly aligned pointer types

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

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

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

PORTING.CAST.PTR  両方ともポインタでない型といずれかがポインタでない型間のキャスト

PORTING.CAST.PTR.FLTPNT  非浮動小数点型のポインタへの浮動小数点式のポインタのキャスト

PORTING.CAST.PTR.SIZE  サイズに互換性がない可能性がある型への式のキャストの可能性

HKMC C-EXP-010 (低): より厳密に整列されたポインター型にポインターをキャストしないでください

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

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

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

PORTING.CAST.PTR  両方ともポインタでない型といずれかがポインタでない型間のキャスト

PORTING.CAST.PTR.FLTPNT  非浮動小数点型のポインタへの浮動小数点式のポインタのキャスト

PORTING.CAST.PTR.SIZE  サイズに互換性がない可能性がある型への式のキャストの可能性

HKMC C-EXP-011 (Middle): Do not variable access through pointers of incompatible types

MISRA.CAST.FUNC_PTR.2012   関数を指すポインタと、別の非互換タイプとの間で実行された変換

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012   オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

HKMC C-EXP-011 (中): 互換性のない型のポインターを介して変数にアクセスしないでください

MISRA.CAST.FUNC_PTR.2012   関数を指すポインタと、別の非互換タイプとの間で実行された変換

MISRA.CAST.INCOMPLETE_PTR_TO_ANY.2012   不完全なタイプ を指すポインタと、別のタイプとの間で実行された変換

MISRA.CAST.OBJ_PTR_TO_NON_INT.2012   オブジェクトを指すポインタと、非整数算術演算タイプとの間のキャスト

MISRA.CAST.OBJ_PTR_TO_OBJ_PTR.2012   オブジェクト タイプを指すポインタと、異なるオブジェクト タイプを指す別のポインタとの間のキャスト

HKMC C-EXP-012 (Low): Do not modify constant object

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

HKMC C-EXP-012 (低): 定数オブジェクトを変更しないでください

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

HKMC C-EXP-013 (Middle): Do not compare padding data

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

HKMC C-EXP-013 (中): パディングデータを比較しないでください

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

HKMC C-EXP-014 (Middle): Attention to avoid undefined behavior when using a pointer that qualifies restrict

MISRA.TYPE.RESTRICT.QUAL.2012  restrict 型修飾子は使用しない

HKMC C-EXP-014 (中): restrict を修飾するポインターを使用する際の、未定義の動作を避けることに関する注意

MISRA.TYPE.RESTRICT.QUAL.2012  restrict 型修飾子は使用しない

HKMC C-EXP-015 (Low): Do not pass an expression that changes the value of variable as an operand to sizeof

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

HKMC C-EXP-015 (低): 変数の値を変更する式をオペランドとして sizeof、_Alignof、_Generic に渡さないでください

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

HKMC C-EXP-016 (Low): Do not perform assignment operation on certain operators

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

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

HKMC C-EXP-016 (低): 特定の演算子で代入演算を行わないでください

ASSIGCOND.CALL  割り当て条件 (呼び出し)

ASSIGCOND.GEN  割り当て条件

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

HKMC C-EXP-017 (Low): Do not use a bitwise operator with Boolean operand

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

HKMC C-EXP-017 (低): ブール型のオペランドでビット演算子を使用しないでください

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

HKMC C-FIO-001 (High): Exclude user input from format strings

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

HKMC C-FIO-001 (高): 書式文字列からユーザー入力を除外します

SV.TAINTED.FMTSTR  書式文字列での未検証データの使用

HKMC C-FIO-002 (High): Distinguish between characters read from a file and EOF or WEOF

CWARN.CMPCHR.EOF  'char' 式と EOF 定数との比較

HKMC C-FIO-002 (高): ファイルから読み込んだ文字と EOF または WEOF を区別します

CWARN.CMPCHR.EOF  'char' 式と EOF 定数との比較

HKMC C-FIO-007 (Middle): Close file when they are no longer needed

RH.LEAK  リソースリーク

HKMC C-FIO-007 (中): ファイルを不要になったときに閉じます

RH.LEAK  リソースリーク

HKMC C-FIO-008 (High): Use valid format strings

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.PRINT_IMPROP_LENGTH  print 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  print 関数呼び出しの引数が少なすぎます

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  print 関数呼び出しの引数が多すぎます

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_IMPROP_LENGTH  scan 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

SV.FMT_STR.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

HKMC C-FIO-008 (高): 有効な書式文字列を使用します

SV.FMT_STR.PRINT_FORMAT_MISMATCH.BAD  互換性がない print 関数パラメーターの型

SV.FMT_STR.PRINT_FORMAT_MISMATCH.UNDESIRED  予期しない print 関数パラメーターの型

SV.FMT_STR.PRINT_IMPROP_LENGTH  print 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.FEW  print 関数呼び出しの引数が少なすぎます

SV.FMT_STR.PRINT_PARAMS_WRONGNUM.MANY  print 関数呼び出しの引数が多すぎます

SV.FMT_STR.SCAN_FORMAT_MISMATCH.BAD  互換性がない scan 関数パラメーターの型

SV.FMT_STR.SCAN_FORMAT_MISMATCH.UNDESIRED  予期しない scan 関数パラメーターの型

SV.FMT_STR.SCAN_IMPROP_LENGTH  scan 関数呼び出しの長さ修飾子の不適切な使用

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.FEW  scan 関数呼び出しの引数が少なすぎます

SV.FMT_STR.SCAN_PARAMS_WRONGNUM.MANY  scan 関数呼び出しの引数が多すぎます

SV.FMT_STR.UNKWN_FORMAT  print 関数呼び出しの書式指定子が不明です

HKMC C-FIO-009 (Low): Do not concurrent execution using shared resource with improper synchronization(Race condition)

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

HKMC C-FIO-009 (低): 同期が不適切な共有リソースを使用して同時実行しないでください (競合状態)

SV.TOCTOU.FILE_ACCESS  ファイル アクセス時の作成日時/使用日時の競合状態

HKMC C-FLP-001 (High): Do not use floating-point variables as loop counters

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

HKMC C-FLP-001 (高): 浮動小数点変数をループカウンターとして使用しないでください

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

HKMC C-FLP-002 (Low): Ensure that floating-point type conversion occurs within the range of new types

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

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

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

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

HKMC C-FLP-002 (低): 浮動小数点型の変換が新しい型の範囲内で発生することを確認してください

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

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

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

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

HKMC C-FLP-003 (Low): Preserve precision when converting from integer type to floating-point type

PORTING.CAST.FLTPNT  非浮動小数点タイプへの浮動小数点式のキャスト

HKMC C-FLP-003 (低): 整数型を浮動小数点型に変換するときに精度を保持します

PORTING.CAST.FLTPNT  非浮動小数点タイプへの浮動小数点式のキャスト

HKMC C-INT-001 (Middle): Attention to integer conversion rules(CERT recommendations)

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

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

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

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

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

PRECISION.LOSS  精度の損失

HKMC C-INT-001 (中): 整数変換規則に関する注意 (CERT 推奨)

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

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

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

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

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

PRECISION.LOSS  精度の損失

HKMC C-INT-002 (High): Ensure that unsigned integer operations do not wrap

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

HKMC C-INT-002 (高): 符号なし整数演算がラップしないことを確認してください

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

HKMC C-INT-003 (High): Integer conversion must be guaranteed not to result in lost or misinterpreted data

PRECISION.LOSS  精度の損失

PRECISION.LOSS.CALL  関数呼び出し中の精度の損失

HKMC C-INT-003 (高): 整数変換により、データが失われたり、誤解釈されないように、保証する必要があります

PRECISION.LOSS  精度の損失

PRECISION.LOSS.CALL  関数呼び出し中の精度の損失

HKMC C-INT-004 (High): Ensure that signed integer operations do not overflow

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

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

HKMC C-INT-004 (高): 符号付き整数演算がオーバーフローしないことを確認してください

CWARN.NOEFFECT.OUTOFRANGE  範囲外の値

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

HKMC C-INT-005 (Low): Ensure that division and modulo operations do not result in 'divide-by-zero' errors

DBZ.CONST  ゼロ定数による除算が発生しました

DBZ.CONST.CALL  値 '0' が除数としてこの値を使用できる関数に渡されます

DBZ.GENERAL  ゼロ除算が発生した可能性があります

DBZ.GENERAL.FLOAT  浮動小数点数のゼロ除算が発生した可能性があります

DBZ.ITERATOR  ループ反復子でゼロ除算が発生した可能性があります

DBZ.ITERATOR.CALL  関数呼出しでゼロ除算が発生した可能性があります

DBZ.ITERATOR.FLOAT  ループ反復子でゼロ除算が発生した可能性があります

HKMC C-INT-005 (低): 除算演算および剰余演算により、'ゼロ除算エラー' が発生しないことを確認してください

DBZ.CONST  ゼロ定数による除算が発生しました

DBZ.CONST.CALL  値 '0' が除数としてこの値を使用できる関数に渡されます

DBZ.GENERAL  ゼロ除算が発生した可能性があります

DBZ.GENERAL.FLOAT  浮動小数点数のゼロ除算が発生した可能性があります

DBZ.ITERATOR  ループ反復子でゼロ除算が発生した可能性があります

DBZ.ITERATOR.CALL  関数呼出しでゼロ除算が発生した可能性があります

DBZ.ITERATOR.FLOAT  ループ反復子でゼロ除算が発生した可能性があります

HKMC C-INT-006 (Low): Do not shift to negative values or shift by more than or equal to the bits of operands

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

HKMC C-INT-006 (低): 負の値にシフトしたり、オペランドのビット数以上にシフトしないでください

MISRA.SHIFT.RANGE.2012   シフト演算子の右側のオペランドは範囲外です - 左側のオペランドの基本タイプのサイズ以上か、または負

HKMC C-INT-007 (Low): Use the correct precisions of integer type

NUM.OVERFLOW  オーバーフローの可能性

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

HKMC C-INT-007 (低): 整数型の正しい精度を使用します

NUM.OVERFLOW  オーバーフローの可能性

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

HKMC C-INT-008 (Low): Attention to type conversion between pointer and integer

MISRA.CAST.OBJ_PTR_TO_INT.2012   オブジェクトを指すポインタと、整数タイプとの間で実行された変換

HKMC C-INT-008 (低): ポインターと整数の間での型変換に関する注意

MISRA.CAST.OBJ_PTR_TO_INT.2012   オブジェクトを指すポインタと、整数タイプとの間で実行された変換

HKMC C-INT-009 (Middle): Attention to calculate for buffer or data type size

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

HKMC C-INT-009 (中): バッファまたはデータ型のサイズの計算に関する注意

CXX.SIZEOF.CSTRING  char* での sizeof の使用は、誤解を招く場合があります

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

HKMC C-MEM-001 (High): Do not reference freed 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 C-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 C-MEM-002 (Middle): Free dynamically allocated memory when no longer needed

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

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

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

MLK.MUST  メモリリーク

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

MLK.RET.MUST  メモリリーク

HKMC C-MEM-002 (中): 動的に割り当てられたメモリを不要になったときに解放します

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

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

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

MLK.MUST  メモリリーク

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

MLK.RET.MUST  メモリリーク

HKMC C-MEM-004 (High): Free memory allocated dynamically

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

MLK.MUST  メモリリーク

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

MLK.RET.MUST  メモリリーク

HKMC C-MEM-004 (高): 動的に割り当てられたメモリを解放します

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

MLK.MUST  メモリリーク

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

MLK.RET.MUST  メモリリーク

HKMC C-MEM-005 (High): Allocate sufficient memory for an object

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

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

HKMC C-MEM-005 (高): オブジェクトに十分なメモリを割り当てます

INCORRECT.ALLOC_SIZE  不適切な割り当てサイズ

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

HKMC C-MEM-007 (Middle): Improper clearing of heap memory before release('Heap inspection')

CXX.REALLOC  realloc() の使用は避けてください

HKMC C-MEM-007 (中): リリース前のヒープメモリの不適切なクリア ('ヒープ検査')

CXX.REALLOC  realloc() の使用は避けてください

HKMC C-MSC-003 (Middle): Do not use the rand() when generating random number using PRNG

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

HKMC C-MSC-003 (中): PRNG を使用して乱数を生成する場合は rand() を使用しないでください

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

HKMC C-MSC-004 (Middle): Set seeds correctly when using PRNG

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

HKMC C-MSC-004 (中): PRNG を使用するときにシードを正しく設定します

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

HKMC C-MSC-005 (High): Attention to pass improper argument when using the asctime()

CERT.MSC.ASCTIME  asctime() 関数に無効なデータを渡さないでください

HKMC C-MSC-005 (高): asctime() の使用時に不適切な引数を渡すことに関する注意

CERT.MSC.ASCTIME  asctime() 関数に無効なデータを渡さないでください

HKMC C-MSC-006 (High): Return all functions other than void return type

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

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

HKMC C-MSC-006 (高): void 戻り型以外のすべての関数を返します

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

FUNCRET.IMPLICIT  暗黙的に int を返す非 void 関数に戻り値がありません

HKMC C-MSC-008 (Low): Do not call va_arg with an argument of the incorrect type

VA.LIST.INDETERMINATE  不定値を持つ va_list に対する va_arg() の呼び出し

HKMC C-MSC-008 (低): 不正確な型の引数で va_arg を呼び出さないでください

VA.LIST.INDETERMINATE  不定値を持つ va_list に対する va_arg() の呼び出し

HKMC C-MSC-010 (Middle): Do not use getlogin in multithreaded applications

CXX.GETLOGIN  マルチスレッドアプリケーションで getlogin を使用しないでください

HKMC C-MSC-010 (中): マルチスレッドアプリケーションで getlogin を使用しないでください

CXX.GETLOGIN  マルチスレッドアプリケーションで getlogin を使用しないでください

HKMC C-MSC-013 (N/A): Satisfy a certain level of security when using cryptographic algorithms or hash functions

RCA  危険な暗号化アルゴリズムが使用されています

HKMC C-MSC-013 (N/A): 暗号化アルゴリズムまたはハッシュ関数を使用するときに、一定レベルのセキュリティを満たすようにします

RCA  危険な暗号化アルゴリズムが使用されています

HKMC C-MSC-014 (High): Do not use algorithms that find security vulnerabilities such as the DES symmetric key algorithm and the MD5 hash algorithm[MCU]

SV.WEAK_CRYPTO.WEAK_HASH  弱ハッシュ関数

HKMC C-MSC-014 (高): DES 対称キーアルゴリズムや MD5 ハッシュアルゴリズムなど、セキュリティの脆弱性を検出するアルゴリズムを使用しないでください [MCU]

SV.WEAK_CRYPTO.WEAK_HASH  弱ハッシュ関数

HKMC C-MSC-015 (High): Do not use fixed or predictable seeds[MCU]

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

HKMC C-MSC-015 (高): 一定のシードまたは予測可能なシードを使用しないでください [MCU]

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

HKMC C-POS-002 (Low): Do not use for vfork()

CXX.POSIX.VFORK  vfork() を使用しないでください

HKMC C-POS-002 (低): vfork() には使用しないでください

CXX.POSIX.VFORK  vfork() を使用しないでください

HKMC C-POS-003 (High): Do not pass a pointer to a local variable in the putenv()

CERT.PUTENV.AUTO_VARIABLE  自動変数へのポインターを引数として putenv() を呼び出さないでください

CXX.PUTENV.LOCAL.PTR  putenv() でポインターをローカル変数に渡さないでください

HKMC C-POS-003 (高): putenv() でポインターをローカル変数に渡さないでください

CERT.PUTENV.AUTO_VARIABLE  自動変数へのポインターを引数として putenv() を呼び出さないでください

CXX.PUTENV.LOCAL.PTR  putenv() でポインターをローカル変数に渡さないでください

HKMC C-POS-005 (Middle): Use of correct byte order is required for data communication between systems

BYTEORDER.HTON.SEND  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.HTON.WRITE  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.READ  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.RECV  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

HKMC C-POS-005 (中): システム間のデータ通信には正しいバイト順序の使用が必要です

BYTEORDER.HTON.SEND  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.HTON.WRITE  ホストバイトオーダーからネットワークバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.READ  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

BYTEORDER.NTOH.RECV  ネットワークバイトオーダーからホストバイトオーダーの変換が欠落しています

HKMC C-POS-006 (Low): Do not use signals to terminate threads

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

HKMC C-POS-006 (低): スレッドを終了するためにシグナルを使用しないでください

MISRA.INCL.SIGNAL.2012  標準ヘッダーファイル signal.h は使用しない

HKMC C-POS-008 (High): Detect and handle POSIX library errors

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-POS-008 (高): POSIX ライブラリのエラーを検出および処理します

SV.RVT.RETVAL_NOTTESTED  戻り値の無視

HKMC C-POS-009 (High): Attention improper resource locking

CONC.DBL_LOCK  二重ロック

CONC.DBL_UNLOCK  二重ロック解除

CONC.DL  デッドロック

CONC.NO_UNLOCK  変数のロック解除の欠落

HKMC C-POS-009 (高): 不適切なリソースロックに関する注意

CONC.DBL_LOCK  二重ロック

CONC.DBL_UNLOCK  二重ロック解除

CONC.DL  デッドロック

CONC.NO_UNLOCK  変数のロック解除の欠落

HKMC C-POS-011 (Middle): Clear block delimitation of the statements[MCU]

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

HKMC C-POS-011 (中): ステートメントのブロック区切りをクリアします [MCU]

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

HKMC C-POS-012 (Middle): Remove 'Dead code'[MCU]

CWARN.NOEFFECT.SELF_ASSIGN  変数は自身に割り当てられます

CWARN.NOEFFECT.UCMP.GE  符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.GE.MACRO  マクロ内で符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.LT  符号なし値と 0 との比較は、常に false になります

CWARN.NOEFFECT.UCMP.LT.MACRO  マクロ内で符号なし値と 0 との比較は、常に false になります

CWARN.NULLCHECK.FUNCNAME  関数アドレスが 0 と直接比較されます

EFFECT  ステートメントの影響はありません

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

LA_UNUSED  ラベルが使用されていません

MISRA.STMT.NO_EFFECT  そのステートメントは副作用がなく、制御フローを変更しません

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

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

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

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

HKMC C-POS-012 (中): '実行されないコード' を削除します [MCU]

CWARN.NOEFFECT.SELF_ASSIGN  変数は自身に割り当てられます

CWARN.NOEFFECT.UCMP.GE  符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.GE.MACRO  マクロ内で符号なし値と 0 との比較は、常に true になります

CWARN.NOEFFECT.UCMP.LT  符号なし値と 0 との比較は、常に false になります

CWARN.NOEFFECT.UCMP.LT.MACRO  マクロ内で符号なし値と 0 との比較は、常に false になります

CWARN.NULLCHECK.FUNCNAME  関数アドレスが 0 と直接比較されます

EFFECT  ステートメントの影響はありません

INVARIANT_CONDITION.GEN  不変な条件式

INVARIANT_CONDITION.UNREACH  不変な条件式

LA_UNUSED  ラベルが使用されていません

MISRA.STMT.NO_EFFECT  そのステートメントは副作用がなく、制御フローを変更しません

UNREACH.GEN  到達不能コード

UNREACH.RETURN  到達不能な void return文

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

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

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

HKMC C-PRE-002 (Low): Do not pass specific variable value conversion argument to unsafe macros

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

HKMC C-PRE-002 (低): 特定の変数値の変換引数を安全でないマクロに渡さないでください

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

HKMC C-PRE-003 (Low): Do not pass preprocessing directives in when calling function-like macros

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

HKMC C-PRE-003 (低): 関数のようなマクロを呼び出すときに、前処理ディレクティブを渡さないでください

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

HKMC C-STR-001 (Low): Do not modify string literals

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

HKMC C-STR-001 (低): 文字列リテラルを変更しないでください

CERT.STR.ARG.CONST_TO_NONCONST  const char ポインターを非 const char ポインター引数に渡さないでください

CERT.STR.ASSIGN.CONST_TO_NONCONST  const char ポインターを非 const char ポインターに割り当てないでください

HKMC C-STR-002 (High): Ensure that storage has sufficiently space for character data and the null terminator

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

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

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

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

HKMC C-STR-002 (高): ストレージに文字データと null 終了文字のための十分なスペースがあることを確認してください

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

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

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

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

HKMC C-STR-003 (High): Do not passing a non-null-terminated string to a library function

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

HKMC C-STR-003 (高): null で終了しない文字列をライブラリ関数に渡さないでください

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

SV.STRBO.BOUND_COPY.UNTERM  次の文字列演算でバッファオーバーフローの可能性があります

HKMC C-STR-004 (Low): Argument to character-handling function must be passed as unsigned char

AUTOSAR.STDLIB.CCTYPE.UCHAR  <cctype> で定義される文字処理関数の引数は、unsigned char として表現できなければなりません

MISRA.ETYPE.ASSIGN.2012   より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て

HKMC C-STR-004 (低): 文字処理関数への引数は unsigned char として渡される必要があります

AUTOSAR.STDLIB.CCTYPE.UCHAR  <cctype> で定義される文字処理関数の引数は、unsigned char として表現できなければなりません

MISRA.ETYPE.ASSIGN.2012   より狭い基本タイプ、または、異なる基本タイプカテゴリーのオブジェクトへの割り当て

HKMC C-STR-005 (High): Do not confuse narrow and wide character strings when passing arguments to character-handling function

CXX.DIFF.WIDTH.STR_AND_FUNC  関数の呼び出し時にナロー文字列とワイド文字列の間で暗黙のキャストが行われます

HKMC C-STR-005 (高): 文字処理関数に引数を渡すときに、ナロー文字列とワイド文字列を混同しないでください

CXX.DIFF.WIDTH.STR_AND_FUNC  関数の呼び出し時にナロー文字列とワイド文字列の間で暗黙のキャストが行われます

HKMC C-STR-006 (Low): Incorrect calculation of the multi-byte string length

CXX.MALLOC.WCHAR_LENGTH  wchar_t バッファの場合、malloc でメモリを割り当てるときに (wsclen()+1*sizeof(wchar_t)) を使用します

HKMC C-STR-006 (低): マルチバイト文字列長の不正確な計算

CXX.MALLOC.WCHAR_LENGTH  wchar_t バッファの場合、malloc でメモリを割り当てるときに (wsclen()+1*sizeof(wchar_t)) を使用します

MCU]

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

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

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

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

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

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

ABV.UNICODE.BOUND_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.FAILED_MAP  関数のマッピングに失敗します

ABV.UNICODE.NNTS_MAP  文字関数のマッピング時のバッファオーバーフロー

ABV.UNICODE.SELF_MAP  関数のマッピングに失敗します

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

CERT.ARR.PTR.ARITH  演算式にポインターが使用されています

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

MISRA.PTR.ARITH.2012  演算式にポインターが使用されています

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

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

NNTS.TAINTED  未検証のユーザー入力が原因のバッファオーバーフロー - 非 NULL 終了文字列

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

SV.TAINTED.LOOP_BOUND  ループ条件での未検証の整数の使用

_Alignof

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

_Generic

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

read) uninitialized memory

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

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

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

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

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

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

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

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