diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2008-08-06 09:56:23 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2008-08-06 09:56:23 +0200 |
commit | ea08fcdc9403743570d9a278bf91f4a5491373b6 (patch) | |
tree | 46ebcc292a89c73b603133ea051a8496c6a0e814 /gcc | |
parent | fa961f76ef7ce0b972797d55968d9f3ce04cee45 (diff) | |
download | gcc-ea08fcdc9403743570d9a278bf91f4a5491373b6.zip gcc-ea08fcdc9403743570d9a278bf91f4a5491373b6.tar.gz gcc-ea08fcdc9403743570d9a278bf91f4a5491373b6.tar.bz2 |
exp_disp (Expand_Interface_Conversion): Freeze the entity associated with the target interface before expanding the...
2008-08-06 Javier Miranda <miranda@adacore.com>
* exp_disp (Expand_Interface_Conversion): Freeze the entity associated
with the target interface before expanding the code of the interface
conversion.
From-SVN: r138766
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 17 | ||||
-rw-r--r-- | gcc/ada/exp_disp.adb | 5 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index 761c5da..80d4385 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,20 @@ +2008-08-06 Ed Schonberg <schonberg@adacore.com> + + * sem_ch3.adb (Process_Discriminants): diagnose redundant or improper + null exclusion in a discriminant declaration + + * sem_ch8.adb (Analyze_Object_Renaming): diagnose null exclusion + indicators when type is not an access type. + + * sem_ch12.adb (Formal_Object_Declaration): diagnose null exclusion + indicators when type is not an access type. + +2008-08-06 Javier Miranda <miranda@adacore.com> + + * exp_disp (Expand_Interface_Conversion): Freeze the entity associated + with the target interface before expanding the code of the interface + conversion. + 2008-08-05 Ed Schonberg <schonberg@adacore.com> * freeze.adb: diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb index 461edc7..9ce2e74 100644 --- a/gcc/ada/exp_disp.adb +++ b/gcc/ada/exp_disp.adb @@ -773,6 +773,11 @@ package body Exp_Disp is Iface_Typ := Corresponding_Record_Type (Iface_Typ); end if; + -- Freeze the entity associated with the target interface to have + -- available the attribute Access_Disp_Table. + + Freeze_Before (N, Iface_Typ); + pragma Assert (not Is_Static or else (not Is_Class_Wide_Type (Iface_Typ) and then Is_Interface (Iface_Typ))); |