exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private tagged type is...
authorHristian Kirtchev <kirtchev@adacore.com>
Thu, 31 Jul 2008 13:53:45 +0000 (15:53 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Thu, 31 Jul 2008 13:53:45 +0000 (15:53 +0200)
2008-07-31  Hristian Kirtchev  <kirtchev@adacore.com>

* exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private
tagged type is completed by a concurrent type.

From-SVN: r138411

gcc/ada/exp_disp.adb

index 8642069..ac25171 100644 (file)
@@ -6042,6 +6042,13 @@ package body Exp_Disp is
          Full_Typ := Corresponding_Concurrent_Type (Typ);
       end if;
 
+      --  When a private tagged type is completed by a concurrent type,
+      --  retrieve the full view.
+
+      if Is_Private_Type (Full_Typ) then
+         Full_Typ := Full_View (Full_Typ);
+      end if;
+
       if Ekind (Prim_Op) = E_Function then
 
          --  Protected function