鉴于以下计划:
int main(){
float x = non_det_float();
float y = NAN;
if (isnan(y) && x == 1.0f){
some_error();
}
}
让non_det_float()成为可以返回ANY float的函数。 (所以一个不确定的浮动)
让some_error()成为终止程序的错误。
问题:
覆盖率扫描是否能够分析some_error()是否可以访问?或者只是说" some_error()是死代码"
覆盖率扫描是否能够模拟非确定性浮点数/双精度数甚至非确定性循环?
如果有可能,那么知道如何做是很好的。 我们必须定义一个模型吗?我们必须使用一些注释吗?
提前感谢。
答案 0 :(得分:1)
这是(我认为)等同于停机问题,因此是不可判定的(即,无论是否调用some_function()都无法确定是否存在定义。)
这并不是说它不能经常猜测或不可靠地知道,但有必要的情况是它不能。