CEDEC 2015 で出題されたバグクイズ。
私も実際に CEDEC に行って見てきたわけですが、
3日目の問題が直ぐに解けず、なんだか悔しかったのでこの記事を書いてる次第です。
(あーだこーだしているうちに2ヶ月も経ってしまいましたが…)
ちなみに、答えはこちらです。
CEDEC 2015 Tokyo でのバグクイズの正解を発表! « Coverity Blog
Coverity 以外では検出できないのか?
検証の際に実際に使用したソースコードはこちら。
https://github.com/srz-zumix/coverity_test/tree/master/cedec_coverity
Cppcheck v1.70
まずは、フリーで使える C++ 静的解析の定番となっている Cppcheck です。使用したのは現時点での最新バージョンである 1.7.0 です。
残念ながら、どちらの問題も検出されませんでした。
Visual Studio コード分析
次に Visual Studio です。Visual Studio にはコード分析機能が付いています。プロジェクトプロパティのコード分析で有効にできます。
これもかなり優秀なんですが…
残念ながら、どちらの問題も検出されませんでした。
gcc/clang
最後はコンパイラーです。Visual Studio はコード分析のときにビルドしましたが、検出できなかったので既に脱落しております。
それぞれの結果です。
- gcc 5.2 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
- clang 3.7 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ
どちらも delete (void*)p の問題は検出されました。
scan-build
おまけです。scan-build は clang の静的解析ツールです。
cygwin パッケージに入ってたので使ってみました。
結果としては clang コンパイラーと一緒で delete (void*)p の検出だけでした。
0 件のコメント:
コメントを投稿