C++ 让clang tidy发现一个静态可推断的逻辑错误
我不知道我想要的是否可能,但我想还是要问一下 我有一些Boost库代码,我想提示clang tidy发出警告,通过静态分析,由于错误的逻辑,可能会出现未定义行为的明显实例。建议C++ 让clang tidy发现一个静态可推断的逻辑错误,c++,static-analysis,clang-static-analyzer,clang-tidy,C++,Static Analysis,Clang Static Analyzer,Clang Tidy,我不知道我想要的是否可能,但我想还是要问一下 我有一些Boost库代码,我想提示clang tidy发出警告,通过静态分析,由于错误的逻辑,可能会出现未定义行为的明显实例。建议\uuuu内置的unreachable()可能会像这样发出叮当声,但我没能做到这一点(尽管它很好地绊倒了UB消毒剂): #包括 int main() { std::可选f; //在UB发生之前发现并标记它 如果(!f) { __内置的不可访问(); } //这是UB 返回*f; } 在上面的代码中,静态分析器可以清楚地告
\uuuu内置的unreachable()
可能会像这样发出叮当声,但我没能做到这一点(尽管它很好地绊倒了UB消毒剂):
#包括
int main()
{
std::可选f;
//在UB发生之前发现并标记它
如果(!f)
{
__内置的不可访问();
}
//这是UB
返回*f;
}
在上面的代码中,静态分析器可以清楚地告诉您必须调用\uuu builtin\u unreachable()
。我想让clang tidy报告这一点,但是clang-tidy-5.0-checks=*-header filter=.*temp.cpp--std=c++17
不报告任何内容
注:我不需要使用<代码>塔尔科夫斯基建立的.<代码> >,这正是C++的博客建议的。strong>任何让clang静态分析器、MSVC静态分析器或理想情况下的clang tidy通过静态推断推断UB必须明显出现的时间并在编译时标记它的技术都是我想要的
我不寻找的是一个在静态分析期间总是触发警告的构造,而不管用例如何。我只想在仅通过静态分析时显示静态分析警告,很明显,在编译时,如果出现一些静态可推断的逻辑错误,可以调用UB
先谢谢你 所以,是的,事实证明,这至少不能在叮当声中完成,而且可能是大多数其他静态分析仪 《为什么不》的血淋淋的细节可以在以下网站找到,但本质上是: