summaryrefslogtreecommitdiff
path: root/gcc/ada/exp_cg.adb
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2010-09-10 16:34:26 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2010-09-10 16:34:26 +0200
commitcd9909a0c90962131d6b58d0af701f6333ecd244 (patch)
treeb877860313e1304b6652f4cf97e7a337ac6efded /gcc/ada/exp_cg.adb
parent2962b1bbdf404ecd418ed0203efda19ee8c37431 (diff)
downloadgcc-cd9909a0c90962131d6b58d0af701f6333ecd244.tar.gz
[multiple changes]
2010-09-10 Robert Dewar <dewar@adacore.com> * frontend.adb: Minor reformatting. 2010-09-10 Robert Dewar <dewar@adacore.com> * par-ch4.adb (P_Conditional_Expression): Use P_Condition for condition * par-ch5.adb (P_Condition): Move from body to spec * par.adb (Ch5.P_Condition): Move from body to spec 2010-09-10 Ed Schonberg <schonberg@adacore.com> * exp_cg.adb (Write_Call_Info): If a type that has been registered in the call table is private, use its full view to generate information on its operations. From-SVN: r164181
Diffstat (limited to 'gcc/ada/exp_cg.adb')
-rw-r--r--gcc/ada/exp_cg.adb8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ada/exp_cg.adb b/gcc/ada/exp_cg.adb
index 376f9cadf60..425ae540526 100644
--- a/gcc/ada/exp_cg.adb
+++ b/gcc/ada/exp_cg.adb
@@ -129,6 +129,14 @@ package body Exp_CG is
Write_Call_Info (N);
else pragma Assert (Nkind (N) = N_Defining_Identifier);
+
+ -- The type may be a private untagged type whose completion is
+ -- tagged, in which case we must use the full tagged view.
+
+ if not Is_Tagged_Type (N) and then Is_Private_Type (N) then
+ N := Full_View (N);
+ end if;
+
pragma Assert (Is_Tagged_Type (N));
Write_Type_Info (N);