使用Address Sanitizer编译程序时出错

时间:2017-01-30 18:30:37

标签: gcc address-sanitizer

我正在尝试使用Address Sanitizer(ASan)编译程序(tarantool)并遇到以下错误:

/home/tarantool/src/fiber.c:123:2: error: implicit declaration of function '__sanitizer_start_switch_fiber' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
        ASAN_START_SWITCH_FIBER(asan_state, 1,

我无法弄清楚这个问题的原因。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

根据标签,您正在使用GCC。光纤接口仅在Clang this summer中实现,并在November中合并到尚未发布的GCC 7中。因此,您似乎应该切换到Clang或等到GCC 7发布(或使用预发布版本)。

作为旁注,您可以向tarantool开发人员报告此问题,以便他们检查编译器版本并以更友好的方式报告错误。