]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Dispatching call with mutably tagged objects
authorJavier Miranda <miranda@adacore.com>
Tue, 6 May 2025 17:41:51 +0000 (17:41 +0000)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Tue, 1 Jul 2025 08:29:40 +0000 (10:29 +0200)
The compiler rejects performing a dispatching call using the
prefix notation when the prefix of the call is a mutably
tagged class-wide type object.

gcc/ada/ChangeLog:

* sem_ch4.adb (Try_Object_Operation): Handle mutably tagged
class-wide type prefix.

gcc/ada/sem_ch4.adb

index 89beb2b9a7e019ce006386f010d3e51e36dbbfea..f5b0519103530798513bfee3aa19146c81c4e64a 100644 (file)
@@ -10907,6 +10907,10 @@ package body Sem_Ch4 is
    --  Start of processing for Try_Object_Operation
 
    begin
+      if Is_Class_Wide_Equivalent_Type (Obj_Type) then
+         Obj_Type := Corresponding_Mutably_Tagged_Type (Obj_Type);
+      end if;
+
       Analyze_Expression (Obj);
 
       --  Analyze the actuals if node is known to be a subprogram call