]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
ada: Fix Program_Error raised during generation of data representation in JSON
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 5 Jan 2024 11:04:17 +0000 (12:04 +0100)
committerMarc Poulhiès <poulhies@adacore.com>
Tue, 7 May 2024 07:55:51 +0000 (09:55 +0200)
This happens for the extension of a private discriminated tagged type.

gcc/ada/

* repinfo.adb (List_Record_Info.List_Structural_Record_Layout): Add
another guard for private types after retrieving the parent in the
extension case.

gcc/ada/repinfo.adb

index 28a587f039b274567ca7b62a063ceb21a3751b0f..28e4a642765581395808f0903a048329b93f8728 100644 (file)
@@ -1491,6 +1491,12 @@ package body Repinfo is
 
                   else
                      Parent_Type := Base_Type (Parent_Type);
+
+                     if Is_Private_Type (Parent_Type) then
+                        Parent_Type := Full_View (Parent_Type);
+                        pragma Assert (Present (Parent_Type));
+                     end if;
+
                      if not In_Extended_Main_Source_Unit (Parent_Type) then
                         raise Not_In_Extended_Main;
                      end if;