]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Change "missing overriding indicator" message from error to warning
authorSteve Baird <baird@adacore.com>
Wed, 26 Jun 2024 20:50:48 +0000 (13:50 -0700)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Thu, 1 Aug 2024 15:14:35 +0000 (17:14 +0200)
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).

gcc/ada/sem_disp.adb

index fe822290e453b57221ad57f9f264dbf6e98cef59..3c1c49f7064a7e2863fafc1a5a25b3bf45c30032 100644 (file)
@@ -1666,13 +1666,14 @@ package body Sem_Disp is
       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;