sem_util.adb (Gather_Components): When gathering components of a nested variant...
authorEd Schonberg <schonberg@adacore.com>
Fri, 16 Oct 2015 10:28:37 +0000 (10:28 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Fri, 16 Oct 2015 10:28:37 +0000 (12:28 +0200)
2015-10-16  Ed Schonberg  <schonberg@adacore.com>

* sem_util.adb (Gather_Components): When gathering components
of a nested variant, the record type used in legality checks is
the enclosing record type.

From-SVN: r228865

gcc/ada/ChangeLog
gcc/ada/sem_util.adb

index 9effe45f230049306c0d86c60f0725da816515f0..e31645e00ad1d39aa88c36060c47db398c5ae62a 100644 (file)
@@ -1,3 +1,9 @@
+2015-10-16  Ed Schonberg  <schonberg@adacore.com>
+
+       * sem_util.adb (Gather_Components): When gathering components
+       of a nested variant, the record type used in legality checks is
+       the enclosing record type.
+
 2015-10-13  Jakub Jelinek  <jakub@redhat.com>
 
        * gcc-interface/utils.c (DEF_FUNCTION_TYPE_9, DEF_FUNCTION_TYPE_10,
index a29b286f717ec07e25abb8ea16905d7b8046670a..56f4d9378ca80953f77eb521678234b64fc8658b 100644 (file)
@@ -7292,10 +7292,11 @@ package body Sem_Util is
       end  if;
 
       --  If we have found the corresponding choice, recursively add its
-      --  components to the Into list.
+      --  components to the Into list. The nested components are part of
+      --  the same record type.
 
       Gather_Components
-        (Empty, Component_List (Variant), Governed_By, Into, Report_Errors);
+        (Typ, Component_List (Variant), Governed_By, Into, Report_Errors);
    end Gather_Components;
 
    ------------------------
@@ -16998,7 +16999,7 @@ package body Sem_Util is
    begin
       --  This is a private type which is not completed yet. This can only
       --  happen in a default expression (of a formal parameter or of a
-      --  record component). Do not expand transient scope in this case
+      --  record component). Do not expand transient scope in this case.
 
       if No (Typ) then
          return False;
@@ -17104,9 +17105,9 @@ package body Sem_Util is
       --  nondiscriminants). That is, the recursive calls are too conservative.
 
       function Has_Discrim_Dep_Array (Typ : Entity_Id) return Boolean;
-      --  True if we find certain discriminant-dependent array
-      --  subcomponents. This shouldn't be necessary, but without this check,
-      --  we crash in gimplify. ???
+      --  True if we find certain discriminant-dependent array subcomponents.
+      --  This shouldn't be necessary, but without this check, we crash in
+      --  gimplify. ???
 
       function Caller_Known_Size_Record (Typ : Entity_Id) return Boolean is
          pragma Assert (Typ = Underlying_Type (Typ));