当发现某些代码无法访问时,如何让 clang-tidy 变得更“保守”?

问题描述 投票:0回答:0

我在我的一些库代码上使用 clang-tidy(好吧,CLion 正在使用它)。结果,我收到了各种投诉,包括关于“无法访问的代码”的投诉。示例:在一些导出的

.hpp
文件中,我有:

// --- snip ---
class scoped_ensurer_t {
public:
    explicit scoped_ensurer_t(bool force_push, handle_t fallback_context_handle)
        : context_was_pushed_on_construction(force_push)
    {
        if (force_push) { push(fallback_context_handle); }
    }
// --- snip ---

我被告知

push()
调用是无法访问的代码。

现在,很明显,只看这个函数本身,代码是可以访问的。这是一个任何人都可以实例化的类(你必须相信我,它不是私有的内部类或类似的东西)。因此,clang-tidy 似乎在我的代码库中进行了解析,注意到从未在

force_push
设置为 true 的情况下调用此构造函数,并确定这是无法访问的代码。

如果这是一个应用程序的代码,代码刚刚构建并且本身不构成目标,那么 - 好吧,我会喜欢的。但是——根本不是这样。 clang-tidy 在决定如何使用或不使用我的代码时非常“自由”。我怎样才能让它在做出这个决定时更加“保守”,而不是做出任何这样的假设?

注意:clang-tidy 版本是与 CLion 2023.1 捆绑在一起的版本(报告是

LLVM version 17.0.0git
)。

c++ libraries clang-tidy unreachable-code header-only
© www.soinside.com 2019 - 2024. All rights reserved.