Another mostly cosmetic question.
Does GCC support:
static NO_RETURN void fatal (const char *s1, const char *s2);
rather than
static void fatal (const char *s1, const char *s2) NO_RETURN;

Fabrice