decl.c (gnat_to_gnu_entity): Put the _Tag field before any discriminants in the field list.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put the _Tag field before any discriminants in the field list. (components_to_record): Remove obsolete comment. From-SVN: r143267
This commit is contained in:
parent
53a7ff9a9a
commit
13318d2fc8
2 changed files with 19 additions and 4 deletions
|
@ -1,3 +1,9 @@
|
|||
2009-01-11 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Put
|
||||
the _Tag field before any discriminants in the field list.
|
||||
(components_to_record): Remove obsolete comment.
|
||||
|
||||
2008-12-09 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR ada/38450
|
||||
|
|
|
@ -3139,8 +3139,18 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
|
|||
= DECL_DISCRIMINANT_NUMBER (gnu_old_field);
|
||||
TREE_THIS_VOLATILE (gnu_field)
|
||||
= TREE_THIS_VOLATILE (gnu_old_field);
|
||||
TREE_CHAIN (gnu_field) = gnu_field_list;
|
||||
gnu_field_list = gnu_field;
|
||||
|
||||
/* To match the layout crafted in components_to_record, if
|
||||
this is the _Tag field, put it before any discriminants
|
||||
instead of after them as for all other fields. */
|
||||
if (Chars (gnat_field) == Name_uTag)
|
||||
gnu_field_list = chainon (gnu_field_list, gnu_field);
|
||||
else
|
||||
{
|
||||
TREE_CHAIN (gnu_field) = gnu_field_list;
|
||||
gnu_field_list = gnu_field;
|
||||
}
|
||||
|
||||
save_gnu_tree (gnat_field, gnu_field, false);
|
||||
}
|
||||
|
||||
|
@ -6436,8 +6446,7 @@ components_to_record (tree gnu_record_type, Node_Id component_list,
|
|||
packed, definition);
|
||||
|
||||
/* If this is the _Tag field, put it before any discriminants,
|
||||
instead of after them as is the case for all other fields.
|
||||
Ignore field of void type if only annotating. */
|
||||
instead of after them as is the case for all other fields. */
|
||||
if (Chars (gnat_field) == Name_uTag)
|
||||
gnu_field_list = chainon (gnu_field_list, gnu_field);
|
||||
else
|
||||
|
|
Loading…
Add table
Reference in a new issue