-- 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;
-- 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)));
-- 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 --
---------------------------------
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
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
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,