Ada Programming/Pragmas/No Return
< Ada Programming | Pragmas
Jump to navigation
Jump to search
pragma No_Return (local_name);
Description[edit]
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[edit]
procedure
P ( … );pragma
No_Return (P);procedure
Q (x:out
… )is
begin
if
Condthen
P ( … ); Some_Thing_Else; -- This is dead code--and due to No_Return probably a compiler warning!else
x := … ;end
if
; -- No warning about a missing assignment to x hereend
Q;
Portability[edit]
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.[1]
See also[edit]
Wikibook[edit]
Ada Reference Manual[edit]
References[edit]
- ↑ AI95-00329 in Appendix: From: Tucker Taft, Sent: Tuesday, March 4, 2003 11:13 AM