There is no RM rule requiring an overriding indicator in the case where
this message is generated; such a rule was discussed many years ago in an
AI, but that AI was never approved. So generate a warning message instead
of an error message. And don't even do that if we are in an instance (warning
a user they should change the source of an instance seems unlikely to be
helpful, at least in this case).
gcc/ada/
* sem_disp.adb (Check_Dispatching_Operation): When calling
Error_Msg_NE to generate a "missing overriding indicator" message,
generate a warning message instead of an error message (and update
comment to describe this new behavior).
then
Ovr_Subp := Find_Hidden_Overridden_Primitive (Subp);
- -- Verify that the proper overriding indicator has been supplied.
+ -- Warn if the proper overriding indicator has not been supplied.
if Present (Ovr_Subp)
and then
not Must_Override (Specification (Unit_Declaration_Node (Subp)))
+ and then not In_Instance
then
- Error_Msg_NE ("missing overriding indicator for&", Subp, Subp);
+ Error_Msg_NE ("missing overriding indicator for&??", Subp, Subp);
end if;
end if;