===================================================================
@@ -6693,7 +6693,11 @@
Error_Msg_N
("implied return after this statement "
& "would have raised Program_Error", Last_Stm);
- else
+
+ -- In normal compilation mode, do not warn on a generated
+ -- call (e.g. in the body of a renaming as completion).
+
+ elsif Comes_From_Source (Last_Stm) then
Error_Msg_N
("implied return after this statement "
& "will raise Program_Error??", Last_Stm);
===================================================================
@@ -2946,6 +2946,14 @@
Check_Fully_Conformant (New_S, Rename_Spec);
Set_Public_Status (New_S);
+ if No_Return (Rename_Spec)
+ and then not No_Return (Entity (Nam))
+ then
+ Error_Msg_N ("renaming completes a No_Return procedure", N);
+ Error_Msg_N
+ ("\renamed procedure must be nonreturning (RM 6.5.1 (7/2))", N);
+ end if;
+
-- The specification does not introduce new formals, but only
-- repeats the formals of the original subprogram declaration.
-- For cross-reference purposes, and for refactoring tools, we