我在一个多线程的 c 应用程序中发现了这一点。作者评论说,它用于在自定义断言函数中使线程崩溃。GCC 没问题,但 clang 发出以下警告:
note: consider using __builtin_trap() or qualifying pointer with 'volatile'
并且还针对 assert 函数的每次使用发出其中一个:
warning: indirection of non-volatile null pointer will be deleted, not trap
这里发生了什么?__builtin_trap 是特定于 clang 的吗?我应该使用它吗?