コンパイラデータフロー警告

コンパイラは、最適化処理の一環としてデータフロー分析を実行します。この情報を使用して、コード内の潜在的な問題点を識別できます。例えば、この情報を使用して、初期化されていない変数が使用されたときに警告を生成できます。

データフロー分析で生成される警告は、プロセッサレジスタで保持されているローカル変数に関するものだけであり、メモリで保持されているグーバル変数や、スタックで保持されている変数または構造体に対しては警告を生成しません。

以下の点に注意して下さい。

この分析結果は、使用する最適化レベルによって異なります。つまり、より高い最適化レベルを使用すると、低い最適化レベルでは表示されない数の警告が表示されます。例えば、以下のソースコードを使用すると、コンパイラは -O2 で警告 "C3017W:i は設定前に使用できます" を生成します。

int f(void)
{
    int i;
    return i++;
}

データフロー分析では、問題があるコードを正確に識別できません。コンパイラによって生成される C3017W 警告の目的は、発生する可能性がある問題を示すことだけです。コードを正確に分析するには、--diag_suppress=C3017 を指定してこの警告を非表示にし、Lint などのサードパーティ製分析ツールを使用して下さい。

Show/hide関連項目

Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0472EJ
Non-ConfidentialID081711