diff --git a/gcc/ada/exp_ch7.adb b/gcc/ada/exp_ch7.adb
index f4a707034c1..454f74507f4 100644
--- a/gcc/ada/exp_ch7.adb
+++ b/gcc/ada/exp_ch7.adb
@@ -5351,23 +5351,25 @@ package body Exp_Ch7 is
 
          --    V - (Obj_Typ'Descriptor_Size / Storage_Unit)
 
-         --  Note that this is done through a wrapper routine as  RTSfind
-         --  cannot retrieve operations with string name of the form "+".
-
          Obj_Addr :=
            Make_Function_Call (Loc,
              Name                   =>
-               New_Occurrence_Of (RTE (RE_Add_Offset_To_Address), Loc),
+               Make_Expanded_Name (Loc,
+                 Chars => Name_Op_Subtract,
+                 Prefix =>
+                   New_Occurrence_Of
+                     (RTU_Entity (System_Storage_Elements), Loc),
+                 Selector_Name =>
+                   Make_Identifier (Loc, Name_Op_Subtract)),
              Parameter_Associations => New_List (
                Obj_Addr,
-               Make_Op_Minus (Loc,
-                 Make_Op_Divide (Loc,
-                   Left_Opnd  =>
-                     Make_Attribute_Reference (Loc,
-                       Prefix         => New_Occurrence_Of (Obj_Typ, Loc),
-                       Attribute_Name => Name_Descriptor_Size),
-                   Right_Opnd =>
-                     Make_Integer_Literal (Loc, System_Storage_Unit)))));
+               Make_Op_Divide (Loc,
+                 Left_Opnd  =>
+                   Make_Attribute_Reference (Loc,
+                     Prefix         => New_Occurrence_Of (Obj_Typ, Loc),
+                     Attribute_Name => Name_Descriptor_Size),
+                 Right_Opnd =>
+                   Make_Integer_Literal (Loc, System_Storage_Unit))));
       end if;
 
       return Obj_Addr;
@@ -8105,14 +8107,17 @@ package body Exp_Ch7 is
             --  start of the elements:
             --
             --    V + Dnn
-            --
-            --  Note that this is done through a wrapper routine since RTSfind
-            --  cannot retrieve operations with string names of the form "+".
 
             Obj_Expr :=
               Make_Function_Call (Loc,
                 Name                   =>
-                  New_Occurrence_Of (RTE (RE_Add_Offset_To_Address), Loc),
+                  Make_Expanded_Name (Loc,
+                    Chars => Name_Op_Add,
+                    Prefix =>
+                      New_Occurrence_Of
+                        (RTU_Entity (System_Storage_Elements), Loc),
+                    Selector_Name =>
+                      Make_Identifier (Loc, Name_Op_Add)),
                 Parameter_Associations => New_List (
                   Obj_Expr,
                   New_Occurrence_Of (Dope_Id, Loc)));
diff --git a/gcc/ada/libgnat/s-finpri.adb b/gcc/ada/libgnat/s-finpri.adb
index bc90fe23ac9..9767090cb4a 100644
--- a/gcc/ada/libgnat/s-finpri.adb
+++ b/gcc/ada/libgnat/s-finpri.adb
@@ -60,18 +60,6 @@ package body System.Finalization_Primitives is
    --  Unlock the finalization collection, i.e. relinquish ownership of the
    --  lock to the collection.
 
-   ---------------------------
-   -- Add_Offset_To_Address --
-   ---------------------------
-
-   function Add_Offset_To_Address
-     (Addr   : System.Address;
-      Offset : System.Storage_Elements.Storage_Offset) return System.Address
-   is
-   begin
-      return System.Storage_Elements."+" (Addr, Offset);
-   end Add_Offset_To_Address;
-
    ---------------------------------
    -- Attach_Object_To_Collection --
    ---------------------------------
diff --git a/gcc/ada/libgnat/s-finpri.ads b/gcc/ada/libgnat/s-finpri.ads
index a821f1db657..851917b5924 100644
--- a/gcc/ada/libgnat/s-finpri.ads
+++ b/gcc/ada/libgnat/s-finpri.ads
@@ -171,13 +171,6 @@ package System.Finalization_Primitives with Preelaborate is
 
 private
 
-   --  Since RTSfind cannot contain names of the form RE_"+", the following
-   --  routine serves as a wrapper around System.Storage_Elements."+".
-
-   function Add_Offset_To_Address
-     (Addr   : System.Address;
-      Offset : System.Storage_Elements.Storage_Offset) return System.Address;
-
    --  Finalization masters:
 
    --  Master node type structure. Finalize_Address comes first because it is
diff --git a/gcc/ada/rtsfind.ads b/gcc/ada/rtsfind.ads
index f4566b4846f..8c0c9045360 100644
--- a/gcc/ada/rtsfind.ads
+++ b/gcc/ada/rtsfind.ads
@@ -919,7 +919,6 @@ package Rtsfind is
 
      RE_Attr_Long_Long_Float,            -- System.Fat_LLF
 
-     RE_Add_Offset_To_Address,           -- System.Finalization_Primitives
      RE_Attach_Object_To_Collection,     -- System.Finalization_Primitives
      RE_Attach_Object_To_Master,         -- System.Finalization_Primitives
      RE_Attach_Object_To_Node,           -- System.Finalization_Primitives
@@ -2571,7 +2570,6 @@ package Rtsfind is
 
      RE_Attr_Long_Long_Float             => System_Fat_LLF,
 
-     RE_Add_Offset_To_Address            => System_Finalization_Primitives,
      RE_Attach_Object_To_Collection      => System_Finalization_Primitives,
      RE_Attach_Object_To_Master          => System_Finalization_Primitives,
      RE_Attach_Object_To_Node            => System_Finalization_Primitives,
