mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-28 11:50:52 +08:00
decl.c (gnat_to_gnu_entity): Adjust comment about type extension with discriminants.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust comment about type extension with discriminants. <E_Record_Subtype>: Remove useless test and reorder conditions. (elaborate_entity) <E_Record_Subtype>: Likewise. From-SVN: r194965
This commit is contained in:
parent
5b638c3a5a
commit
a8c4c75a4a
@ -1,3 +1,10 @@
|
||||
2013-01-07 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust
|
||||
comment about type extension with discriminants.
|
||||
<E_Record_Subtype>: Remove useless test and reorder conditions.
|
||||
(elaborate_entity) <E_Record_Subtype>: Likewise.
|
||||
|
||||
2013-01-07 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR ada/864
|
||||
|
@ -3006,9 +3006,9 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
|
||||
tree gnu_parent;
|
||||
|
||||
/* A major complexity here is that the parent subtype will
|
||||
reference our discriminants in its Discriminant_Constraint
|
||||
list. But those must reference the parent component of this
|
||||
record which is of the parent subtype we have not built yet!
|
||||
reference our discriminants in its Stored_Constraint list.
|
||||
But those must reference the parent component of this record
|
||||
which is precisely of the parent subtype we have not built yet!
|
||||
To break the circle we first build a dummy COMPONENT_REF which
|
||||
represents the "get to the parent" operation and initialize
|
||||
each of those discriminants to a COMPONENT_REF of the above
|
||||
@ -3287,9 +3287,8 @@ gnat_to_gnu_entity (Entity_Id gnat_entity, tree gnu_expr, int definition)
|
||||
if (IN (Ekind (gnat_base_type), Record_Kind)
|
||||
&& !Is_Unchecked_Union (gnat_base_type)
|
||||
&& !Is_For_Access_Subtype (gnat_entity)
|
||||
&& Is_Constrained (gnat_entity)
|
||||
&& Has_Discriminants (gnat_entity)
|
||||
&& Present (Discriminant_Constraint (gnat_entity))
|
||||
&& Is_Constrained (gnat_entity)
|
||||
&& Stored_Constraint (gnat_entity) != No_Elist)
|
||||
{
|
||||
vec<subst_pair> gnu_subst_list
|
||||
@ -5948,9 +5947,7 @@ elaborate_entity (Entity_Id gnat_entity)
|
||||
case E_Private_Subtype:
|
||||
case E_Limited_Private_Subtype:
|
||||
case E_Record_Subtype_With_Private:
|
||||
if (Is_Constrained (gnat_entity)
|
||||
&& Has_Discriminants (gnat_entity)
|
||||
&& Present (Discriminant_Constraint (gnat_entity)))
|
||||
if (Has_Discriminants (gnat_entity) && Is_Constrained (gnat_entity))
|
||||
{
|
||||
Node_Id gnat_discriminant_expr;
|
||||
Entity_Id gnat_field;
|
||||
|
Loading…
x
Reference in New Issue
Block a user