diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-09-10 16:34:26 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2010-09-10 16:34:26 +0200 |
commit | cd9909a0c90962131d6b58d0af701f6333ecd244 (patch) | |
tree | b877860313e1304b6652f4cf97e7a337ac6efded /gcc/ada/exp_cg.adb | |
parent | 2962b1bbdf404ecd418ed0203efda19ee8c37431 (diff) | |
download | gcc-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.adb | 8 |
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); |