aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Miranda <miranda@adacore.com>2024-07-22 10:26:41 +0000
committerMarc Poulhiès <dkm@gcc.gnu.org>2024-08-06 10:54:30 +0200
commit59276c4d98a62e19622dc9ff9905f6d113497811 (patch)
tree9b10ec998f497d4d94f8acb4088ce23ea9a75fa2
parentb25472f38da013d9a0575473db4522bc81d32781 (diff)
downloadgcc-59276c4d98a62e19622dc9ff9905f6d113497811.zip
gcc-59276c4d98a62e19622dc9ff9905f6d113497811.tar.gz
gcc-59276c4d98a62e19622dc9ff9905f6d113497811.tar.bz2
ada: Assert failure in repinfo
Using switch gnatR4, the frontend crashes when generating information for a private record type. gcc/ada/ * repinfo.adb (List_Record_Info): Handle private record types.
-rw-r--r--gcc/ada/repinfo.adb6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/ada/repinfo.adb b/gcc/ada/repinfo.adb
index 7dada53..c08a232 100644
--- a/gcc/ada/repinfo.adb
+++ b/gcc/ada/repinfo.adb
@@ -521,7 +521,11 @@ package body Repinfo is
elsif Is_Record_Type (E) then
if List_Representation_Info >= 1 then
- List_Record_Info (E, Bytes_Big_Endian);
+ if Is_Private_Type (E) then
+ List_Record_Info (Full_View (E), Bytes_Big_Endian);
+ else
+ List_Record_Info (E, Bytes_Big_Endian);
+ end if;
-- Recurse into entities local to a record type