Find_Related_Declaration_Or_Body
(N, Do_Checks => not Duplicates_OK);
- -- When a pre/postcondition pragma applies to an abstract subprogram,
- -- its original form must be an aspect with 'Class.
+ -- Abstract subprogram
if Nkind (Subp_Decl) = N_Abstract_Subprogram_Declaration then
- if not From_Aspect_Specification (N) then
- Error_Pragma
- ("pragma % cannot be applied to abstract subprogram");
-
- elsif not Class_Present (N) then
- Error_Pragma
- ("aspect % requires ''Class for abstract subprogram");
+ if not Class_Present (N) then
+ if From_Aspect_Specification (N) then
+ Error_Pragma
+ ("aspect % requires ''Class for abstract subprogram");
+ else
+ Error_Pragma
+ ("pragma % cannot be applied to abstract subprogram");
+ end if;
end if;
-- Entry declaration