問題タブ [gcovr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
105 参照

c++ - GCOV がこの行がカバーされていないと主張するのはなぜですか?

最近、gcc/g++/gcov の新しいバージョンにアップグレードしたところ、gcov の動作がおかしくなりました。新しいバージョンでは、古いバージョンではカバーされていると見なされていた一部のコード行がカバーされていないと主張しています。コードをこの最小限の例に減らすことができました。

次に、 を使用してこのファイルをコンパイルしg++ -O0 -Wall -Wextra -Werror --std=c++17 --coverage、結果を実行してからa.outを実行しますgcov

結果の.gcovファイルには次が含まれます。

これは、行 6 が 2 回ヒットしたと主張する古いバージョンの gcov とは異なります。

gcov が 6 行目がカバーされていないと考えるのはなぜですか? 私は何か間違ったことをしていますか?

gcc8、gcc9、および gcc10 でこの動作を再現できます。gcc7 は期待どおりに動作します。

gcc7/8 を比較するコンパイラ エクスプローラ: https://godbolt.org/z/Te57s4WK8