From: Nick Lewycky
While useful, noreturn is not applicable in all cases. Sometimes -there are special functions that for all intensive purposes should be considered -panic functions (i.e., they are only called when an internal program error -occurs) but may actually return so that the program can fail gracefully. The -analyzer_noreturn attribute allows one to annotate such functions as -being interpreted as "no return" functions by the analyzer (thus +there are special functions that for all intents and purposes should be +considered panic functions (i.e., they are only called when an internal program +error occurs) but may actually return so that the program can fail gracefully. +The analyzer_noreturn attribute allows one to annotate such functions +as being interpreted as "no return" functions by the analyzer (thus pruning bogus paths) but will not affect compilation (as in the case of noreturn).