JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.
If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.
If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.
| CodeSonar® 9.2p0 | CONFIDENTIAL | CodeSecure Inc |
ループが固定の境界を持ちません(詳しくは以下の注釈を参照してください)。
| クラス名 | Potential Unbounded Loop | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 日本語クラス名 | 潜在的な無限ループ | ||||||||||||||||||
| クラス分類 | スタイル (style) | ||||||||||||||||||
| ニーモニック | LANG.STRUCT.LOOP.UB | ||||||||||||||||||
| カテゴリー |
|
||||||||||||||||||
| 対応言語 | C および C++ で利用可能です。 |
||||||||||||||||||
| 有効/無効設定 | このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル
(configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Potential Unbounded Loop" |
#include <stdlib.h>
void lang_struct_loop_ub (void){
int i = 0;
while (rand()) { /* 'Potential Unbounded Loop' warning issued here */
if (i++ == 10) {break;}
}
}
ループカウンタが更新され、ループ回数の上限が保証されていることを確認できない場合、潜在的な無限ループワーニングを検出します。 これは以下の全ての条件が満たされていることを意味します。
{<, <=, >, >=} に含まれるループ条件にてテストされる値の変数は、ループカウンタ候補と呼ばれます。 ループカウンタ候補は存在するが、全ての要求条件を満たすものが存在しない場合、 CodeSonar は境界の証明に適切でないという理由と共にそれらの候補をレポートします。
無限ループワーニングの検出を抑制する場合は設定ファイルパラメータの NON_TERMINATING_LOOP_MARK を使用し、 for(;;){...} や while(1){...} の様な構文で定義します。 もしくはこのチェックを除外するため、特殊なコメントを定義する場合にも有効です。
設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。
To report problems with this documentation, please visit https://support.codesecure.com/.