C ++找到在运行时可能使用未初始化变量的代码路径

时间:2018-05-25 20:32:11

标签: c++ g++ warnings static-analysis clang++

我想检测可能未初始化的变量。我尝试过-Wall-Wextra甚至是-Weffc++。有没有办法(使用编译器或外部工具)来检测这种问题?下面有一个例子,我宁愿静态检测这个问题而不是运行时问题。

如果没有运行for循环的迭代,那么prev在达到if时仍然未初始化,然后SEGFAULTprev二手..

decltype(params.begin()) prev;
for (auto it = params.begin();
        std::prev(params.end()) - (it + max_chunk_size - 1) >= 0;
        prev = it += max_chunk_size) {

     auto val = {it, it+max_chunk_size};
}
if (prev != params.end()) {
    auto val = {prev, params.end()};
}

0 个答案:

没有答案