aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2008-08-06 09:56:23 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2008-08-06 09:56:23 +0200
commitea08fcdc9403743570d9a278bf91f4a5491373b6 (patch)
tree46ebcc292a89c73b603133ea051a8496c6a0e814 /gcc
parentfa961f76ef7ce0b972797d55968d9f3ce04cee45 (diff)
downloadgcc-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/ChangeLog17
-rw-r--r--gcc/ada/exp_disp.adb5
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)));