Ada Programming/Pragmas/No Return

pragma No_Return (local_name);

Description
No Return is a representation pragma for procedures, which states that a procedure will never return normally; that is, it will raise an exception, loop endlessly, or terminate the program (e.g. by means of an imported function like C’s exit or by triggering a hardware reset).

On the call site, this enables detection of dead code and suppression of warnings about missing return statements or missing assignment to variables.

The compiler ensures that a non-returning procedure will indeed not return by raising Program_Error if it would otherwise.

Example
P ( … ); (P); Q (x: … ) Cond P ( … ); Some_Thing_Else; x := … ; ; Q;

Portability
The pragma No_Return is standard in the language since Ada 2005. Some compilers (e.g. GNAT and AdaMagic) already recognised No_Return as implementation defined pragma before.

Wikibook

 * Ada Programming
 * Ada Programming/Pragmas
 * Ada Programming/Subprograms