diff options
Diffstat (limited to 'gcc/ada/a-cborse.ads')
-rw-r--r-- | gcc/ada/a-cborse.ads | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/gcc/ada/a-cborse.ads b/gcc/ada/a-cborse.ads index 03fdd49..aee0bf9 100644 --- a/gcc/ada/a-cborse.ads +++ b/gcc/ada/a-cborse.ads @@ -277,11 +277,33 @@ package Ada.Containers.Bounded_Ordered_Sets is Key : Key_Type) return Reference_Type; private - type Reference_Type (Element : not null access Element_Type) is - null record; + type Set_Access is access all Set; + for Set_Access'Storage_Size use 0; + + type Key_Access is access all Key_Type; use Ada.Streams; + type Reference_Control_Type is + new Ada.Finalization.Controlled with + record + Container : Set_Access; + Pos : Cursor; + Old_Key : Key_Access; + end record; + + overriding procedure + Adjust (Control : in out Reference_Control_Type); + pragma Inline (Adjust); + + overriding procedure + Finalize (Control : in out Reference_Control_Type); + pragma Inline (Finalize); + + type Reference_Type (Element : not null access Element_Type) is record + Control : Reference_Control_Type; + end record; + procedure Read (Stream : not null access Root_Stream_Type'Class; Item : out Reference_Type); |