Ada 编程/编译指示/No Return
外观
pragma No_Return (local_name);
No Return 是一个表示 编译指示 用于 过程,它表明一个过程永远不会正常返回;也就是说,它会引发一个 异常,无限循环,或终止程序(例如,通过像 C 的 exit 这样的导入函数,或触发硬件复位)。
在调用点,这使得能够检测死代码并抑制关于缺少 return 语句或缺少对变量赋值的警告。
编译器确保一个非返回过程确实不会返回,如果它会返回,则会引发 Program_Error。
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;
自从 Ada 2005 以来,pragma No_Return 在语言中成为了标准。一些编译器(例如 GNAT 和 AdaMagic)在之前就已经将 No_Return 识别为实现定义的编译指示。[1]
- ↑ AI95-00329 in Appendix: From: Tucker Taft, Sent: Tuesday, March 4, 2003 11:13 AM