aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorHristian Kirtchev <kirtchev@adacore.com>2008-07-31 15:53:45 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-07-31 15:53:45 +0200
commit2653cbda9e00269e7668ec10b38215c59bc8cd10 (patch)
tree0236c7c485ceb567648cd1c062ba2cbdab5b55fd /gcc
parent978057627777b89b5b81d11fbca24a998212c199 (diff)
downloadgcc-2653cbda9e00269e7668ec10b38215c59bc8cd10.zip
gcc-2653cbda9e00269e7668ec10b38215c59bc8cd10.tar.gz
gcc-2653cbda9e00269e7668ec10b38215c59bc8cd10.tar.bz2
exp_disp.adb (Prim_Op_Kind): Retrieve the full view when a private tagged type is completed by a concurrent type.
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/exp_disp.adb7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb
index 86420695..ac25171 100644
--- a/gcc/ada/exp_disp.adb
+++ b/gcc/ada/exp_disp.adb
@@ -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