Given the fact that the "noreturn" attribute makes GCC generate code that makes debugging hard (see the recent discussion about adding some arm-specific compiler flags as a countermeasure), it's probably best to keep its usage to the absolute minimum.