無限呼び出し
呼び出された関数が呼び出しコンテキストに返されない
説明
関数呼び出しに対するこのチェックは、次の条件が当てはまる場合に表示されます。
呼び出された関数が、その呼び出しコンテキストに返されない。呼び出しが、明確なランタイム エラーや、関数本体における
exit()
などのプロセス終了関数につながる。同じ関数に対する他の呼び出しには、明確なエラーや、関数本体におけるプロセス終了関数につながらないものがある。
一部の関数の呼び出しのみが明確なエラーにつながる場合、このチェックはその関数呼び出しの特定に役立ちます。関数本体で明確なエラーが発生していても、関数本体での検証結果はすべての関数呼び出しの集約になるため、そのエラーはレッドではなくオレンジで表示されます。その代わり、明確なエラーが発生していることを示すため、無限呼び出しのレッド チェックが "関数呼び出しに" 表示されます。
それとは異なり、関数のすべての呼び出しが明確なエラーか関数本体でのプロセス終了関数につながる場合、無限呼び出しエラーは表示されません。エラーは関数本体にレッドで表示され、関数呼び出しには下線が赤の点線で表示されます。ただし、他のレッド エラーと同様に、Polyspace® は関数呼び出しの後、同一スコープ内の残りのコードを関数呼び出しとして解析しません。
関数呼び出しから、関数本体でランタイム エラーを起こしている操作に直接移動できます。
エラーのソースを見つけるには、[ソース] ペインでループ キーワードにカーソルを置きツールヒントを見ます。
関数本体でエラーのソースまで移動します。関数呼び出しを右クリックし、オプションがあれば [原因に移動] を選択します。
エラーの原因が複数ある場合は、オプションを使用すると関数本体の最初の原因に移動します。複数の原因が発生する可能性があるのは、たとえば、関数の引数のある値がある特定のエラーをトリガーし、別の値が別のエラーをトリガーしている場合です。
このチェックの診断
例
チェック情報
グループ: 制御フロー |
言語: C | C++ |
頭字語: NTC |