メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

プログラミングの欠陥

プログラミングのコーディングエラーに関する欠陥、代入演算子と等号演算子、型の不一致、ラップアラウンド、string 配列

これらの欠陥は、プログラミング構文に関係するエラーです。欠陥には次のものがあります。

  • 代入と等号演算子

  • 変数修飾子または宣言の不一致

  • 形式が正しくない文字列

Polyspace 結果

すべて展開する

アサーション失敗したアサート ステートメント
文字の値が EOF に吸収データ型変換によって、有効な文字値がファイル終端 (EOF) と同じになる
宣言の不一致関数または変数の宣言の間の不一致
errno がリセットされていませんerrno を設定する関数を呼び出す前に errno をリセットしていない
不適切な値の転送転送されたオブジェクトが予期せず変更される場合がある
反復子の使用法が無効ですMismatched or uninitialized iterators are used in standard algorithm functions and comparison operations (R2022a 以降)
== (等号) 演算子の無効な使用代入ステートメント内の等号演算子
標準ライブラリ ルーチンの無効な使用標準ライブラリ関数の間違った引数
va_list 引数が無効です変数の引数リストが、va_end での無効化後に使用されているか、va_start または va_copy で初期化されていない
errno の不適切な使用errno がエラー状態について正しくチェックされていない
ナロー文字列またはワイド文字列の不適切な使用ワイド (ナロー) 文字列関数に渡されるナロー (ワイド) 文字列
再呼び出し不可能な標準関数の戻り値の不適切な使用後続の呼び出しがそのバッファーを変更しているにもかかわらず、前の呼び出しからの静的バッファーへのポインターを使用している
AUTOSAR 仕様に非準拠RTE API 関数が、AUTOSAR 規格仕様に違反する引数を指定して使用されています (R2021a 以降)
破棄された一時オブジェクトへのポインターまたは参照Destruction of temporary object results in dangling pointer or reference (R2023b 以降)
sizeof を誤って使用している可能性がありますsizeof 演算子の使用が想定外の結果の原因となり得る
演算子の優先順位のルールにより、予期せぬ式の評価が得られる可能性があります演算子の優先順位のルールにより、演算式での評価順が予想外のものになる
未接続のポインターにより初期化された std::string_viewAn std::string_view object is initialized by using an unnamed temporary object (R2022b 以降)
Typedef が一致しませんtypedef ステートメント間の不一致
可変長配列が正のサイズをもっていません可変長配列のサイズがゼロか負である
const 修飾子付きオブジェクトに書き込んでいますconst 修飾子で宣言されているオブジェクトが変更されている
sizeof において使用された誤った型sizeof の引数が指している型と一致しない
終了ハンドラーが異常終了しましたプログラムの正常な実行に割り込む終了ハンドラー関数
ファイル アクセス モードまたはステータスが不適切ですfopen または open グループの関数のアクセス モード引数が無効
プロトタイプのない関数ポインターによる呼び出しパラメーターの型や数なしで宣言された関数ポインターは予期しない動作を引き起こす
オーバーラップするメモリのコピーですコピー関数のソース引数とコピー先引数にオーバーラップするメモリがある
前の操作によって無効になった環境ポインターsetenv または putenv ファミリ関数の呼び出しによってポインターの参照先の環境が変更されている
等号演算子による浮動小数点の比較浮動小数点変数の不正確な比較
非同期安全ではない信号ハンドラーから呼び出された関数割り込み関数の呼び出しは未定義のプログラム動作を引き起こす
非同期安全ではない信号ハンドラーから呼び出された関数 (厳密な ISO C)割り込み関数の呼び出しは未定義のプログラム動作を引き起こす
配列の初期化が不適切です初期化子を使用した場合の配列の初期化が正しくない
非プロパーな erase-remove の用法Container's erase() is not called or called improperly following a call to std::remove() (R2022a 以降)
無効なデータ型が va_arg に渡されました可変個引数関数の引数のデータ型が va_arg 呼び出しの型と一致しない
ポインターのスケーリングが無効ですポインター演算での暗黙的なスケーリングは無視される場合がある
va_start に渡された不正な型のデータva_start マクロの 2 番目の引数のデータ型による未定義の動作の発生
C++ の offsetof の誤った使用offsetof マクロの不適切な引数による未定義の動作の発生
va_start の誤った使用va_start を可変個引数関数でない関数で呼び出している、または可変個引数関数の右端のパラメーターでない 2 番目の引数を指定して呼び出している
インライン制約が守られていませんconst でない静的変数が非静的インライン関数で変更される
メモリ編成の前提条件が無効です変数のアドレスに対する加算または減算によってアドレスが計算されている
無効なファイル位置fsetpos()fgetpos() から取得されたのではないファイル位置引数を使用して呼び出される
= (代入) 演算子の無効な使用条件付きステートメント内の代入
パディング データのメモリ比較構造体のパディングで格納したデータを memcmp で比較している
文字列のメモリ比較文字列の NULL 終端以降に格納されたデータを memcmp で比較している
データ転送時の欠落バイトの並べ替えホストとネットワークのエンディアンが異なる
信号ハンドラーでの errno の不適切な使用信号ハンドラーで errno を設定する関数を呼び出した後に errno を読み取る
信号ハンドラー内でのデータ アクセスの共有共有データへのアクセスまたは変更による不整合状態の発生
安全でないマクロへの引数の二次的影響複数回評価されるか、評価されない可能性のある引数が含まれたマクロ
信号ハンドラー内からの信号呼び出し非永続的な信号ハンドラーが Windows システム内で signal() を呼び出すことによる競合状態の発生
標準関数が正しくない引数で呼び出されました標準関数の引数がその関数における使用の要件を満たさない
現在の引数リストに対する va_arg 呼び出しが多すぎますva_arg の呼び出しの数が可変個引数関数に渡される引数の数を超えている
現在の引数リストに対する va_arg 呼び出しが多すぎますva_arg の呼び出しの数が可変個引数関数に渡される引数の数を超えている
ヘッダー ファイルの無名の名前空間複数の定義につながる無名の名前空間がヘッダー ファイルに含まれる
ポインターと整数間での変換は安全ではありませんポインターと整数型間の変換によるミスアライメントまたは不適切な結果
size 引数がゼロの memset を使用していますmemset ファミリの関数の size 引数がゼロ
不確定文字列の使用fgets ファミリ関数の未検証バッファーの使用
移動後の変数の読み取りA variable in a moved-from state is used in an operation that has preconditions (R2025a 以降)
有効期間が一時的なオブジェクトにアクセスしていますオブジェクトに対する読み取りまたは書き込み操作が未定義の動作
フラッシュまたは位置付け呼び出しなしでのストリームからの入出力の交互実行入出力ストリーム操作による未定義の動作
意図しない値をもつ memset の呼び出しですmemset または wmemset が、不正確とみられる引数とともに使用されている
書式文字列指定子と引数の不一致printf のような関数で、書式指定子が対応する引数と一致していません
浮動小数点値のメモリ比較浮動小数点値のオブジェクト表現が、等しい (等しくない) 浮動小数点値で異なる (同じである)
string 配列での null 値の欠落文字列が null 文字で終了していない
FILE オブジェクトの不適切な使用FILE オブジェクトのコピーの使用
符号拡張文字の値の不適切な使用符号拡張によるデータ型変換は予期しない動作を引き起こす
フレキシブル配列メンバーをもつ構造体の不適切な使用メモリの割り当てによるフレキシブル配列メンバーの無視
再呼び出し不可能な標準関数から返された内部バッファーが変更されています再呼び出し不可能な標準関数から返された内部バッファーが関数により変更されようとしている
代入が重複しています代入の左辺と右辺間のメモリ オーバーラップ
コピーして貼り付けのエラーの可能性ありA section of code is duplicated in other places with exactly one minor change (R2023a 以降)
オブジェクトとして使用される事前定義されたマクロasserterrno などの標準ライブラリのマクロをオブジェクトとして使用する
マクロ引数のプリプロセッサ命令関数形式のマクロの引数で使用されるプリプロセッサ命令
変換において修飾子を削除変数修飾子が変換中に失われる
別のポインターと比較された string::c_str() の結果The C string obtained from std::string::c_str() is compared to a pointer (or NULL) (R2021b 以降)
計算例外の信号ハンドラーからの戻り値プログラム エラーから信号ハンドラーが通常どおりに値を返す場合の未定義の動作
式の二次的影響は無視されます二次的影響のある式に対して実行される sizeof_Alignof、または _Generic
意図しない二次的影響の可能性があるストリーム引数複数回発生するストリーム引数の二次的影響
トークン連結からのユニバーサル文字名## 演算子でトークンを結合することによりユニバーサル文字列名を作成
文字列から数値への変換は安全ではありません検証チェックなしの文字列から数値への変換

トピック

  • Bug Finder 欠陥グループ

    Bug Finder の欠陥チェッカーは、データ フロー、同時実行、数値などのグループに分類されています。