搜索“[llvm-cov] switch”没有答案。我有几个处理 int 的开关,我正在尝试获得完整的代码覆盖率。但是,似乎 llvm-cov 不喜欢没有默认值的开关,但即使我设置了默认值,它也永远不会被执行。在以下情况下,我如何获得全面覆盖?我正在尝试获得完整的线路和分支覆盖。将开关更改为switch(buf[i]&1)
无济于事。我是否被迫使用 if 语句?
/*
clang -g -fprofile-instr-generate -fcoverage-mapping test.c
./a.out
llvm-profdata merge -sparse default.profraw -o default.profdata
llvm-cov report ./a.out -instr-profile=default.profdata
llvm-cov show ./a.out -instr-profile=default.profdata --show-branches=count
*/
#include<stdio.h>
int main()
{
int buf[] = {0, 1};
for(int i=0; i<2; i++) {
switch(buf[i])
{
case 0: printf("0"); break;
case 1: printf("1"); break;
}
}
return 0;
}