gpt4 book ai didi

c++ - 如何确定 UBSAN 是否已使用 clang 或 gcc 编译?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:42:53 29 4
gpt4 key购买 nike

我们使用以下代码来确定是否在编译时为 clang 和 gcc 指定了 -fsanitize=address。我们如何确定是否指定了 -fsanitize=undefined

    bool isSanitized = false;
#if defined(__has_feature)
#if __has_feature(address_sanitizer)
isSanitized = true;
#endif
#elif defined(__SANITIZE_ADDRESS__)
isSanitized = true;
#endif

最佳答案

我建议您将此作为一个错误提交给 ASan github(或 GCC bugzilla)(我们已经为 ASan 和 TSan 定义了一个,因此也可以为 UBSan 准备一个)。目前看来,您唯一的选择是在 Makefile 中将自定义定义与 -fsanitize-undefined 一起传递。

关于c++ - 如何确定 UBSAN 是否已使用 clang 或 gcc 编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39371798/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com