It produces many warnings "warning: 'noreturn' function does return" (which are treated as errors). Probably GCC 4.1.3 does not recognize that exit() hack or __builtin_trap() never returns. Unfortunately, I deleted old GCC a long time ago and now can't check how it behaves.