A better solution, if you want to be portable to MSVC, is to use _Noreturn instead of noreturn. This is for reasons described in stdnoreturn.in.h.
'_Noreturn' is a bit ugly; if you don't care about MSVC, then __attribute__((__noreturn__)) is a good way to go.