コンテンツ
データフロー解析(DFA)は、静的解析によってプログラムの実行時の動作を推測して問題を検出します。
解析に費やすことのできる時間とリソースが限られている中で解析を実行するため、DFAには以下の制限事項があります。制限事項が存在するため、DFA では常に正確な結果が得られるわけではありません。
これは、検出されるべきでない問題が指摘される False Positiveや、検出されるべき問題が指摘されない False Negative の結果になる場合があることを意味します。
・配列
配列の個々の要素についてのデータの追跡は実施しません。
・ループ
各ループの最初の1回、最後の1回、代表的な中間の1回についてのデータの追跡を実施します。
ループの全ての繰り返しにおけるデータの追跡を実施するわけではありません。
・浮動小数点型変数
浮動小数点型変数のデータの追跡は実施しません。
・ポインタ
整数型、クラス型、構造体型、共用体型を指すポインタを介したデータの追跡を実施します。
関数型、不完全型、ポインタ型を指すポインタを介したデータの追跡は実施しません。
またDFAを実施する際には、次の設定があります。
これらの設定が必要であることもDFAを実施する際の制限事項です。