aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2022-05-02 10:57:46 +0200
committerPierre-Marie de Rodat <derodat@adacore.com>2022-06-01 08:43:16 +0000
commit73514ab714d651795c10e0790217a67eb6b41b48 (patch)
tree27c17f661645f106096baf1de856022635116b4e /gcc
parent64f72fae73457e115dce001ba00a7d457af87c82 (diff)
downloadgcc-73514ab714d651795c10e0790217a67eb6b41b48.zip
gcc-73514ab714d651795c10e0790217a67eb6b41b48.tar.gz
gcc-73514ab714d651795c10e0790217a67eb6b41b48.tar.bz2
[Ada] Use Actions field of freeze nodes for subprograms (continued)
This case was missed in the previous change. gcc/ada/ * exp_ch6.adb (Freeze_Subprogram.Register_Predefined_DT_Entry): Put the actions into the Actions field of the freeze node instead of inserting them after it.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/exp_ch6.adb12
1 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb
index 7d50727..3b5d59c 100644
--- a/gcc/ada/exp_ch6.adb
+++ b/gcc/ada/exp_ch6.adb
@@ -7839,6 +7839,7 @@ package body Exp_Ch6 is
procedure Register_Predefined_DT_Entry (Prim : Entity_Id) is
Iface_DT_Ptr : Elmt_Id;
+ L : List_Id;
Tagged_Typ : Entity_Id;
Thunk_Id : Entity_Id;
Thunk_Code : Node_Id;
@@ -7871,7 +7872,7 @@ package body Exp_Ch6 is
Iface => Related_Type (Node (Iface_DT_Ptr)));
if Present (Thunk_Code) then
- Insert_Actions_After (N, New_List (
+ L := New_List (
Thunk_Code,
Build_Set_Predefined_Prim_Op_Address (Loc,
@@ -7894,7 +7895,14 @@ package body Exp_Ch6 is
Unchecked_Convert_To (RTE (RE_Prim_Ptr),
Make_Attribute_Reference (Loc,
Prefix => New_Occurrence_Of (Prim, Loc),
- Attribute_Name => Name_Unrestricted_Access)))));
+ Attribute_Name => Name_Unrestricted_Access))));
+
+ if No (Actions (N)) then
+ Set_Actions (N, L);
+
+ else
+ Append_List (L, Actions (N));
+ end if;
end if;
-- Skip the tag of the predefined primitives dispatch table