diff options
author | Javier Miranda <miranda@adacore.com> | 2005-12-09 18:21:38 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2005-12-09 18:21:38 +0100 |
commit | 39edfb4572286b82d9bad3785a7ecaf8d49470a2 (patch) | |
tree | 07c416f2b236d9b94721f5cc00cdceafd0083068 /gcc | |
parent | d39d6bb8a0606380752dec6301b06a2af1ed56b2 (diff) | |
download | gcc-39edfb4572286b82d9bad3785a7ecaf8d49470a2.zip gcc-39edfb4572286b82d9bad3785a7ecaf8d49470a2.tar.gz gcc-39edfb4572286b82d9bad3785a7ecaf8d49470a2.tar.bz2 |
sem_ch8.adb (Find_Type): In case of tagged types that are concurrent types use the corresponding record type.
2005-12-05 Javier Miranda <miranda@adacore.com>
* sem_ch8.adb (Find_Type): In case of tagged types that are concurrent
types use the corresponding record type. This was not needed before
the implementation of Ada 2005 synchronized types because
concurrent types were never tagged types in Ada 95.
From-SVN: r108304
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/sem_ch8.adb | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ada/sem_ch8.adb b/gcc/ada/sem_ch8.adb index a0b0f38..9af04a7 100644 --- a/gcc/ada/sem_ch8.adb +++ b/gcc/ada/sem_ch8.adb @@ -4684,7 +4684,13 @@ package body Sem_Ch8 is -- Case of tagged type else - C := Class_Wide_Type (Entity (Prefix (N))); + if Is_Concurrent_Type (T) then + C := Class_Wide_Type + (Corresponding_Record_Type (Entity (Prefix (N)))); + else + C := Class_Wide_Type (Entity (Prefix (N))); + end if; + Set_Entity_With_Style_Check (N, C); Generate_Reference (C, N); Set_Etype (N, C); |