diff options
author | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2021-09-13 10:37:49 -0700 |
commit | e252b51ccde010cbd2a146485d8045103cd99533 (patch) | |
tree | e060f101cdc32bf5e520de8e5275db9d4236b74c /gcc/ada/sem_aux.adb | |
parent | f10c7c4596dda99d2ee872c995ae4aeda65adbdf (diff) | |
parent | 104c05c5284b7822d770ee51a7d91946c7e56d50 (diff) | |
download | gcc-e252b51ccde010cbd2a146485d8045103cd99533.zip gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.gz gcc-e252b51ccde010cbd2a146485d8045103cd99533.tar.bz2 |
Merge from trunk revision 104c05c5284b7822d770ee51a7d91946c7e56d50.
Diffstat (limited to 'gcc/ada/sem_aux.adb')
-rw-r--r-- | gcc/ada/sem_aux.adb | 34 |
1 files changed, 23 insertions, 11 deletions
diff --git a/gcc/ada/sem_aux.adb b/gcc/ada/sem_aux.adb index 4925ffd..ea3b59c 100644 --- a/gcc/ada/sem_aux.adb +++ b/gcc/ada/sem_aux.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2020, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2021, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -23,13 +23,17 @@ -- -- ------------------------------------------------------------------------------ -with Atree; use Atree; -with Einfo; use Einfo; -with Nlists; use Nlists; -with Sinfo; use Sinfo; -with Snames; use Snames; -with Stand; use Stand; -with Uintp; use Uintp; +with Atree; use Atree; +with Einfo; use Einfo; +with Einfo.Entities; use Einfo.Entities; +with Einfo.Utils; use Einfo.Utils; +with Nlists; use Nlists; +with Sinfo; use Sinfo; +with Sinfo.Nodes; use Sinfo.Nodes; +with Sinfo.Utils; use Sinfo.Utils; +with Snames; use Snames; +with Stand; use Stand; +with Uintp; use Uintp; package body Sem_Aux is @@ -1072,14 +1076,18 @@ package body Sem_Aux is --------------------- function Is_Limited_Type (Ent : Entity_Id) return Boolean is - Btype : constant E := Base_Type (Ent); - Rtype : constant E := Root_Type (Btype); + Btype : Entity_Id; + Rtype : Entity_Id; begin if not Is_Type (Ent) then return False; + end if; - elsif Ekind (Btype) = E_Limited_Private_Type + Btype := Base_Type (Ent); + Rtype := Root_Type (Btype); + + if Ekind (Btype) = E_Limited_Private_Type or else Is_Limited_Composite (Btype) then return True; @@ -1413,12 +1421,16 @@ package body Sem_Aux is N : Node_Id; begin + pragma Assert (Is_Package_Or_Generic_Package (E)); + N := Parent (E); if Nkind (N) = N_Defining_Program_Unit_Name then N := Parent (N); end if; + pragma Assert (Nkind (N) = N_Package_Specification); + return N; end Package_Specification; |