是否有任何技术可以检测GCC的未定义行为

Are there any techniques to detect undefined behaviour with GCC?

本文关键字:GCC 未定义 检测 任何 技术 是否      更新时间:2023-10-16

如果程序没有按照 C++11 标准以可预测的方式运行,是否有任何命令行选项或技术使 GCC 编译器报告错误?

。使编译器报告一些错误...

是的,有许多警告确实会检测到可能的 UB,您可以使用 GCC 的-Werror选项将警告转换为错误。

此外,如@LogicStuff的评论中所述,GCC支持未定义行为清理器。

尽管检测UB的更好工具主要是静态代码分析工具,它可以检测大多数此类缺陷。

但是,在任何情况下,您都必须处理误报,并且需要再次深入检查您的代码。