aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/exp_tss.adb
diff options
context:
space:
mode:
authorEd Schonberg <schonberg@adacore.com>2008-08-22 15:26:28 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-22 15:26:28 +0200
commitfb34edfafac9e1b807e5ee6b93624e262b28aa78 (patch)
tree8436d77e61ea5b7b936a7292fb58f8792687ed1e /gcc/ada/exp_tss.adb
parentc9626ed6db93f2b09b893758bf44d797cb0200ac (diff)
downloadgcc-fb34edfafac9e1b807e5ee6b93624e262b28aa78.zip
gcc-fb34edfafac9e1b807e5ee6b93624e262b28aa78.tar.gz
gcc-fb34edfafac9e1b807e5ee6b93624e262b28aa78.tar.bz2
2008-08-22 Ed Schonberg <schonberg@adacore.com>
* 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
Diffstat (limited to 'gcc/ada/exp_tss.adb')
-rw-r--r--gcc/ada/exp_tss.adb7
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ada/exp_tss.adb b/gcc/ada/exp_tss.adb
index f9b9e33..acddeb1 100644
--- a/gcc/ada/exp_tss.adb
+++ b/gcc/ada/exp_tss.adb
@@ -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));