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 |
CodeSonarの解析では、関数内のいくつかのコードは解析されません;解析されないもののなかで最も重要な命令文は加算等のデータに対する計算となります。
これと、その他の解析されないコードのワーニングクラスは一般的に全てのコードの解析を許可する SEARCH_BOUND 設定パラメータの値が十分に高くないために起こります。
これらのワーニングを減らすもしくは無くすにはこの値を高くします。
これらのワーニングを減らすためにこの値を高くすると、解析時間が長くなります。
実際のプログラムの多くでは、解析されないコードの全てのワーニングを出力しないように search bound を高くすると、実用的ではないほど解析時間が長くなります。
これらのクラスは、パスカバレッジよりもコードカバレッジに関係しています。いくつかの場合では、プロシージャを介した可能性のあるパスの厳密なサブセットのプロシージャ内の全てのコードを網羅することは可能です。
更なる情報は、解析されない呼び出し:注釈:解析されないコードワーニングクラスを参照してください。
| クラス名 | Unexercised Computation | ||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 日本語クラス名 | 解析されない計算 | ||||||||||||||||||||||||||||||||||||||||||
| クラス分類 | 診断 (diagnostic) | ||||||||||||||||||||||||||||||||||||||||||
| ニーモニック | DIAG.UNEX.COMP | ||||||||||||||||||||||||||||||||||||||||||
| カテゴリー |
|
||||||||||||||||||||||||||||||||||||||||||
| 対応言語 | C および C++ で利用可能です。 |
||||||||||||||||||||||||||||||||||||||||||
| 有効/無効設定 | このワーニングクラスのチェックはデフォルトで無効になっています。チェックを有効にするにはプロジェクト設定ファイル
(configuration file)に以下の WARNING_FILTER ルールを追加してください。
WARNING_FILTER += allow class="Unexercised Computation" このワーニングクラスは、コード内の問題に対する警告検出というより、診断解析を目的としています。 その為、通常はCodeSonarのpresetsで有効になることはありません。特に、all_warningclasses presetでさえも、有効にはなりませんことを留意して下さい。 |
簡潔な説明のために、設定値を減らすために、設定ファイルで以下の設定を加えたとします。
SEARCH_BOUND=3
SEARCH_BOUND=3の場合、CodeSonarはunex_comp()のプロシージャの3つのパスのみ探索します。
しかしながら、プロシージャには4つのパスがあり、3つのパスのみが探索された場合、switch caseの一つは解析されません。
各々の switch caseで最も重要な命令文の形式は計算なので、計算されない呼び出しワーニングはそれらの文のいずれか一つで発生します。
ソースコードの中でどの一つなのかを正確に予想することはできません。それはCodeSonarのビルドと解析のいくつかの現象によります。
int g(void);
void unex_comp(int j)
{
int i = g();
switch( j )
{
case __LINE__: j++; if (i) i=4; return; break; /* 'Unexercised Computation' warning issued either here... */
case __LINE__: j++; if (i) i=4; return; break; /* ...or here... */
case __LINE__: j++; if (i) i=4; return; break; /* ...or here... */
default: j++; if (i) i=4; return; break; /* ...or here. */
}
}
設定ファイルの以下のパラメータがこのワーニングクラスのチェックに影響します。
To report problems with this documentation, please visit https://support.codesecure.com/.