Travando threads com * (int *) NULL = 1; problemático?

Eu encontrei isso em um aplicativo c multi-threaded. Os autores comentaram que é usado para fazer um travamento de thread em uma função customizada. O GCC está bem com isso, mas o clang emite o seguinte aviso:

<code>note: consider using __builtin_trap() or qualifying pointer with 'volatile'
</code>

e também emite um desses, para cada uso da função assert:

<code>warning: indirection of non-volatile null pointer will be deleted, not trap
</code>

O que está acontecendo aqui? __Builtin_trap é específico para clang? Devo usá-lo?

questionAnswers(2)

yourAnswerToTheQuestion