sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to handle synchroni...
authorJavier Miranda <miranda@adacore.com>
Thu, 31 Jul 2008 13:25:48 +0000 (15:25 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 31 Jul 2008 13:25:48 +0000 (15:25 +0200)
2008-07-31  Javier Miranda  <miranda@adacore.com>

* sem_ch4.adb (Valid_First_Argument_Of): Complete its functionality to
handle synchronized types. Required to handle well the object.operation
notation applied to synchronized types.

From-SVN: r138404

gcc/ada/sem_ch4.adb

index 4994ac8d45e4d63f964ccc3343bebf6177c05be6..d6983b1e6484ad66cf0bedabe3578383efe6158e 100644 (file)
@@ -6380,9 +6380,15 @@ package body Sem_Ch4 is
          -----------------------------
 
          function Valid_First_Argument_Of (Op : Entity_Id) return Boolean is
-            Typ : constant Entity_Id := Etype (First_Formal (Op));
+            Typ : Entity_Id := Etype (First_Formal (Op));
 
          begin
+            if Is_Concurrent_Type (Typ)
+              and then Present (Corresponding_Record_Type (Typ))
+            then
+               Typ := Corresponding_Record_Type (Typ);
+            end if;
+
             --  Simple case. Object may be a subtype of the tagged type or
             --  may be the corresponding record of a synchronized type.