2017-07-10 6 views
0

は、以下のコードを検討してください。 最後のループには、iint.MinValueにオーバーフローし、無限ループが発生するバグがあります。RangeAnalysisとV3022

実行すると、期待される出力が得られます。

V3022式 '私< int.MaxValue' は常に真である:

2147483645 
2147483646 

2147483645 
2147483646 

2147483645 
2147483646 
... 

PVS Studioは3回の警告を発生させます。

V3022式 'i < = int.MaxValue - 1'は常にtrueです。

V3022式 'i < = int.MaxValue'は常にtrueです。

最後のループのバグは正しく報告されますが、最初の2つの警告は誤検出です。

+0

フィードバックいただきありがとうございます。我々は間もなくこの偽陽性を見るだろう。 –

答えて

1

この偽陽性が修正されました。修正は、次のリリースで利用可能になります。

+1

ちょうどあなたに知らせるために、これはまだ 'uint i = 0; do {++ i; } while(i!= uint.MaxValue); ' –

関連する問題