summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-16 09:07:25 +0000
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-16 09:07:25 +0000
commit45af96f1270883a848951cafa31baef540d14289 (patch)
treebe70c36e28f47e86407882d9a4ed1a28b9cbf739
parent184e57df4adbfb7b57e4c0732e9b40bafb7492fe (diff)
downloadgcc-45af96f1270883a848951cafa31baef540d14289.tar.gz
Resync with latest version of AI-302
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101079 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ada/a-cihase.ads113
-rw-r--r--gcc/ada/a-strfix.ads1
-rw-r--r--gcc/ada/a-stunha.ads4
-rw-r--r--gcc/ada/a-szunau.adb2
-rw-r--r--gcc/ada/a-szunau.ads2
5 files changed, 67 insertions, 55 deletions
diff --git a/gcc/ada/a-cihase.ads b/gcc/ada/a-cihase.ads
index 53ec645be09..893864346e5 100644
--- a/gcc/ada/a-cihase.ads
+++ b/gcc/ada/a-cihase.ads
@@ -2,11 +2,12 @@
-- --
-- GNAT LIBRARY COMPONENTS --
-- --
--- ADA.CONTAINERS.INDEFINITE_HASHED_SETS --
+-- A D A . C O N T A I N E R S . --
+-- I N D E F I N I T E _ H A S H E D _ S E T S --
-- --
-- S p e c --
-- --
--- Copyright (C) 2004 Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2005 Free Software Foundation, Inc. --
-- --
-- This specification is derived from the Ada Reference Manual for use with --
-- GNAT. The copyright notice above, and the license provisions that follow --
@@ -35,16 +36,15 @@
with Ada.Containers.Hash_Tables;
with Ada.Streams;
+with Ada.Finalization;
generic
type Element_Type (<>) is private;
with function Hash (Element : Element_Type) return Hash_Type;
- -- TODO: get a ruling from ARG in Atlanta re the name and
- -- order of these declarations ???
-
- with function Equivalent_Keys (Left, Right : Element_Type) return Boolean;
+ with function Equivalent_Elements (Left, Right : Element_Type)
+ return Boolean;
with function "=" (Left, Right : Element_Type) return Boolean is <>;
@@ -62,6 +62,8 @@ package Ada.Containers.Indefinite_Hashed_Sets is
function "=" (Left, Right : Set) return Boolean;
+ function Equivalent_Sets (Left, Right : Set) return Boolean;
+
function Length (Container : Set) return Count_Type;
function Is_Empty (Container : Set) return Boolean;
@@ -74,10 +76,10 @@ package Ada.Containers.Indefinite_Hashed_Sets is
(Position : Cursor;
Process : not null access procedure (Element : Element_Type));
--- TODO: resolve in atlanta ???
--- procedure Replace_Element (Container : in out Set;
--- Position : Cursor;
--- By : Element_Type);
+ procedure Replace_Element
+ (Container : Set;
+ Position : Cursor;
+ By : Element_Type);
procedure Move
(Target : in out Set;
@@ -97,9 +99,35 @@ package Ada.Containers.Indefinite_Hashed_Sets is
procedure Delete (Container : in out Set; Item : Element_Type);
+ procedure Delete (Container : in out Set; Position : in out Cursor);
+
procedure Exclude (Container : in out Set; Item : Element_Type);
- procedure Delete (Container : in out Set; Position : in out Cursor);
+ function Contains (Container : Set; Item : Element_Type) return Boolean;
+
+ function Find (Container : Set; Item : Element_Type) return Cursor;
+
+ function First (Container : Set) return Cursor;
+
+ function Next (Position : Cursor) return Cursor;
+
+ procedure Next (Position : in out Cursor);
+
+ function Has_Element (Position : Cursor) return Boolean;
+
+ function Equivalent_Elements (Left, Right : Cursor) return Boolean;
+
+ function Equivalent_Elements
+ (Left : Cursor;
+ Right : Element_Type) return Boolean;
+
+ function Equivalent_Elements
+ (Left : Element_Type;
+ Right : Cursor) return Boolean;
+
+ procedure Iterate
+ (Container : Set;
+ Process : not null access procedure (Position : Cursor));
procedure Union (Target : in out Set; Source : Set);
@@ -126,13 +154,9 @@ package Ada.Containers.Indefinite_Hashed_Sets is
function "xor" (Left, Right : Set) return Set
renames Symmetric_Difference;
- function Is_Subset (Subset : Set; Of_Set : Set) return Boolean;
-
function Overlap (Left, Right : Set) return Boolean;
- function Contains (Container : Set; Item : Element_Type) return Boolean;
-
- function Find (Container : Set; Item : Element_Type) return Cursor;
+ function Is_Subset (Subset : Set; Of_Set : Set) return Boolean;
function Capacity (Container : Set) return Count_Type;
@@ -140,28 +164,6 @@ package Ada.Containers.Indefinite_Hashed_Sets is
(Container : in out Set;
Capacity : Count_Type);
- function First (Container : Set) return Cursor;
-
- function Next (Position : Cursor) return Cursor;
-
- procedure Next (Position : in out Cursor);
-
- function Has_Element (Position : Cursor) return Boolean;
-
- function Equivalent_Keys (Left, Right : Cursor) return Boolean;
-
- function Equivalent_Keys
- (Left : Cursor;
- Right : Element_Type) return Boolean;
-
- function Equivalent_Keys
- (Left : Element_Type;
- Right : Cursor) return Boolean;
-
- procedure Iterate
- (Container : Set;
- Process : not null access procedure (Position : Cursor));
-
generic
type Key_Type (<>) is limited private;
@@ -183,16 +185,16 @@ package Ada.Containers.Indefinite_Hashed_Sets is
function Element (Container : Set; Key : Key_Type) return Element_Type;
--- TODO: resolve in atlanta???
--- procedure Replace (Container : in out Set;
--- Key : Key_Type;
--- New_Item : Element_Type);
+ procedure Replace
+ (Container : in out Set;
+ Key : Key_Type;
+ New_Item : Element_Type);
procedure Delete (Container : in out Set; Key : Key_Type);
procedure Exclude (Container : in out Set; Key : Key_Type);
- procedure Checked_Update_Element
+ procedure Update_Element_Preserving_Key
(Container : in out Set;
Position : Cursor;
Process : not null access
@@ -211,18 +213,30 @@ private
type Node_Type;
type Node_Access is access Node_Type;
- package HT_Types is
- new Hash_Tables.Generic_Hash_Table_Types (Node_Access);
+ type Element_Access is access Element_Type;
- use HT_Types;
+ type Node_Type is
+ limited record
+ Element : Element_Access;
+ Next : Node_Access;
+ end record;
+
+ package HT_Types is new Hash_Tables.Generic_Hash_Table_Types
+ (Node_Type,
+ Node_Access);
- type Set is new Hash_Table_Type with null record;
+ type Set is new Ada.Finalization.Controlled with record
+ HT : HT_Types.Hash_Table_Type;
+ end record;
procedure Adjust (Container : in out Set);
procedure Finalize (Container : in out Set);
- type Set_Access is access constant Set;
+ use HT_Types;
+ use Ada.Finalization;
+
+ type Set_Access is access all Set;
for Set_Access'Storage_Size use 0;
type Cursor is
@@ -249,7 +263,6 @@ private
for Set'Read use Read;
- Empty_Set : constant Set := (Hash_Table_Type with null record);
+ Empty_Set : constant Set := (Controlled with HT => (null, 0, 0, 0));
end Ada.Containers.Indefinite_Hashed_Sets;
-
diff --git a/gcc/ada/a-strfix.ads b/gcc/ada/a-strfix.ads
index bf1a496828d..b85b4078645 100644
--- a/gcc/ada/a-strfix.ads
+++ b/gcc/ada/a-strfix.ads
@@ -13,7 +13,6 @@
-- --
------------------------------------------------------------------------------
-
with Ada.Strings.Maps;
package Ada.Strings.Fixed is
diff --git a/gcc/ada/a-stunha.ads b/gcc/ada/a-stunha.ads
index b838bcbdcdf..81716555389 100644
--- a/gcc/ada/a-stunha.ads
+++ b/gcc/ada/a-stunha.ads
@@ -2,11 +2,11 @@
-- --
-- GNAT LIBRARY COMPONENTS --
-- --
--- ADA.STRINGS.UNBOUNDED.HASH --
+-- A D A . S T R I N G S . U N B O U N D E D . H A S H --
-- --
-- S p e c --
-- --
--- Copyright (C) 2004 Free Software Foundation, Inc. --
+-- Copyright (C) 2004-2005 Free Software Foundation, Inc. --
-- --
-- This specification is adapted from the Ada Reference Manual for use with --
-- GNAT. In accordance with the copyright of that document, you can freely --
diff --git a/gcc/ada/a-szunau.adb b/gcc/ada/a-szunau.adb
index c022a5b28e3..119f56b7e3d 100644
--- a/gcc/ada/a-szunau.adb
+++ b/gcc/ada/a-szunau.adb
@@ -1,6 +1,6 @@
------------------------------------------------------------------------------
-- --
--- GNAT RUNTIME COMPONENTS --
+-- GNAT RUN-TIME COMPONENTS --
-- --
-- A D A . S T R I N G S . W I D E _ W I D E _ U N B O U N D E D . A U X --
-- --
diff --git a/gcc/ada/a-szunau.ads b/gcc/ada/a-szunau.ads
index 6333a1e7459..01e7055403b 100644
--- a/gcc/ada/a-szunau.ads
+++ b/gcc/ada/a-szunau.ads
@@ -1,6 +1,6 @@
------------------------------------------------------------------------------
-- --
--- GNAT RUNTIME COMPONENTS --
+-- GNAT RUN-TIME COMPONENTS --
-- --
-- A D A . S T R I N G S . W I D E _ W I D E _ U N B O U N D E D . A U X --
-- --