次のプログラムを「gcc-fprofile-arcs-ftest-coveragetest.c」でコンパイルしました。
int main() {
int a = 1;
int b = 1;
a && b;
}
プログラムの実行後、「gcov -bc test.c」を呼び出すと、4つのブランチの50%が少なくとも1回は取得されたことが報告されます。なぜgcovは、プログラムに2つではなく4つのブランチがあると言うのですか?次のプログラムを実行した後、gcovは、2つのブランチの50%が少なくとも1回は取得されたことを正しく報告します。
int main() {
int a = 1;
if (a)
a = 0;
else
a = 1;
}