diff options
author | Olivier Hainque <hainque@act-europe.fr> | 2004-09-21 17:34:36 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2004-09-21 17:34:36 +0200 |
commit | 2494e67370e79d3530c72fab916713e2254453d6 (patch) | |
tree | a844e2d6f014daaf847db0b66d875e987f26bc15 /gcc | |
parent | 910d20fcb8c5fa83c64c1540cca945cc0c31d77c (diff) | |
download | gcc-2494e67370e79d3530c72fab916713e2254453d6.zip gcc-2494e67370e79d3530c72fab916713e2254453d6.tar.gz gcc-2494e67370e79d3530c72fab916713e2254453d6.tar.bz2 |
decl.c (gnat_to_gnu_entity): Check for a dummy designated type via TYPE_MODE instead of COMPLETE_TYPE_P.
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.
From-SVN: r87807
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ada/decl.c | 2 |
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 |