2008-08-22 Ed Schonberg <schonberg@adacore.com>
authorEd Schonberg <schonberg@adacore.com>
Fri, 22 Aug 2008 13:26:28 +0000 (15:26 +0200)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 22 Aug 2008 13:26:28 +0000 (15:26 +0200)
* exp_tss.adb:
(Base_Init_Proc): For a protected subtype, use the base type of the
corresponding record to locate the propoer initialization procedure.

From-SVN: r139465

gcc/ada/exp_tss.adb

index f9b9e33374eda905154004de4b7f9d73ea60fd6c..acddeb11abdbb14942c58adcd4757c018d8a1d20 100644 (file)
@@ -57,7 +57,12 @@ package body Exp_Tss is
       elsif Is_Concurrent_Type (Full_Type)
         and then Present (Corresponding_Record_Type (Base_Type (Full_Type)))
       then
-         return Init_Proc (Corresponding_Record_Type (Base_Type (Full_Type)));
+         --  The initialization routine to be called is that of the base type
+         --  of the corresponding record type, which may itself be a subtype
+         --  and possibly an itype.
+
+         return Init_Proc
+            (Base_Type (Corresponding_Record_Type (Base_Type (Full_Type))));
 
       else
          Proc := Init_Proc (Base_Type (Full_Type));