Abstürzende Threads mit * (int *) NULL = 1; problematisch?
Ich fand dies in einer Multithread-c-Anwendung. Die Autoren kommentierten, dass es verwendet wird, um einen Thread-Absturz in einer benutzerdefinierten Assert-Funktion zu verursachen. GCC ist damit einverstanden, aber clang gibt die folgende Warnung aus:
<code>note: consider using __builtin_trap() or qualifying pointer with 'volatile' </code>
Außerdem wird für jede Verwendung der Assert-Funktion eine dieser Anweisungen ausgegeben:
<code>warning: indirection of non-volatile null pointer will be deleted, not trap </code>
Was geht hier vor sich? Ist __builtin_trap spezifisch für Klirren? Soll ich es benutzen?