Nick Zavaritsky
authored
_Noreturn kw must appear before the function name as per C11 grammar and clang7 is the first one to enforce that. Ecb_noreturn macro is defined using _Noreturn keyword if C11 support is detected; otherwise __noreturn__ gcc attribute is used. The later must appear after the function parameters list. These two methods to annotate a function are inherently incompatible in terms of the token location relative to the function declaration. Use gcc attribute exclusively since it is always available.