diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2022-04-23 01:09:39 +0200 |
---|---|---|
committer | Pierre-Marie de Rodat <derodat@adacore.com> | 2022-05-30 08:29:02 +0000 |
commit | 878ded4f9a974bbcf90346d746daa5eeebdd7bd6 (patch) | |
tree | 813591fee4c576261b557fb80cb34a943aa4fa9b | |
parent | 79b7ab68bce24103adc388d184ff74755914cdda (diff) |
[Ada] Do not freeze specifically for dispatch tables
The left-overs of the old freezing code in Make_DT are now redundant since
the semantic analyzer performs the same task for the 'Access attribute.
gcc/ada/
* exp_disp.adb (Make_DT): Remove remaining freezing code.
-rw-r--r-- | gcc/ada/exp_disp.adb | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/gcc/ada/exp_disp.adb b/gcc/ada/exp_disp.adb index a0a34496541..1f43458294b 100644 --- a/gcc/ada/exp_disp.adb +++ b/gcc/ada/exp_disp.adb @@ -4469,35 +4469,6 @@ package body Exp_Disp is Parent_Typ := Full_View (Parent_Typ); end if; - -- Ensure that all the primitives are frozen. This is only required when - -- building static dispatch tables: the primitives must be frozen to be - -- referenced, otherwise we have problems with the back end. But this is - -- not a requirement with nonstatic dispatch tables because in this case - -- we generate an empty dispatch table at this point and the extra code - -- required to register the primitives in their slot will be generated - -- later, when each primitive is frozen (see Freeze_Subprogram). - - if Building_Static_DT (Typ) then - declare - F_List : List_Id; - Prim : Entity_Id; - Prim_Elmt : Elmt_Id; - - begin - Prim_Elmt := First_Elmt (Primitive_Operations (Typ)); - while Present (Prim_Elmt) loop - Prim := Node (Prim_Elmt); - F_List := Freeze_Entity (Prim, Typ, Do_Freeze_Profile => False); - - if Present (F_List) then - Append_List_To (Result, F_List); - end if; - - Next_Elmt (Prim_Elmt); - end loop; - end; - end if; - if not Is_Interface (Typ) and then Has_Interfaces (Typ) then declare Cannot_Have_Null_Disc : Boolean := False; |