Ada 程式設計/編譯指示/No Return
外觀
pragma No_Return (local_name);
No Return 是一個表示 編譯指示 用於 過程,它表明一個過程永遠不會正常返回;也就是說,它會引發一個 異常,無限迴圈,或終止程式(例如,透過像 C 的 exit 這樣的匯入函式,或觸發硬體復位)。
在呼叫點,這使得能夠檢測死程式碼並抑制關於缺少 return 語句或缺少對變數賦值的警告。
編譯器確保一個非返回過程確實不會返回,如果它會返回,則會引發 Program_Error。
procedureP ( … );pragmaNo_Return (P);procedureQ (x:out… )isbeginifCondthenP ( … ); Some_Thing_Else; -- This is dead code--and due to No_Return probably a compiler warning!elsex := … ;endif; -- No warning about a missing assignment to x hereendQ;
自從 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
