|VS2022 经过优化之后的空指针检测( 二 )


下面是一些不必要的警告:
在上面的代码中 , 当前版本将在注释行上给出空指针取消引用警告 。从技术上讲 , 当 malloc 失败并返回 nullptr 时 , 此警告可能是真实的 。这是一个与许多应用程序无关的场景 。EspXEngine 有低置信度警告和高置信度警告 , 在这种情况下只会发出低置信度警告 。大多数用户可能只对预计噪声较小的高置信度警告感兴趣并关闭低置信度警告 。
此外 , 我们决定让 EspXEngine 更严格地检测各种未定义的行为:
【|VS2022 经过优化之后的空指针检测】在上面的代码中 , 与 EspXEngine 相反 , 当我们在空指针上调用方法时 , 当前规则下不会触发警告 。严格来说 , 这段代码有未定义的行为 , 但是当方法没有取消引用 this 指针时 , 许多实现都可以正常工作 。
在Visual Studio 2022 17.0 Preview 4中 , 我们将提供新的实验性质的代码检查 , 以查找空指针错误 。这些检查旨在成为当前检查的更好版本 , 具有更高的精度和附加功能 。这些新检查会进行深入的分析 , 所以会增加分析时间 。 在默认情况下 , 它们是关闭的 , 你可以使用
CppCoreCheckExperimentalRules规则来启用它们 。
总结?我是觉得还不错 。
最后Microsoft Visual C++团队的博客是我非常喜欢的博客之一 , 里面有很多关于Visual C++的知识和最新开发进展 。 大浪淘沙 , 如果你对Visual C++这门古老的技术还是那么感兴趣 , 则可以经常去他们那(或者我这)逛逛 。
本文来自:《Improved Null Pointer Dereference Detection in Visual Studio 2022 version 17.0 Preview 4》