411 REFERENCE · Wikibooks
Ada Programming/Aspects/No Return
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
Aspects No_Return
__TOC__
with No_Return
Description
Specifying the aspect No_Return indicates that a procedure cannot return normally; it may raise an exception, loop forever, or terminate the program.
A non-returning procedure may not contain any return statements. If a non-returning procedure implicitly returns (by reaching the end of its statement sequence), Program_Error will be raised at the point of call.
On the call site, this enables detection of dead code and suppression of warnings about missing return statements or missing assignment to variables.
Example
procedure P ( … ) with No_Return;
procedure Q (x : out … ) is
begin
if Cond then
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 here
end Q;
Portability
The aspect No_Return was introduced in Ada 2012. It is the replacementAI05-0229 for pragma No_Return which was introduced in Ada 2005.AI95-00329
See also
Wikibook
Ada Programming
Ada Programming/Aspects
Ada Programming/Subprograms
Ada Reference Manual
6 5 1 "Non Returning Procedures"
References
No_Return