aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2005-12-09 18:21:38 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2005-12-09 18:21:38 +0100
commit39edfb4572286b82d9bad3785a7ecaf8d49470a2 (patch)
tree07c416f2b236d9b94721f5cc00cdceafd0083068 /gcc
parentd39d6bb8a0606380752dec6301b06a2af1ed56b2 (diff)
downloadgcc-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.adb8
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);