aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/ChangeLog7
-rw-r--r--gcc/ada/decl.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 3799d7b..ca02566 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -1,3 +1,10 @@
+2004-09-21 Olivier Hainque <hainque@act-europe.fr>
+
+ * decl.c (gnat_to_gnu_entity) <E_General_Access_Type>: Check for a
+ dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P. This
+ ensures proper handling of types with rep clauses, which might have
+ their TYPE_SIZE set already.
+
2004-09-21 Robert Dewar <dewar@gnat.com>
* decl.c (gnat_to_gnu_type, case E_Modular_Integer_Type): Wrap modular
diff --git a/gcc/ada/decl.c b/gcc/ada/decl.c
index b73081b..369f8d2 100644
--- a/gcc/ada/decl.c
+++ b/gcc/ada/decl.c
@@ -3032,7 +3032,7 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
of the call to gnat_to_gnu_type above if we are processing
an access type for a record component designating the
record type itself. */
- if (!COMPLETE_TYPE_P (gnu_desig_type))
+ if (TYPE_MODE (gnu_desig_type) == VOIDmode)
{
/* We must ensure that the pointer to variant we make will
be processed by update_pointer_to when the initial type