0

搜索“[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;
}
4

0 回答 0