Declaring Attributes of Functions In GNU C, you declare certain things about functions called in your program which help the compiler optimize function calls and check your code more carefully. This keyword is followed by an attribute specification inside double parentheses. Four attributes, noreturn , const , format , and section are currently defined for functions. GNU CC knows this automatically.
Some programs define their own functions that never return.
You can declare them noreturn to tell the compiler this fact. Print error message. The noreturn keyword tells the compiler to assume that fatal cannot return. It can then optimize without regard to what would happen if fatal ever did return. This makes slightly better code.