diff options
author | Javier Miranda <miranda@adacore.com> | 2007-04-06 11:13:42 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-04-06 11:13:42 +0200 |
commit | d90e94c7f76e9dcff8f225e3b86ce61e4124a422 (patch) | |
tree | 166fbaa89fa43adbb98799a1535fe88c72c45bf1 /gcc/ada | |
parent | 96a94ff460518b9ac4d4d2e81299bedcdd310d49 (diff) | |
download | gcc-d90e94c7f76e9dcff8f225e3b86ce61e4124a422.zip gcc-d90e94c7f76e9dcff8f225e3b86ce61e4124a422.tar.gz gcc-d90e94c7f76e9dcff8f225e3b86ce61e4124a422.tar.bz2 |
a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads, a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads, a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads, a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads, a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads, a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads, a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads, a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads, a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads, a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads, i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads, unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads, a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads, a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads, expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads, s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-traceb-hpux.adb, s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb, s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb, s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, a-ztexio.adb, a-ztexio.ads...
2007-04-06 Javier Miranda <miranda@adacore.com>
Matt Heaney <heaney@adacore.com>
Robert Dewar <dewar@adacore.com>
a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads,
a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads,
a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb,
a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads,
a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads,
a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads,
a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads,
a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads,
a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads,
a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads,
a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads,
a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads,
a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads,
a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads,
a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads,
a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads,
a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads,
i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads,
unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads,
a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads,
a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads,
a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads,
expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads,
s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb,
s-taprop-tru64.adb, s-taprop-irix.adb,
s-taprop-hpux-dce.adb, s-traceb-hpux.adb,
s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb,
s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb,
s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb,
s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads,
a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb,
a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads,
g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads,
s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb,
s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads,
s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb,
s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads,
s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb,
s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb,
a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads,
a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads,
a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb,
a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads,
a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads,
a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous
access types.
Update documentation.
Minor rewording.
From-SVN: r123538
Diffstat (limited to 'gcc/ada')
198 files changed, 994 insertions, 725 deletions
diff --git a/gcc/ada/a-astaco.ads b/gcc/ada/a-astaco.ads index dad55e0..3200c7e 100644 --- a/gcc/ada/a-astaco.ads +++ b/gcc/ada/a-astaco.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-cgarso.ads b/gcc/ada/a-cgarso.ads index 4005636..77281b5 100644 --- a/gcc/ada/a-cgarso.ads +++ b/gcc/ada/a-cgarso.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-charac.ads b/gcc/ada/a-charac.ads index 8788958..30af8b8 100644 --- a/gcc/ada/a-charac.ads +++ b/gcc/ada/a-charac.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-chlat1.ads b/gcc/ada/a-chlat1.ads index 2d8a8bc..634d295 100644 --- a/gcc/ada/a-chlat1.ads +++ b/gcc/ada/a-chlat1.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-chtgke.adb b/gcc/ada/a-chtgke.adb index ba6ae23..4aa9ed3 100644 --- a/gcc/ada/a-chtgke.adb +++ b/gcc/ada/a-chtgke.adb @@ -37,9 +37,9 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is -------------------------- procedure Delete_Key_Sans_Free - (HT : in out Hash_Table_Type; - Key : Key_Type; - X : out Node_Access) + (HT : in out Hash_Table_Type; + Key : Key_Type; + X : out Node_Access) is Indx : Hash_Type; Prev : Node_Access; @@ -59,7 +59,8 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is if Equivalent_Keys (Key, X) then if HT.Busy > 0 then - raise Program_Error; + raise Program_Error with + "attempt to tamper with elements (container is busy)"; end if; HT.Buckets (Indx) := Next (X); HT.Length := HT.Length - 1; @@ -76,7 +77,8 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is if Equivalent_Keys (Key, X) then if HT.Busy > 0 then - raise Program_Error; + raise Program_Error with + "attempt to tamper with elements (container is busy)"; end if; Set_Next (Node => Prev, Next => Next (X)); HT.Length := HT.Length - 1; @@ -130,7 +132,8 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is begin if B = null then if HT.Busy > 0 then - raise Program_Error; + raise Program_Error with + "attempt to tamper with elements (container is busy)"; end if; if HT.Length = Count_Type'Last then @@ -159,7 +162,8 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is end loop; if HT.Busy > 0 then - raise Program_Error; + raise Program_Error with + "attempt to tamper with elements (container is busy)"; end if; if HT.Length = Count_Type'Last then @@ -184,91 +188,129 @@ package body Ada.Containers.Hash_Tables.Generic_Keys is return Hash (Key) mod HT.Buckets'Length; end Index; - --------------------- - -- Replace_Element -- - --------------------- + ----------------------------- + -- Generic_Replace_Element -- + ----------------------------- procedure Generic_Replace_Element (HT : in out Hash_Table_Type; Node : Node_Access; Key : Key_Type) is - begin pragma Assert (HT.Length > 0); + pragma Assert (Node /= null); + + Old_Hash : constant Hash_Type := Hash (Node); + Old_Indx : constant Hash_Type := Old_Hash mod HT.Buckets'Length; + + New_Hash : constant Hash_Type := Hash (Key); + New_Indx : constant Hash_Type := New_Hash mod HT.Buckets'Length; + New_Bucket : Node_Access renames HT.Buckets (New_Indx); + N, M : Node_Access; + + begin if Equivalent_Keys (Key, Node) then - pragma Assert (Hash (Key) = Hash (Node)); + pragma Assert (New_Hash = Old_Hash); if HT.Lock > 0 then raise Program_Error with "attempt to tamper with cursors (container is locked)"; end if; + -- We can change a node's key to Key (that's what Assign is for), but + -- only if Key is not already in the hash table. (In a unique-key + -- hash table as this one a key is mapped to exactly one node only.) + -- The exception is when Key is mapped to Node, in which case the + -- change is allowed. + Assign (Node, Key); + pragma Assert (Hash (Node) = New_Hash); + pragma Assert (Equivalent_Keys (Key, Node)); return; end if; - declare - J : Hash_Type; - K : constant Hash_Type := Index (HT, Key); - B : Node_Access renames HT.Buckets (K); - N : Node_Access := B; - M : Node_Access; + -- Key is not equivalent to Node, so we now have to determine if it's + -- equivalent to some other node in the hash table. This is the case + -- irrespective of whether Key is in the same or a different bucket from + -- Node. - begin - while N /= null loop - if Equivalent_Keys (Key, N) then - raise Program_Error with - "attempt to replace existing element"; - end if; - - N := Next (N); - end loop; + N := New_Bucket; + while N /= null loop + if Equivalent_Keys (Key, N) then + pragma Assert (N /= Node); + raise Program_Error with + "attempt to replace existing element"; + end if; - J := Hash (Node); + N := Next (N); + end loop; - if J = K then - if HT.Lock > 0 then - raise Program_Error with - "attempt to tamper with cursors (container is locked)"; - end if; + -- We have determined that Key is not already in the hash table, so + -- the change is tenatively allowed. We now perform the standard + -- checks to determine whether the hash table is locked (because you + -- cannot change an element while it's in use by Query_Element or + -- Update_Element), or if the container is busy (because moving a + -- node to a different bucket would interfere with iteration). - Assign (Node, Key); - return; - end if; + if Old_Indx = New_Indx then + -- The node is already in the bucket implied by Key. In this case + -- we merely change its value without moving it. - if HT.Busy > 0 then + if HT.Lock > 0 then raise Program_Error with - "attempt to tamper with elements (container is busy)"; + "attempt to tamper with cursors (container is locked)"; end if; Assign (Node, Key); + pragma Assert (Hash (Node) = New_Hash); + pragma Assert (Equivalent_Keys (Key, Node)); + return; + end if; - N := HT.Buckets (J); - pragma Assert (N /= null); + -- The node is a bucket different from the bucket implied by Key. - if N = Node then - HT.Buckets (J) := Next (Node); + if HT.Busy > 0 then + raise Program_Error with + "attempt to tamper with elements (container is busy)"; + end if; - else - pragma Assert (HT.Length > 1); + -- Do the assignment first, before moving the node, so that if Assign + -- propagates an exception, then the hash table will not have been + -- modified (except for any possible side-effect Assign had on Node). - loop - M := Next (N); - pragma Assert (M /= null); + Assign (Node, Key); + pragma Assert (Hash (Node) = New_Hash); + pragma Assert (Equivalent_Keys (Key, Node)); - if M = Node then - Set_Next (Node => N, Next => Next (Node)); - exit; - end if; + -- Now we can safely remove the node from its current bucket - N := M; - end loop; - end if; + N := HT.Buckets (Old_Indx); + pragma Assert (N /= null); - Set_Next (Node => Node, Next => B); - B := Node; - end; + if N = Node then + HT.Buckets (Old_Indx) := Next (Node); + + else + pragma Assert (HT.Length > 1); + + loop + M := Next (N); + pragma Assert (M /= null); + + if M = Node then + Set_Next (Node => N, Next => Next (Node)); + exit; + end if; + + N := M; + end loop; + end if; + + -- Now we link the node into its new bucket (corresponding to Key) + + Set_Next (Node => Node, Next => New_Bucket); + New_Bucket := Node; end Generic_Replace_Element; end Ada.Containers.Hash_Tables.Generic_Keys; diff --git a/gcc/ada/a-chtgke.ads b/gcc/ada/a-chtgke.ads index 259b012..833976a 100644 --- a/gcc/ada/a-chtgke.ads +++ b/gcc/ada/a-chtgke.ads @@ -9,10 +9,6 @@ -- -- -- Copyright (C) 2004-2006, 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 -- --- apply solely to the contents of the part following the private keyword. -- --- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- -- ware Foundation; either version 2, or (at your option) any later ver- -- @@ -34,6 +30,9 @@ -- This unit was originally developed by Matthew J Heaney. -- ------------------------------------------------------------------------------ +-- Hash_Table_Type is used to implement hashed containers. This package +-- declares hash-table operations that depend on keys. + generic with package HT_Types is new Generic_Hash_Table_Types (<>); @@ -61,13 +60,18 @@ package Ada.Containers.Hash_Tables.Generic_Keys is (HT : Hash_Table_Type; Key : Key_Type) return Hash_Type; pragma Inline (Index); + -- Returns the bucket number (array index value) for the given key procedure Delete_Key_Sans_Free - (HT : in out Hash_Table_Type; - Key : Key_Type; - X : out Node_Access); + (HT : in out Hash_Table_Type; + Key : Key_Type; + X : out Node_Access); + -- Removes the node (if any) with the given key from the hash table, + -- without deallocating it. Program_Error is raised if the hash + -- table is busy. function Find (HT : Hash_Table_Type; Key : Key_Type) return Node_Access; + -- Returns the node (if any) corresponding to the given key generic with function New_Node (Next : Node_Access) return Node_Access; @@ -76,6 +80,11 @@ package Ada.Containers.Hash_Tables.Generic_Keys is Key : Key_Type; Node : out Node_Access; Inserted : out Boolean); + -- Attempts to insert a new node with the given key into the hash table. + -- If a node with that key already exists in the table, then that node + -- is returned and Inserted returns False. Otherwise New_Node is called + -- to allocate a new node, and Inserted returns True. Program_Error is + -- raised if the hash table is busy. generic with function Hash (Node : Node_Access) return Hash_Type; @@ -84,5 +93,15 @@ package Ada.Containers.Hash_Tables.Generic_Keys is (HT : in out Hash_Table_Type; Node : Node_Access; Key : Key_Type); + -- Assigns Key to Node, possibly changing its equivalence class. If Node + -- is in the same equivalence class as Key (that is, it's already in the + -- bucket implied by Key), then if the hash table is locked then + -- Program_Error is raised; otherwise Assign is called to assign Key to + -- Node. If Node is in a different bucket from Key, then Program_Error is + -- raised if the hash table is busy. Otherwise it Assigns Key to Node and + -- moves the Node from its current bucket to the bucket implied by Key. + -- Note that it is never proper to assign to Node a key value already + -- in the map, and so if Key is equivalent to some other node then + -- Program_Error is raised. end Ada.Containers.Hash_Tables.Generic_Keys; diff --git a/gcc/ada/a-chtgop.ads b/gcc/ada/a-chtgop.ads index 7d6e545..0315421 100644 --- a/gcc/ada/a-chtgop.ads +++ b/gcc/ada/a-chtgop.ads @@ -7,13 +7,32 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- --- GNAT. In accordance with the copyright of that document, you can freely -- --- copy and modify this specification, provided that if you redistribute a -- --- modified version, any changes that you have made are clearly indicated. -- +-- Copyright (C) 2004-2006, Free Software Foundation, Inc. -- -- -- +-- GNAT is free software; you can redistribute it and/or modify it under -- +-- terms of the GNU General Public License as published by the Free Soft- -- +-- ware Foundation; either version 2, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- +-- for more details. You should have received a copy of the GNU General -- +-- Public License distributed with GNAT; see file COPYING. If not, write -- +-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- +-- Boston, MA 02110-1301, USA. -- +-- -- +-- As a special exception, if other files instantiate generics from this -- +-- unit, or you link this unit with other files to produce an executable, -- +-- this unit does not by itself cause the resulting executable to be -- +-- covered by the GNU General Public License. This exception does not -- +-- however invalidate any other reasons why the executable file might be -- +-- covered by the GNU Public License. -- +-- -- +-- This unit was originally developed by Matthew J Heaney. -- ------------------------------------------------------------------------------ +-- Hash_Table_Type is used to implement hashed containers. This package +-- declares hash-table operations that do not depend on keys. + with Ada.Streams; generic @@ -39,20 +58,31 @@ package Ada.Containers.Hash_Tables.Generic_Operations is pragma Preelaborate; procedure Free_Hash_Table (Buckets : in out Buckets_Access); + -- First frees the nodes in all non-null buckets of Buckets, and then frees + -- the Buckets array itself. function Index (Buckets : Buckets_Type; Node : Node_Access) return Hash_Type; pragma Inline (Index); + -- Uses the hash value of Node to compute its Buckets array index function Index (Hash_Table : Hash_Table_Type; Node : Node_Access) return Hash_Type; pragma Inline (Index); + -- Uses the hash value of Node to compute its Hash_Table buckets array + -- index. procedure Adjust (HT : in out Hash_Table_Type); + -- Used to implement controlled Adjust. It is assumed that HT has the value + -- of the bit-wise copy that immediately follows controlled Finalize. + -- Adjust first allocates a new buckets array for HT (having the same + -- length as the source), and then allocates a copy of each node of source. procedure Finalize (HT : in out Hash_Table_Type); + -- Used to implement controlled Finalize. It first calls Clear to + -- deallocate any remaining nodes, and then deallocates the buckets array. generic with function Find @@ -60,46 +90,77 @@ package Ada.Containers.Hash_Tables.Generic_Operations is Key : Node_Access) return Boolean; function Generic_Equal (L, R : Hash_Table_Type) return Boolean; + -- Used to implement hashed container equality. For each node in hash table + -- L, it calls Find to search for an equivalent item in hash table R. If + -- Find returns False for any node then Generic_Equal terminates + -- immediately and returns False. Otherwise if Find returns True for every + -- node then Generic_Equal returns True. procedure Clear (HT : in out Hash_Table_Type); + -- Deallocates each node in hash table HT. (Note that it only deallocates + -- the nodes, not the buckets array.) Program_Error is raised if the hash + -- table is busy. procedure Move (Target, Source : in out Hash_Table_Type); + -- Moves (not copies) the buckets array and nodes from Source to + -- Target. Program_Error is raised if Source is busy. The Target is first + -- cleared to deallocate its nodes (implying that Program_Error is also + -- raised if Target is busy). Source is empty following the move. function Capacity (HT : Hash_Table_Type) return Count_Type; + -- Returns the length of the buckets array procedure Reserve_Capacity (HT : in out Hash_Table_Type; N : Count_Type); + -- If N is greater than the current capacity, then it expands the buckets + -- array to at least the value N. If N is less than the current capacity, + -- then it contracts the buckets array. In either case existing nodes are + -- rehashed onto the new buckets array, and the old buckets array is + -- deallocated. Program_Error is raised if the hash table is busy. procedure Delete_Node_Sans_Free (HT : in out Hash_Table_Type; X : Node_Access); + -- Removes node X from the hash table without deallocating the node function First (HT : Hash_Table_Type) return Node_Access; + -- Returns the head of the list in the first (lowest-index) non-empty + -- bucket. function Next (HT : Hash_Table_Type; Node : Node_Access) return Node_Access; + -- Returns the node that immediately follows Node. This corresponds to + -- either the next node in the same bucket, or (if Node is the last node in + -- its bucket) the head of the list in the first non-empty bucket that + -- follows. generic with procedure Process (Node : Node_Access); procedure Generic_Iteration (HT : Hash_Table_Type); + -- Calls Process for each node in hash table HT generic use Ada.Streams; with procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); procedure Generic_Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; HT : Hash_Table_Type); + -- Used to implement the streaming attribute for hashed containers. It + -- calls Write for each node to write its value into Stream. generic use Ada.Streams; - with function New_Node (Stream : access Root_Stream_Type'Class) + with function New_Node (Stream : not null access Root_Stream_Type'Class) return Node_Access; procedure Generic_Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; HT : out Hash_Table_Type); + -- Used to implement the streaming attribute for hashed containers. It + -- first clears hash table HT, then populates the hash table by calling + -- New_Node for each item in Stream. end Ada.Containers.Hash_Tables.Generic_Operations; diff --git a/gcc/ada/a-cihama.adb b/gcc/ada/a-cihama.adb index 24ca33b..8b9c545 100644 --- a/gcc/ada/a-cihama.adb +++ b/gcc/ada/a-cihama.adb @@ -72,7 +72,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is pragma Inline (Next); function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; procedure Set_Next (Node : Node_Access; Next : Node_Access); pragma Inline (Set_Next); @@ -80,7 +80,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is function Vet (Position : Cursor) return Boolean; procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); -------------------------- @@ -772,7 +772,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is procedure Read_Nodes is new HT_Ops.Generic_Read (Read_Node); procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Map) is begin @@ -780,7 +780,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -792,7 +792,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; @@ -1050,7 +1050,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is procedure Write_Nodes is new HT_Ops.Generic_Write (Write_Node); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Map) is begin @@ -1058,7 +1058,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin @@ -1070,7 +1070,7 @@ package body Ada.Containers.Indefinite_Hashed_Maps is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin diff --git a/gcc/ada/a-cihama.ads b/gcc/ada/a-cihama.ads index b1b4630..6d0e883 100644 --- a/gcc/ada/a-cihama.ads +++ b/gcc/ada/a-cihama.ads @@ -198,13 +198,13 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; @@ -214,13 +214,13 @@ private Node => null); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Map); for Map'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Map); for Map'Read use Read; diff --git a/gcc/ada/a-cihase.adb b/gcc/ada/a-cihase.adb index 1731ea7..12acb45 100644 --- a/gcc/ada/a-cihase.adb +++ b/gcc/ada/a-cihase.adb @@ -84,7 +84,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is function Next (Node : Node_Access) return Node_Access; pragma Inline (Next); - function Read_Node (Stream : access Root_Stream_Type'Class) + function Read_Node (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); @@ -94,7 +94,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is function Vet (Position : Cursor) return Boolean; procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1094,7 +1094,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set) is begin @@ -1102,7 +1102,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -1114,7 +1114,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is X : Element_Access := new Element_Type'(Element_Type'Input (Stream)); @@ -1730,7 +1730,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set) is begin @@ -1738,7 +1738,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin @@ -1750,7 +1750,7 @@ package body Ada.Containers.Indefinite_Hashed_Sets is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin diff --git a/gcc/ada/a-cihase.ads b/gcc/ada/a-cihase.ads index 0d36adf..6dab3bf 100644 --- a/gcc/ada/a-cihase.ads +++ b/gcc/ada/a-cihase.ads @@ -241,13 +241,13 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; @@ -257,13 +257,13 @@ private Node => null); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set); for Set'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set); for Set'Read use Read; diff --git a/gcc/ada/a-ciorma.adb b/gcc/ada/a-ciorma.adb index dc806bc..794fc44 100644 --- a/gcc/ada/a-ciorma.adb +++ b/gcc/ada/a-ciorma.adb @@ -1048,7 +1048,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is Container : out Map) is function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Read is @@ -1059,7 +1059,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; begin @@ -1326,7 +1326,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is Container : Map) is procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1338,7 +1338,7 @@ package body Ada.Containers.Indefinite_Ordered_Maps is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin diff --git a/gcc/ada/a-ciormu.adb b/gcc/ada/a-ciormu.adb index f3af12e..f097fdc 100644 --- a/gcc/ada/a-ciormu.adb +++ b/gcc/ada/a-ciormu.adb @@ -1508,11 +1508,11 @@ package body Ada.Containers.Indefinite_Ordered_Multisets is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set) is function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Read is @@ -1523,7 +1523,7 @@ package body Ada.Containers.Indefinite_Ordered_Multisets is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; begin @@ -1542,7 +1542,7 @@ package body Ada.Containers.Indefinite_Ordered_Multisets is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -1823,11 +1823,11 @@ package body Ada.Containers.Indefinite_Ordered_Multisets is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set) is procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1839,7 +1839,7 @@ package body Ada.Containers.Indefinite_Ordered_Multisets is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin @@ -1853,7 +1853,7 @@ package body Ada.Containers.Indefinite_Ordered_Multisets is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin diff --git a/gcc/ada/a-ciormu.ads b/gcc/ada/a-ciormu.ads index 0bcf19c..518ab35 100644 --- a/gcc/ada/a-ciormu.ads +++ b/gcc/ada/a-ciormu.ads @@ -277,25 +277,27 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; No_Element : constant Cursor := Cursor'(null, null); - procedure Write (Stream : access Root_Stream_Type'Class; Container : Set); + procedure Write + (Stream : not null access Root_Stream_Type'Class; + Container : Set); for Set'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set); for Set'Read use Read; diff --git a/gcc/ada/a-ciorse.adb b/gcc/ada/a-ciorse.adb index adc34ab..51a882a 100644 --- a/gcc/ada/a-ciorse.adb +++ b/gcc/ada/a-ciorse.adb @@ -1382,11 +1382,11 @@ package body Ada.Containers.Indefinite_Ordered_Sets is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set) is function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Read is @@ -1397,7 +1397,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; @@ -1418,7 +1418,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -1717,11 +1717,11 @@ package body Ada.Containers.Indefinite_Ordered_Sets is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set) is procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1733,7 +1733,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin @@ -1747,7 +1747,7 @@ package body Ada.Containers.Indefinite_Ordered_Sets is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin diff --git a/gcc/ada/a-ciorse.ads b/gcc/ada/a-ciorse.ads index 3fc5f45..895a3179 100644 --- a/gcc/ada/a-ciorse.ads +++ b/gcc/ada/a-ciorse.ads @@ -281,13 +281,13 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; @@ -295,13 +295,13 @@ private No_Element : constant Cursor := Cursor'(null, null); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set); for Set'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set); for Set'Read use Read; diff --git a/gcc/ada/a-cohama.adb b/gcc/ada/a-cohama.adb index 01058cd..b00e977 100644 --- a/gcc/ada/a-cohama.adb +++ b/gcc/ada/a-cohama.adb @@ -65,7 +65,7 @@ package body Ada.Containers.Hashed_Maps is pragma Inline (Next); function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Set_Next (Node : Node_Access; Next : Node_Access); @@ -74,7 +74,7 @@ package body Ada.Containers.Hashed_Maps is function Vet (Position : Cursor) return Boolean; procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -703,7 +703,7 @@ package body Ada.Containers.Hashed_Maps is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Map) is begin @@ -711,7 +711,7 @@ package body Ada.Containers.Hashed_Maps is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -723,7 +723,7 @@ package body Ada.Containers.Hashed_Maps is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; @@ -924,7 +924,7 @@ package body Ada.Containers.Hashed_Maps is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Map) is begin @@ -932,7 +932,7 @@ package body Ada.Containers.Hashed_Maps is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin @@ -944,7 +944,7 @@ package body Ada.Containers.Hashed_Maps is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin diff --git a/gcc/ada/a-cohama.ads b/gcc/ada/a-cohama.ads index f090c82..a0bbad4 100644 --- a/gcc/ada/a-cohama.ads +++ b/gcc/ada/a-cohama.ads @@ -192,13 +192,13 @@ private use Ada.Streams; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Map); for Map'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Map); for Map'Read use Read; @@ -215,13 +215,13 @@ private end record; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; diff --git a/gcc/ada/a-cohase.adb b/gcc/ada/a-cohase.adb index 0f0552a..2328e3f 100644 --- a/gcc/ada/a-cohase.adb +++ b/gcc/ada/a-cohase.adb @@ -85,7 +85,7 @@ package body Ada.Containers.Hashed_Sets is function Next (Node : Node_Access) return Node_Access; pragma Inline (Next); - function Read_Node (Stream : access Root_Stream_Type'Class) + function Read_Node (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); @@ -95,7 +95,7 @@ package body Ada.Containers.Hashed_Sets is function Vet (Position : Cursor) return Boolean; procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1009,15 +1009,15 @@ package body Ada.Containers.Hashed_Sets is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; - Container : out Set) + (Stream : not null access Root_Stream_Type'Class; + Container : out Set) is begin Read_Nodes (Stream, Container.HT); end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -1028,7 +1028,7 @@ package body Ada.Containers.Hashed_Sets is -- Read_Node -- --------------- - function Read_Node (Stream : access Root_Stream_Type'Class) + function Read_Node (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; @@ -1561,7 +1561,7 @@ package body Ada.Containers.Hashed_Sets is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set) is begin @@ -1569,7 +1569,7 @@ package body Ada.Containers.Hashed_Sets is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin @@ -1581,7 +1581,7 @@ package body Ada.Containers.Hashed_Sets is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin diff --git a/gcc/ada/a-cohase.ads b/gcc/ada/a-cohase.ads index b0eb14cc..5c32f51 100644 --- a/gcc/ada/a-cohase.ads +++ b/gcc/ada/a-cohase.ads @@ -238,13 +238,13 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; @@ -252,13 +252,13 @@ private No_Element : constant Cursor := (Container => null, Node => null); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set); for Set'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set); for Set'Read use Read; diff --git a/gcc/ada/a-contai.ads b/gcc/ada/a-contai.ads index 41d99b1..a453d6b 100644 --- a/gcc/ada/a-contai.ads +++ b/gcc/ada/a-contai.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-coorma.adb b/gcc/ada/a-coorma.adb index 81e0d4e..f6823d4 100644 --- a/gcc/ada/a-coorma.adb +++ b/gcc/ada/a-coorma.adb @@ -962,7 +962,7 @@ package body Ada.Containers.Ordered_Maps is Container : out Map) is function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Read is @@ -973,7 +973,7 @@ package body Ada.Containers.Ordered_Maps is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; begin @@ -1206,7 +1206,7 @@ package body Ada.Containers.Ordered_Maps is Container : Map) is procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1218,7 +1218,7 @@ package body Ada.Containers.Ordered_Maps is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin diff --git a/gcc/ada/a-coormu.adb b/gcc/ada/a-coormu.adb index 912bde3..8000c99 100644 --- a/gcc/ada/a-coormu.adb +++ b/gcc/ada/a-coormu.adb @@ -1425,11 +1425,11 @@ package body Ada.Containers.Ordered_Multisets is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set) is function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Read is @@ -1440,7 +1440,7 @@ package body Ada.Containers.Ordered_Multisets is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; begin @@ -1459,7 +1459,7 @@ package body Ada.Containers.Ordered_Multisets is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -1729,11 +1729,11 @@ package body Ada.Containers.Ordered_Multisets is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set) is procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1745,7 +1745,7 @@ package body Ada.Containers.Ordered_Multisets is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin @@ -1759,7 +1759,7 @@ package body Ada.Containers.Ordered_Multisets is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin diff --git a/gcc/ada/a-coormu.ads b/gcc/ada/a-coormu.ads index ff32f8c..df30013 100644 --- a/gcc/ada/a-coormu.ads +++ b/gcc/ada/a-coormu.ads @@ -282,13 +282,13 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; @@ -296,13 +296,13 @@ private No_Element : constant Cursor := Cursor'(null, null); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set); for Set'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set); for Set'Read use Read; diff --git a/gcc/ada/a-coorse.adb b/gcc/ada/a-coorse.adb index d407fea..3cd0233 100644 --- a/gcc/ada/a-coorse.adb +++ b/gcc/ada/a-coorse.adb @@ -1297,11 +1297,11 @@ package body Ada.Containers.Ordered_Sets is ---------- procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set) is function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; pragma Inline (Read_Node); procedure Read is @@ -1312,7 +1312,7 @@ package body Ada.Containers.Ordered_Sets is --------------- function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access + (Stream : not null access Root_Stream_Type'Class) return Node_Access is Node : Node_Access := new Node_Type; @@ -1333,7 +1333,7 @@ package body Ada.Containers.Ordered_Sets is end Read; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor) is begin @@ -1618,11 +1618,11 @@ package body Ada.Containers.Ordered_Sets is ----------- procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set) is procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); pragma Inline (Write_Node); @@ -1634,7 +1634,7 @@ package body Ada.Containers.Ordered_Sets is ---------------- procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access) is begin @@ -1648,7 +1648,7 @@ package body Ada.Containers.Ordered_Sets is end Write; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor) is begin diff --git a/gcc/ada/a-coorse.ads b/gcc/ada/a-coorse.ads index 2cc8acc..4720865 100644 --- a/gcc/ada/a-coorse.ads +++ b/gcc/ada/a-coorse.ads @@ -270,13 +270,13 @@ private end record; procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : Cursor); for Cursor'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Item : out Cursor); for Cursor'Read use Read; @@ -284,13 +284,13 @@ private No_Element : constant Cursor := Cursor'(null, null); procedure Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : Set); for Set'Write use Write; procedure Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Container : out Set); for Set'Read use Read; diff --git a/gcc/ada/a-coprnu.ads b/gcc/ada/a-coprnu.ads index 20e49d8..0f832d1 100644 --- a/gcc/ada/a-coprnu.ads +++ b/gcc/ada/a-coprnu.ads @@ -6,13 +6,34 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- --- GNAT. In accordance with the copyright of that document, you can freely -- --- copy and modify this specification, provided that if you redistribute a -- --- modified version, any changes that you have made are clearly indicated. -- +-- Copyright (C) 2004-2006, Free Software Foundation, Inc. -- -- -- +-- GNAT is free software; you can redistribute it and/or modify it under -- +-- terms of the GNU General Public License as published by the Free Soft- -- +-- ware Foundation; either version 2, or (at your option) any later ver- -- +-- sion. GNAT is distributed in the hope that it will be useful, but WITH- -- +-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY -- +-- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -- +-- for more details. You should have received a copy of the GNU General -- +-- Public License distributed with GNAT; see file COPYING. If not, write -- +-- to the Free Software Foundation, 51 Franklin Street, Fifth Floor, -- +-- Boston, MA 02110-1301, USA. -- +-- -- +-- As a special exception, if other files instantiate generics from this -- +-- unit, or you link this unit with other files to produce an executable, -- +-- this unit does not by itself cause the resulting executable to be -- +-- covered by the GNU General Public License. This exception does not -- +-- however invalidate any other reasons why the executable file might be -- +-- covered by the GNU Public License. -- +-- -- +-- This unit was originally developed by Matthew J Heaney. -- ------------------------------------------------------------------------------ +-- This package declares the prime numbers array used to implement hashed +-- containers. Bucket arrays are always allocated with a prime-number +-- length (computed using To_Prime below), as this produces better scatter +-- when hash values are folded. + package Ada.Containers.Prime_Numbers is pragma Pure; @@ -27,5 +48,6 @@ package Ada.Containers.Prime_Numbers is 1610612741, 3221225473, 4294967291); function To_Prime (Length : Count_Type) return Hash_Type; + -- Returns the smallest value in Primes not less than Length end Ada.Containers.Prime_Numbers; diff --git a/gcc/ada/a-coteio.ads b/gcc/ada/a-coteio.ads index 72fc34c..abba889 100755 --- a/gcc/ada/a-coteio.ads +++ b/gcc/ada/a-coteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-crbtgo.adb b/gcc/ada/a-crbtgo.adb index a9f6394..4afce91 100644 --- a/gcc/ada/a-crbtgo.adb +++ b/gcc/ada/a-crbtgo.adb @@ -698,7 +698,7 @@ package body Ada.Containers.Red_Black_Trees.Generic_Operations is ------------------ procedure Generic_Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Tree : in out Tree_Type) is N : Count_Type'Base; @@ -776,7 +776,7 @@ package body Ada.Containers.Red_Black_Trees.Generic_Operations is ------------------- procedure Generic_Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Tree : Tree_Type) is procedure Process (Node : Node_Access); diff --git a/gcc/ada/a-crbtgo.ads b/gcc/ada/a-crbtgo.ads index 0415f5b..a55e65f 100644 --- a/gcc/ada/a-crbtgo.ads +++ b/gcc/ada/a-crbtgo.ads @@ -137,10 +137,10 @@ package Ada.Containers.Red_Black_Trees.Generic_Operations is generic with procedure Write_Node - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Node : Node_Access); procedure Generic_Write - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Tree : Tree_Type); -- Used to implement stream attribute T'Write. Generic_Write -- first writes the number of nodes into Stream, then calls @@ -149,9 +149,9 @@ package Ada.Containers.Red_Black_Trees.Generic_Operations is generic with procedure Clear (Tree : in out Tree_Type); with function Read_Node - (Stream : access Root_Stream_Type'Class) return Node_Access; + (Stream : not null access Root_Stream_Type'Class) return Node_Access; procedure Generic_Read - (Stream : access Root_Stream_Type'Class; + (Stream : not null access Root_Stream_Type'Class; Tree : in out Tree_Type); -- Used to implement stream attribute T'Read. Generic_Read -- first clears Tree. It then reads the number of nodes out of diff --git a/gcc/ada/a-dispat.ads b/gcc/ada/a-dispat.ads index 5403653..b350ae0 100644 --- a/gcc/ada/a-dispat.ads +++ b/gcc/ada/a-dispat.ads @@ -6,9 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2006, Free Software Foundation, Inc. -- --- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-dynpri.ads b/gcc/ada/a-dynpri.ads index e179f46..03e02d6 100644 --- a/gcc/ada/a-dynpri.ads +++ b/gcc/ada/a-dynpri.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-envvar.ads b/gcc/ada/a-envvar.ads index 2b0229c..a241560 100755 --- a/gcc/ada/a-envvar.ads +++ b/gcc/ada/a-envvar.ads @@ -6,13 +6,11 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2005-2006, Free Software Foundation, Inc. -- --- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- ---- -- +-- -- ------------------------------------------------------------------------------ package Ada.Environment_Variables is diff --git a/gcc/ada/a-exexpr-gcc.adb b/gcc/ada/a-exexpr-gcc.adb index fdec8d0..4b6f904 100644 --- a/gcc/ada/a-exexpr-gcc.adb +++ b/gcc/ada/a-exexpr-gcc.adb @@ -179,7 +179,7 @@ package body Exception_Propagation is (UW_Version : Integer; UW_Phases : Unwind_Action; UW_Eclass : Exception_Class; - UW_Exception : access GNAT_GCC_Exception; + UW_Exception : not null access GNAT_GCC_Exception; UW_Context : System.Address; UW_Argument : System.Address) return Unwind_Reason_Code; -- Hook called at each step of the forced unwinding we perform to @@ -191,11 +191,11 @@ package body Exception_Propagation is -- __gnat stubs for these. procedure Unwind_RaiseException - (UW_Exception : access GNAT_GCC_Exception); + (UW_Exception : not null access GNAT_GCC_Exception); pragma Import (C, Unwind_RaiseException, "__gnat_Unwind_RaiseException"); procedure Unwind_ForcedUnwind - (UW_Exception : access GNAT_GCC_Exception; + (UW_Exception : not null access GNAT_GCC_Exception; UW_Handler : System.Address; UW_Argument : System.Address); pragma Import (C, Unwind_ForcedUnwind, "__gnat_Unwind_ForcedUnwind"); @@ -353,7 +353,7 @@ package body Exception_Propagation is (UW_Version : Integer; UW_Phases : Unwind_Action; UW_Eclass : Exception_Class; - UW_Exception : access GNAT_GCC_Exception; + UW_Exception : not null access GNAT_GCC_Exception; UW_Context : System.Address; UW_Argument : System.Address) return Unwind_Reason_Code is diff --git a/gcc/ada/a-flteio.ads b/gcc/ada/a-flteio.ads index 4c3bdc1..caf4e9b 100644 --- a/gcc/ada/a-flteio.ads +++ b/gcc/ada/a-flteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-fwteio.ads b/gcc/ada/a-fwteio.ads index 118d006..e87e08a 100644 --- a/gcc/ada/a-fwteio.ads +++ b/gcc/ada/a-fwteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-inteio.ads b/gcc/ada/a-inteio.ads index f8340dc..b2b3867 100644 --- a/gcc/ada/a-inteio.ads +++ b/gcc/ada/a-inteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-intnam.ads b/gcc/ada/a-intnam.ads index 2969d55..e055d6a 100644 --- a/gcc/ada/a-intnam.ads +++ b/gcc/ada/a-intnam.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ioexce.ads b/gcc/ada/a-ioexce.ads index d4c6ee5..43239dd 100644 --- a/gcc/ada/a-ioexce.ads +++ b/gcc/ada/a-ioexce.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-iwteio.ads b/gcc/ada/a-iwteio.ads index 34d7b62..dc53046 100644 --- a/gcc/ada/a-iwteio.ads +++ b/gcc/ada/a-iwteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-lcteio.ads b/gcc/ada/a-lcteio.ads index 8db0c0e..f9da97c 100755 --- a/gcc/ada/a-lcteio.ads +++ b/gcc/ada/a-lcteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-lfteio.ads b/gcc/ada/a-lfteio.ads index 1b577cf..1477047 100644 --- a/gcc/ada/a-lfteio.ads +++ b/gcc/ada/a-lfteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-lfwtio.ads b/gcc/ada/a-lfwtio.ads index 3190443..8636141 100644 --- a/gcc/ada/a-lfwtio.ads +++ b/gcc/ada/a-lfwtio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-lfztio.ads b/gcc/ada/a-lfztio.ads index bbdcbae..f1719b1 100644 --- a/gcc/ada/a-lfztio.ads +++ b/gcc/ada/a-lfztio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-liteio.ads b/gcc/ada/a-liteio.ads index da7b442..535f6b0 100644 --- a/gcc/ada/a-liteio.ads +++ b/gcc/ada/a-liteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-liwtio.ads b/gcc/ada/a-liwtio.ads index 4779593..56fad9a 100644 --- a/gcc/ada/a-liwtio.ads +++ b/gcc/ada/a-liwtio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-liztio.ads b/gcc/ada/a-liztio.ads index 9ce4383..100ef0a 100644 --- a/gcc/ada/a-liztio.ads +++ b/gcc/ada/a-liztio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-llctio.ads b/gcc/ada/a-llctio.ads index 70947a1..3b53bf7 100755 --- a/gcc/ada/a-llctio.ads +++ b/gcc/ada/a-llctio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-llftio.ads b/gcc/ada/a-llftio.ads index 669c1b5..589232d 100644 --- a/gcc/ada/a-llftio.ads +++ b/gcc/ada/a-llftio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-llfwti.ads b/gcc/ada/a-llfwti.ads index 76b47a3..b26aecd 100644 --- a/gcc/ada/a-llfwti.ads +++ b/gcc/ada/a-llfwti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-llfzti.ads b/gcc/ada/a-llfzti.ads index 1c03246..fa92ef4 100644 --- a/gcc/ada/a-llfzti.ads +++ b/gcc/ada/a-llfzti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-llitio.ads b/gcc/ada/a-llitio.ads index 8788c68..e153727 100644 --- a/gcc/ada/a-llitio.ads +++ b/gcc/ada/a-llitio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-lliwti.ads b/gcc/ada/a-lliwti.ads index d4064c8..13a0f21 100644 --- a/gcc/ada/a-lliwti.ads +++ b/gcc/ada/a-lliwti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-llizti.ads b/gcc/ada/a-llizti.ads index 9ab6d41..09d3219 100644 --- a/gcc/ada/a-llizti.ads +++ b/gcc/ada/a-llizti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ncelfu.ads b/gcc/ada/a-ncelfu.ads index 0f8e585..e81730f 100644 --- a/gcc/ada/a-ncelfu.ads +++ b/gcc/ada/a-ncelfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ngcefu.ads b/gcc/ada/a-ngcefu.ads index a60f668..576c84a 100644 --- a/gcc/ada/a-ngcefu.ads +++ b/gcc/ada/a-ngcefu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ngelfu.ads b/gcc/ada/a-ngelfu.ads index c115411..d84828a 100644 --- a/gcc/ada/a-ngelfu.ads +++ b/gcc/ada/a-ngelfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nlcefu.ads b/gcc/ada/a-nlcefu.ads index df3e491..9e985df 100644 --- a/gcc/ada/a-nlcefu.ads +++ b/gcc/ada/a-nlcefu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nlcoty.ads b/gcc/ada/a-nlcoty.ads index 7e021ae..6eb4fc3 100644 --- a/gcc/ada/a-nlcoty.ads +++ b/gcc/ada/a-nlcoty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nlelfu.ads b/gcc/ada/a-nlelfu.ads index db0bd25..10b33e9 100644 --- a/gcc/ada/a-nlelfu.ads +++ b/gcc/ada/a-nlelfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nllcef.ads b/gcc/ada/a-nllcef.ads index 54b5b39..2867e1d 100644 --- a/gcc/ada/a-nllcef.ads +++ b/gcc/ada/a-nllcef.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nllcty.ads b/gcc/ada/a-nllcty.ads index 371b757..a6081c2 100644 --- a/gcc/ada/a-nllcty.ads +++ b/gcc/ada/a-nllcty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nllefu.ads b/gcc/ada/a-nllefu.ads index 55d55ff..7089fc3 100644 --- a/gcc/ada/a-nllefu.ads +++ b/gcc/ada/a-nllefu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nscefu.ads b/gcc/ada/a-nscefu.ads index f7d17c6..ac89d05 100644 --- a/gcc/ada/a-nscefu.ads +++ b/gcc/ada/a-nscefu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nscoty.ads b/gcc/ada/a-nscoty.ads index b4e3f50..e58b0b5 100644 --- a/gcc/ada/a-nscoty.ads +++ b/gcc/ada/a-nscoty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nselfu.ads b/gcc/ada/a-nselfu.ads index 3ad54ae..10b04ac 100644 --- a/gcc/ada/a-nselfu.ads +++ b/gcc/ada/a-nselfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nucoty.ads b/gcc/ada/a-nucoty.ads index 97e224b..3b04a27 100644 --- a/gcc/ada/a-nucoty.ads +++ b/gcc/ada/a-nucoty.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-nuelfu.ads b/gcc/ada/a-nuelfu.ads index 57fdb1c..149939b 100644 --- a/gcc/ada/a-nuelfu.ads +++ b/gcc/ada/a-nuelfu.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-numeri.ads b/gcc/ada/a-numeri.ads index 4d25bce..998e24b 100644 --- a/gcc/ada/a-numeri.ads +++ b/gcc/ada/a-numeri.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-rbtgso.ads b/gcc/ada/a-rbtgso.ads index 4c3d668..c39dc6e 100644 --- a/gcc/ada/a-rbtgso.ads +++ b/gcc/ada/a-rbtgso.ads @@ -59,25 +59,51 @@ package Ada.Containers.Red_Black_Trees.Generic_Set_Operations is pragma Pure; procedure Union (Target : in out Tree_Type; Source : Tree_Type); + -- Attempts to insert each element of Source in Target. If Target is + -- busy then Program_Error is raised. We say "attempts" here because + -- if these are unique-element sets, then the insertion should fail + -- (not insert a new item) when the insertion item from Source is + -- equivalent to an item already in Target. If these are multisets + -- then of course the attempt should always succeed. function Union (Left, Right : Tree_Type) return Tree_Type; + -- Makes a copy of Left, and attempts to insert each element of + -- Right into the copy, then returns the copy. procedure Intersection (Target : in out Tree_Type; Source : Tree_Type); + -- Removes elements from Target that are not equivalent to items in + -- Source. If Target is busy then Program_Error is raised. function Intersection (Left, Right : Tree_Type) return Tree_Type; + -- Returns a set comprising all the items in Left equivalent to items in + -- Right. procedure Difference (Target : in out Tree_Type; Source : Tree_Type); + -- Removes elements from Target that are equivalent to items in Source. If + -- Target is busy then Program_Error is raised. function Difference (Left, Right : Tree_Type) return Tree_Type; + -- Returns a set comprising all the items in Left not equivalent to items + -- in Right. procedure Symmetric_Difference (Target : in out Tree_Type; Source : Tree_Type); + -- Removes from Target elements that are equivalent to items in Source, and + -- inserts into Target items from Source not equivalent elements in + -- Target. If Target is busy then Program_Error is raised. function Symmetric_Difference (Left, Right : Tree_Type) return Tree_Type; + -- Returns a set comprising the union of the elements in Left not + -- equivalent to items in Right, and the elements in Right not equivalent + -- to items in Left. function Is_Subset (Subset : Tree_Type; Of_Set : Tree_Type) return Boolean; + -- Returns False if Subset contains at least one element not equivalent to + -- any item in Of_Set; returns True otherwise. function Overlap (Left, Right : Tree_Type) return Boolean; + -- Returns True if at least one element of Left is equivalent to an item in + -- Right; returns False otherwise. end Ada.Containers.Red_Black_Trees.Generic_Set_Operations; diff --git a/gcc/ada/a-scteio.ads b/gcc/ada/a-scteio.ads index f8623d8..d9ceb2f 100755 --- a/gcc/ada/a-scteio.ads +++ b/gcc/ada/a-scteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-secain.ads b/gcc/ada/a-secain.ads index 3a4b4d8..38f2ef0 100644 --- a/gcc/ada/a-secain.ads +++ b/gcc/ada/a-secain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-sfteio.ads b/gcc/ada/a-sfteio.ads index 15ab2a7..a1f18cd 100644 --- a/gcc/ada/a-sfteio.ads +++ b/gcc/ada/a-sfteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-sfwtio.ads b/gcc/ada/a-sfwtio.ads index d6136d5..3ac134e 100644 --- a/gcc/ada/a-sfwtio.ads +++ b/gcc/ada/a-sfwtio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-sfztio.ads b/gcc/ada/a-sfztio.ads index 2445845..bc34e5d 100644 --- a/gcc/ada/a-sfztio.ads +++ b/gcc/ada/a-sfztio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-shcain.ads b/gcc/ada/a-shcain.ads index a6e083c..c7263b6 100644 --- a/gcc/ada/a-shcain.ads +++ b/gcc/ada/a-shcain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-siteio.ads b/gcc/ada/a-siteio.ads index 9f3e5e1..de45c22 100644 --- a/gcc/ada/a-siteio.ads +++ b/gcc/ada/a-siteio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-siwtio.ads b/gcc/ada/a-siwtio.ads index 618a016..aa1a2d4 100644 --- a/gcc/ada/a-siwtio.ads +++ b/gcc/ada/a-siwtio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-siztio.ads b/gcc/ada/a-siztio.ads index 4d41077..3d6f5cd 100644 --- a/gcc/ada/a-siztio.ads +++ b/gcc/ada/a-siztio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-slcain.ads b/gcc/ada/a-slcain.ads index c54c6f2..2bb2d1a 100644 --- a/gcc/ada/a-slcain.ads +++ b/gcc/ada/a-slcain.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ssitio.ads b/gcc/ada/a-ssitio.ads index a323230..98b0540 100644 --- a/gcc/ada/a-ssitio.ads +++ b/gcc/ada/a-ssitio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ssiwti.ads b/gcc/ada/a-ssiwti.ads index af5d1ab..5f6934b 100644 --- a/gcc/ada/a-ssiwti.ads +++ b/gcc/ada/a-ssiwti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ssizti.ads b/gcc/ada/a-ssizti.ads index d200170..13bfda8 100644 --- a/gcc/ada/a-ssizti.ads +++ b/gcc/ada/a-ssizti.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-stboha.ads b/gcc/ada/a-stboha.ads index 999850e..876af2a 100644 --- a/gcc/ada/a-stboha.ads +++ b/gcc/ada/a-stboha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-stfiha.ads b/gcc/ada/a-stfiha.ads index 2338003..aba42e7 100644 --- a/gcc/ada/a-stfiha.ads +++ b/gcc/ada/a-stfiha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-storio.ads b/gcc/ada/a-storio.ads index e5268c8..db0a70b 100644 --- a/gcc/ada/a-storio.ads +++ b/gcc/ada/a-storio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-strfix.ads b/gcc/ada/a-strfix.ads index 0408792..875219a 100644 --- a/gcc/ada/a-strfix.ads +++ b/gcc/ada/a-strfix.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-strhas.ads b/gcc/ada/a-strhas.ads index cb11fc05..7d33bf7 100644 --- a/gcc/ada/a-strhas.ads +++ b/gcc/ada/a-strhas.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-string.ads b/gcc/ada/a-string.ads index a599c2b..51ca102 100644 --- a/gcc/ada/a-string.ads +++ b/gcc/ada/a-string.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ststio.adb b/gcc/ada/a-ststio.adb index 7091d5d..d1084d6 100644 --- a/gcc/ada/a-ststio.adb +++ b/gcc/ada/a-ststio.adb @@ -76,7 +76,7 @@ package body Ada.Streams.Stream_IO is -- No special processing required for closing Stream_IO file - procedure AFCB_Close (File : access Stream_AFCB) is + procedure AFCB_Close (File : not null access Stream_AFCB) is pragma Warnings (Off, File); begin null; @@ -86,7 +86,7 @@ package body Ada.Streams.Stream_IO is -- AFCB_Free -- --------------- - procedure AFCB_Free (File : access Stream_AFCB) is + procedure AFCB_Free (File : not null access Stream_AFCB) is type FCB_Ptr is access all Stream_AFCB; FT : FCB_Ptr := FCB_Ptr (File); diff --git a/gcc/ada/a-ststio.ads b/gcc/ada/a-ststio.ads index 2326729..edcec9a 100644 --- a/gcc/ada/a-ststio.ads +++ b/gcc/ada/a-ststio.ads @@ -176,8 +176,8 @@ private function AFCB_Allocate (Control_Block : Stream_AFCB) return FCB.AFCB_Ptr; - procedure AFCB_Close (File : access Stream_AFCB); - procedure AFCB_Free (File : access Stream_AFCB); + procedure AFCB_Close (File : not null access Stream_AFCB); + procedure AFCB_Free (File : not null access Stream_AFCB); procedure Read (File : in out Stream_AFCB; diff --git a/gcc/ada/a-stunha.ads b/gcc/ada/a-stunha.ads index acf0471..1e45bdb 100644 --- a/gcc/ada/a-stunha.ads +++ b/gcc/ada/a-stunha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-stwifi.ads b/gcc/ada/a-stwifi.ads index be2e038..5d9ea3f 100644 --- a/gcc/ada/a-stwifi.ads +++ b/gcc/ada/a-stwifi.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-stwiha.ads b/gcc/ada/a-stwiha.ads index 3b0af1f..f8f0b52 100644 --- a/gcc/ada/a-stwiha.ads +++ b/gcc/ada/a-stwiha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-stzfix.ads b/gcc/ada/a-stzfix.ads index 1670b38..4c3f80b 100644 --- a/gcc/ada/a-stzfix.ads +++ b/gcc/ada/a-stzfix.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-stzhas.ads b/gcc/ada/a-stzhas.ads index 8a8436c..dea0ff1 100644 --- a/gcc/ada/a-stzhas.ads +++ b/gcc/ada/a-stzhas.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-swbwha.ads b/gcc/ada/a-swbwha.ads index 5947952..6a4fba7 100644 --- a/gcc/ada/a-swbwha.ads +++ b/gcc/ada/a-swbwha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-swfwha.ads b/gcc/ada/a-swfwha.ads index ebabe86..c42d54c 100644 --- a/gcc/ada/a-swfwha.ads +++ b/gcc/ada/a-swfwha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-swuwha.ads b/gcc/ada/a-swuwha.ads index 1fcb410..69cf762 100644 --- a/gcc/ada/a-swuwha.ads +++ b/gcc/ada/a-swuwha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-szbzha.ads b/gcc/ada/a-szbzha.ads index b368d793..42c6452 100644 --- a/gcc/ada/a-szbzha.ads +++ b/gcc/ada/a-szbzha.ads @@ -7,7 +7,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-szfzha.ads b/gcc/ada/a-szfzha.ads index 1753fc7..fbc6e87 100644 --- a/gcc/ada/a-szfzha.ads +++ b/gcc/ada/a-szfzha.ads @@ -7,7 +7,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-szuzha.ads b/gcc/ada/a-szuzha.ads index 1e07fbd..94bed28 100644 --- a/gcc/ada/a-szuzha.ads +++ b/gcc/ada/a-szuzha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-textio.adb b/gcc/ada/a-textio.adb index 0e6dd32..aa566da 100644 --- a/gcc/ada/a-textio.adb +++ b/gcc/ada/a-textio.adb @@ -69,7 +69,7 @@ package body Ada.Text_IO is -- AFCB_Close -- ---------------- - procedure AFCB_Close (File : access Text_AFCB) is + procedure AFCB_Close (File : not null access Text_AFCB) is begin -- If the file being closed is one of the current files, then close -- the corresponding current file. It is not clear that this action @@ -91,7 +91,7 @@ package body Ada.Text_IO is -- AFCB_Free -- --------------- - procedure AFCB_Free (File : access Text_AFCB) is + procedure AFCB_Free (File : not null access Text_AFCB) is type FCB_Ptr is access all Text_AFCB; FT : FCB_Ptr := FCB_Ptr (File); diff --git a/gcc/ada/a-textio.ads b/gcc/ada/a-textio.ads index 50ba549..dec8ee7 100644 --- a/gcc/ada/a-textio.ads +++ b/gcc/ada/a-textio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, 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 -- @@ -370,8 +370,8 @@ private function AFCB_Allocate (Control_Block : Text_AFCB) return FCB.AFCB_Ptr; - procedure AFCB_Close (File : access Text_AFCB); - procedure AFCB_Free (File : access Text_AFCB); + procedure AFCB_Close (File : not null access Text_AFCB); + procedure AFCB_Free (File : not null access Text_AFCB); procedure Read (File : in out Text_AFCB; diff --git a/gcc/ada/a-tgdico.ads b/gcc/ada/a-tgdico.ads index 51e3d80..d1150fd 100644 --- a/gcc/ada/a-tgdico.ads +++ b/gcc/ada/a-tgdico.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- @@ -19,10 +19,12 @@ pragma Warnings (Off); generic type T (<>) is abstract tagged limited private; type Parameters (<>) is limited private; - with function Constructor (Params : access Parameters) return T is abstract; + with function Constructor (Params : not null access Parameters) return T + is abstract; function Ada.Tags.Generic_Dispatching_Constructor - (The_Tag : Tag; Params : access Parameters) return T'Class; + (The_Tag : Tag; + Params : not null access Parameters) return T'Class; pragma Preelaborate_05 (Generic_Dispatching_Constructor); pragma Import (Intrinsic, Generic_Dispatching_Constructor); -- Note: the reason that we use Preelaborate_05 here is so that this will diff --git a/gcc/ada/a-tiboio.ads b/gcc/ada/a-tiboio.ads index 4f23c7e..1824c1d 100644 --- a/gcc/ada/a-tiboio.ads +++ b/gcc/ada/a-tiboio.ads @@ -6,9 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2005, Free Software Foundation, Inc. -- --- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-tideau.adb b/gcc/ada/a-tideau.adb index 5be5f66..06a41ee 100644 --- a/gcc/ada/a-tideau.adb +++ b/gcc/ada/a-tideau.adb @@ -103,7 +103,7 @@ package body Ada.Text_IO.Decimal_Aux is function Gets_Dec (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Integer is Pos : aliased Integer; @@ -127,7 +127,7 @@ package body Ada.Text_IO.Decimal_Aux is function Gets_LLD (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Long_Long_Integer is Pos : aliased Integer; diff --git a/gcc/ada/a-tideau.ads b/gcc/ada/a-tideau.ads index 9855e5b..7d513ae 100644 --- a/gcc/ada/a-tideau.ads +++ b/gcc/ada/a-tideau.ads @@ -69,12 +69,12 @@ private package Ada.Text_IO.Decimal_Aux is function Gets_Dec (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Integer; function Gets_LLD (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Long_Long_Integer; procedure Puts_Dec diff --git a/gcc/ada/a-titest.ads b/gcc/ada/a-titest.ads index d2fa2e7..93cf47a 100644 --- a/gcc/ada/a-titest.ads +++ b/gcc/ada/a-titest.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-tiunio.ads b/gcc/ada/a-tiunio.ads index 68f8a17..ea5caec 100644 --- a/gcc/ada/a-tiunio.ads +++ b/gcc/ada/a-tiunio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-unccon.ads b/gcc/ada/a-unccon.ads index 3306c3b..ffa84d9 100644 --- a/gcc/ada/a-unccon.ads +++ b/gcc/ada/a-unccon.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-uncdea.ads b/gcc/ada/a-uncdea.ads index 66b64dd..d566b4b 100644 --- a/gcc/ada/a-uncdea.ads +++ b/gcc/ada/a-uncdea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-widcha.ads b/gcc/ada/a-widcha.ads index 371c1c1..a5dde73 100755 --- a/gcc/ada/a-widcha.ads +++ b/gcc/ada/a-widcha.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-witeio.adb b/gcc/ada/a-witeio.adb index 7f72c1c..07e3fd2 100644 --- a/gcc/ada/a-witeio.adb +++ b/gcc/ada/a-witeio.adb @@ -96,7 +96,7 @@ package body Ada.Wide_Text_IO is -- AFCB_Close -- ---------------- - procedure AFCB_Close (File : access Wide_Text_AFCB) is + procedure AFCB_Close (File : not null access Wide_Text_AFCB) is begin -- If the file being closed is one of the current files, then close -- the corresponding current file. It is not clear that this action @@ -118,7 +118,7 @@ package body Ada.Wide_Text_IO is -- AFCB_Free -- --------------- - procedure AFCB_Free (File : access Wide_Text_AFCB) is + procedure AFCB_Free (File : not null access Wide_Text_AFCB) is type FCB_Ptr is access all Wide_Text_AFCB; FT : FCB_Ptr := FCB_Ptr (File); diff --git a/gcc/ada/a-witeio.ads b/gcc/ada/a-witeio.ads index 9430187..70636a7 100644 --- a/gcc/ada/a-witeio.ads +++ b/gcc/ada/a-witeio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, 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 -- @@ -393,8 +393,8 @@ private function AFCB_Allocate (Control_Block : Wide_Text_AFCB) return FCB.AFCB_Ptr; - procedure AFCB_Close (File : access Wide_Text_AFCB); - procedure AFCB_Free (File : access Wide_Text_AFCB); + procedure AFCB_Close (File : not null access Wide_Text_AFCB); + procedure AFCB_Free (File : not null access Wide_Text_AFCB); procedure Read (File : in out Wide_Text_AFCB; diff --git a/gcc/ada/a-wtcoio.ads b/gcc/ada/a-wtcoio.ads index 84a5f14..31fab2b 100644 --- a/gcc/ada/a-wtcoio.ads +++ b/gcc/ada/a-wtcoio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-wtdeau.adb b/gcc/ada/a-wtdeau.adb index 6b62865..fd6cc2e 100644 --- a/gcc/ada/a-wtdeau.adb +++ b/gcc/ada/a-wtdeau.adb @@ -103,7 +103,7 @@ package body Ada.Wide_Text_IO.Decimal_Aux is function Gets_Dec (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Integer is Pos : aliased Integer; @@ -128,7 +128,7 @@ package body Ada.Wide_Text_IO.Decimal_Aux is function Gets_LLD (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Long_Long_Integer is Pos : aliased Integer; diff --git a/gcc/ada/a-wtdeau.ads b/gcc/ada/a-wtdeau.ads index f8983eb..b469a35 100644 --- a/gcc/ada/a-wtdeau.ads +++ b/gcc/ada/a-wtdeau.ads @@ -54,12 +54,12 @@ private package Ada.Wide_Text_IO.Decimal_Aux is function Gets_Dec (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Integer; function Gets_LLD (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Long_Long_Integer; procedure Put_Dec diff --git a/gcc/ada/a-wtinio.ads b/gcc/ada/a-wtinio.ads index 257ba23..b078ee3 100644 --- a/gcc/ada/a-wtinio.ads +++ b/gcc/ada/a-wtinio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-wttest.ads b/gcc/ada/a-wttest.ads index c209e0e..7c180ff 100644 --- a/gcc/ada/a-wttest.ads +++ b/gcc/ada/a-wttest.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-wwboio.ads b/gcc/ada/a-wwboio.ads index 634a265..2b8dd2a 100644 --- a/gcc/ada/a-wwboio.ads +++ b/gcc/ada/a-wwboio.ads @@ -6,9 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2005, Free Software Foundation, Inc. -- --- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-wwunio.ads b/gcc/ada/a-wwunio.ads index ed7c31b..de044c5 100644 --- a/gcc/ada/a-wwunio.ads +++ b/gcc/ada/a-wwunio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-zchara.ads b/gcc/ada/a-zchara.ads index 0802bfc..d8d5f9f 100755 --- a/gcc/ada/a-zchara.ads +++ b/gcc/ada/a-zchara.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ztcoio.ads b/gcc/ada/a-ztcoio.ads index 641065b..866fd87 100644 --- a/gcc/ada/a-ztcoio.ads +++ b/gcc/ada/a-ztcoio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-ztdeau.adb b/gcc/ada/a-ztdeau.adb index b6b9b94..d36d34f 100644 --- a/gcc/ada/a-ztdeau.adb +++ b/gcc/ada/a-ztdeau.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -103,7 +103,7 @@ package body Ada.Wide_Wide_Text_IO.Decimal_Aux is function Gets_Dec (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Integer is Pos : aliased Integer; @@ -128,7 +128,7 @@ package body Ada.Wide_Wide_Text_IO.Decimal_Aux is function Gets_LLD (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Long_Long_Integer is Pos : aliased Integer; diff --git a/gcc/ada/a-ztdeau.ads b/gcc/ada/a-ztdeau.ads index ba9ffcb..e61bc93 100644 --- a/gcc/ada/a-ztdeau.ads +++ b/gcc/ada/a-ztdeau.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -54,12 +54,12 @@ private package Ada.Wide_Wide_Text_IO.Decimal_Aux is function Gets_Dec (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Integer; function Gets_LLD (From : String; - Last : access Positive; + Last : not null access Positive; Scale : Integer) return Long_Long_Integer; procedure Put_Dec diff --git a/gcc/ada/a-ztexio.adb b/gcc/ada/a-ztexio.adb index daadd54..47de699 100644 --- a/gcc/ada/a-ztexio.adb +++ b/gcc/ada/a-ztexio.adb @@ -96,7 +96,7 @@ package body Ada.Wide_Wide_Text_IO is -- AFCB_Close -- ---------------- - procedure AFCB_Close (File : access Wide_Wide_Text_AFCB) is + procedure AFCB_Close (File : not null access Wide_Wide_Text_AFCB) is begin -- If the file being closed is one of the current files, then close -- the corresponding current file. It is not clear that this action @@ -118,7 +118,7 @@ package body Ada.Wide_Wide_Text_IO is -- AFCB_Free -- --------------- - procedure AFCB_Free (File : access Wide_Wide_Text_AFCB) is + procedure AFCB_Free (File : not null access Wide_Wide_Text_AFCB) is type FCB_Ptr is access all Wide_Wide_Text_AFCB; FT : FCB_Ptr := FCB_Ptr (File); diff --git a/gcc/ada/a-ztexio.ads b/gcc/ada/a-ztexio.ads index 000d104..e200b17 100644 --- a/gcc/ada/a-ztexio.ads +++ b/gcc/ada/a-ztexio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, 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 -- @@ -395,8 +395,8 @@ private function AFCB_Allocate (Control_Block : Wide_Wide_Text_AFCB) return FCB.AFCB_Ptr; - procedure AFCB_Close (File : access Wide_Wide_Text_AFCB); - procedure AFCB_Free (File : access Wide_Wide_Text_AFCB); + procedure AFCB_Close (File : not null access Wide_Wide_Text_AFCB); + procedure AFCB_Free (File : not null access Wide_Wide_Text_AFCB); procedure Read (File : in out Wide_Wide_Text_AFCB; diff --git a/gcc/ada/a-ztinio.ads b/gcc/ada/a-ztinio.ads index 4efd684..4358e7b 100644 --- a/gcc/ada/a-ztinio.ads +++ b/gcc/ada/a-ztinio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-zttest.ads b/gcc/ada/a-zttest.ads index b417eca..1599253 100644 --- a/gcc/ada/a-zttest.ads +++ b/gcc/ada/a-zttest.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-zzboio.ads b/gcc/ada/a-zzboio.ads index 83b4ed9..68157e9 100644 --- a/gcc/ada/a-zzboio.ads +++ b/gcc/ada/a-zzboio.ads @@ -6,9 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2005, Free Software Foundation, Inc. -- --- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/a-zzunio.ads b/gcc/ada/a-zzunio.ads index f54d515..1695b06 100644 --- a/gcc/ada/a-zzunio.ads +++ b/gcc/ada/a-zzunio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/ada.ads b/gcc/ada/ada.ads index 2e9f35c..8c86011 100644 --- a/gcc/ada/ada.ads +++ b/gcc/ada/ada.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/calendar.ads b/gcc/ada/calendar.ads index 92e93cf..7b13a6f 100644 --- a/gcc/ada/calendar.ads +++ b/gcc/ada/calendar.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/directio.ads b/gcc/ada/directio.ads index c8239ec..b69ca44 100644 --- a/gcc/ada/directio.ads +++ b/gcc/ada/directio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/expander.adb b/gcc/ada/expander.adb index 9119194..103716a 100644 --- a/gcc/ada/expander.adb +++ b/gcc/ada/expander.adb @@ -55,10 +55,10 @@ package body Expander is -- Local Data -- ---------------- - -- The following table is used to save values of the Expander_Active - -- flag when they are saved by Expander_Mode_Save_And_Set. We use an - -- extendible table (which is a bit of overkill) because it is easier - -- than figuring out a maximum value or bothering with range checks! + -- The following table is used to save values of the Expander_Active flag + -- when they are saved by Expander_Mode_Save_And_Set. We use an extendible + -- table (which is a bit of overkill) because it is easier than figuring + -- out a maximum value or bothering with range checks! package Expander_Flags is new Table.Table ( Table_Component_Type => Boolean, @@ -74,17 +74,16 @@ package body Expander is procedure Expand (N : Node_Id) is begin - -- If we were analyzing a default expression the Full_Analysis flag - -- must be off. If we are in expansion mode then we must be - -- performing a full analysis. If we are analyzing a generic then - -- Expansion must be off. + -- If we were analyzing a default expression the Full_Analysis flag must + -- be off. If we are in expansion mode then we must be performing a full + -- analysis. If we are analyzing a generic then Expansion must be off. pragma Assert (not (Full_Analysis and then In_Default_Expression) - and then (Full_Analysis or else not Expander_Active) - and then not (Inside_A_Generic and then Expander_Active)); + and then (Full_Analysis or else not Expander_Active) + and then not (Inside_A_Generic and then Expander_Active)); - -- There are three reasons for the Expander_Active flag to be false. + -- There are three reasons for the Expander_Active flag to be false -- -- The first is when are not generating code. In this mode the -- Full_Analysis flag indicates whether we are performing a complete @@ -93,19 +92,18 @@ package body Expander is -- info on this. -- -- The second reason for the Expander_Active flag to be False is that - -- we are performing a pre-analysis. During pre-analysis all - -- expansion activity is turned off to make sure nodes are - -- semantically decorated but no extra nodes are generated. This is - -- for instance needed for the first pass of aggregate semantic - -- processing. Note that in this case the Full_Analysis flag is set - -- to False because the node will subsequently be re-analyzed with - -- expansion on (see the spec of sem). + -- we are performing a pre-analysis. During pre-analysis all expansion + -- activity is turned off to make sure nodes are semantically decorated + -- but no extra nodes are generated. This is for instance needed for + -- the first pass of aggregate semantic processing. Note that in this + -- case the Full_Analysis flag is set to False because the node will + -- subsequently be re-analyzed with expansion on (see the spec of sem). -- Finally, expansion is turned off in a regular compilation if there -- are serious errors. In that case there will be no further expansion, -- but one cleanup action may be required: if a transient scope was - -- created (e.g. for a function that returns an unconstrained type) - -- the scope may still be on the stack, and must be removed explicitly, + -- created (e.g. for a function that returns an unconstrained type) the + -- scope may still be on the stack, and must be removed explicitly, -- given that the expansion actions that would normally process it will -- not take place. This prevents cascaded errors due to stack mismatch. @@ -129,8 +127,8 @@ package body Expander is Debug_A_Entry ("expanding ", N); -- Processing depends on node kind. For full details on the expansion - -- activity required in each case, see bodies of corresponding - -- expand routines + -- activity required in each case, see bodies of corresponding expand + -- routines. begin case Nkind (N) is @@ -490,9 +488,9 @@ package body Expander is Expander_Active := Expander_Flags.Table (Expander_Flags.Last); Expander_Flags.Decrement_Last; - -- Keep expander off if serious errors detected. In this case we do - -- not need expansion, and continued expansion may cause cascaded - -- errors or compiler bombs. + -- Keep expander off if serious errors detected. In this case we do not + -- need expansion, and continued expansion may cause cascaded errors or + -- compiler bombs. if Serious_Errors_Detected /= 0 then Expander_Active := False; diff --git a/gcc/ada/g-calend.adb b/gcc/ada/g-calend.adb index ea8f28a..3fec4a09 100644 --- a/gcc/ada/g-calend.adb +++ b/gcc/ada/g-calend.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2005, AdaCore -- +-- Copyright (C) 1999-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -41,13 +41,13 @@ package body GNAT.Calendar is ----------------- function Day_In_Year (Date : Time) return Day_In_Year_Number is - Year : Year_Number; - Month : Month_Number; - Day : Day_Number; - Dsecs : Day_Duration; + Year : Year_Number; + Month : Month_Number; + Day : Day_Number; + Day_Secs : Day_Duration; begin - Split (Date, Year, Month, Day, Dsecs); + Split (Date, Year, Month, Day, Day_Secs); return Julian_Day (Year, Month, Day) - Julian_Day (Year, 1, 1) + 1; end Day_In_Year; @@ -57,13 +57,13 @@ package body GNAT.Calendar is ----------------- function Day_Of_Week (Date : Time) return Day_Name is - Year : Year_Number; - Month : Month_Number; - Day : Day_Number; - Dsecs : Day_Duration; + Year : Year_Number; + Month : Month_Number; + Day : Day_Number; + Day_Secs : Day_Duration; begin - Split (Date, Year, Month, Day, Dsecs); + Split (Date, Year, Month, Day, Day_Secs); return Day_Name'Val ((Julian_Day (Year, Month, Day)) mod 7); end Day_Of_Week; @@ -90,8 +90,8 @@ package body GNAT.Calendar is -- Julian_Day -- ---------------- - -- Julian_Day is used to by Day_Of_Week and Day_In_Year. Note - -- that this implementation is not expensive. + -- Julian_Day is used to by Day_Of_Week and Day_In_Year. Note that this + -- implementation is not expensive. function Julian_Day (Year : Year_Number; @@ -178,21 +178,21 @@ package body GNAT.Calendar is Second : out Second_Number; Sub_Second : out Second_Duration) is - Dsecs : Day_Duration; - Secs : Natural; + Day_Secs : Day_Duration; + Secs : Natural; begin - Split (Date, Year, Month, Day, Dsecs); + Split (Date, Year, Month, Day, Day_Secs); - if Dsecs = 0.0 then + if Day_Secs = 0.0 then Secs := 0; else - Secs := Natural (Dsecs - 0.5); + Secs := Natural (Day_Secs - 0.5); end if; - Sub_Second := Second_Duration (Dsecs - Day_Duration (Secs)); - Hour := Hour_Number (Secs / 3600); - Secs := Secs mod 3600; + Sub_Second := Second_Duration (Day_Secs - Day_Duration (Secs)); + Hour := Hour_Number (Secs / 3_600); + Secs := Secs mod 3_600; Minute := Minute_Number (Secs / 60); Second := Second_Number (Secs mod 60); end Split; @@ -228,23 +228,25 @@ package body GNAT.Calendar is Second : Second_Number; Sub_Second : Second_Duration := 0.0) return Time is - Dsecs : constant Day_Duration := - Day_Duration (Hour * 3600 + Minute * 60 + Second) + - Sub_Second; + Day_Secs : constant Day_Duration := + Day_Duration (Hour * 3_600) + + Day_Duration (Minute * 60) + + Day_Duration (Second) + + Sub_Second; begin - return Time_Of (Year, Month, Day, Dsecs); + return Time_Of (Year, Month, Day, Day_Secs); end Time_Of; ----------------- -- To_Duration -- ----------------- - function To_Duration (T : access timeval) return Duration is + function To_Duration (T : not null access timeval) return Duration is procedure timeval_to_duration - (T : access timeval; - sec : access C.long; - usec : access C.long); + (T : not null access timeval; + sec : not null access C.long; + usec : not null access C.long); pragma Import (C, timeval_to_duration, "__gnat_timeval_to_duration"); Micro : constant := 10**6; @@ -260,9 +262,12 @@ package body GNAT.Calendar is -- To_Timeval -- ---------------- - function To_Timeval (D : Duration) return timeval is + function To_Timeval (D : Duration) return timeval is - procedure duration_to_timeval (Sec, Usec : C.long; T : access timeval); + procedure duration_to_timeval + (Sec : C.long; + Usec : C.long; + T : not null access timeval); pragma Import (C, duration_to_timeval, "__gnat_duration_to_timeval"); Micro : constant := 10**6; @@ -288,9 +293,7 @@ package body GNAT.Calendar is -- Week_In_Year -- ------------------ - function Week_In_Year - (Date : Ada.Calendar.Time) return Week_In_Year_Number - is + function Week_In_Year (Date : Time) return Week_In_Year_Number is Year : Year_Number; Month : Month_Number; Day : Day_Number; diff --git a/gcc/ada/g-calend.ads b/gcc/ada/g-calend.ads index 8288635..e8b4345 100644 --- a/gcc/ada/g-calend.ads +++ b/gcc/ada/g-calend.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -106,7 +106,7 @@ package GNAT.Calendar is type timeval is private; - function To_Duration (T : access timeval) return Duration; + function To_Duration (T : not null access timeval) return Duration; function To_Timeval (D : Duration) return timeval; private diff --git a/gcc/ada/g-dirope.adb b/gcc/ada/g-dirope.adb index 5302969..99ce7ea 100644 --- a/gcc/ada/g-dirope.adb +++ b/gcc/ada/g-dirope.adb @@ -661,7 +661,7 @@ package body GNAT.Directory_Operations is function readdir_gnat (Directory : System.Address; Buffer : System.Address; - Last : access Integer) return System.Address; + Last : not null access Integer) return System.Address; pragma Import (C, readdir_gnat, "__gnat_readdir"); begin diff --git a/gcc/ada/g-expect-vms.adb b/gcc/ada/g-expect-vms.adb index 2381c66..55ede65 100644 --- a/gcc/ada/g-expect-vms.adb +++ b/gcc/ada/g-expect-vms.adb @@ -95,7 +95,7 @@ package body GNAT.Expect is procedure Kill (Pid : Process_Id; Sig_Num : Integer); pragma Import (C, Kill, "decc$kill"); - function Create_Pipe (Pipe : access Pipe_Type) return Integer; + function Create_Pipe (Pipe : not null access Pipe_Type) return Integer; pragma Import (C, Create_Pipe, "__gnat_pipe"); function Poll @@ -769,7 +769,7 @@ package body GNAT.Expect is (Command : String; Arguments : GNAT.OS_Lib.Argument_List; Input : String; - Status : access Integer; + Status : not null access Integer; Err_To_Out : Boolean := False) return String is use GNAT.Expect; @@ -1096,9 +1096,9 @@ package body GNAT.Expect is procedure Set_Up_Communications (Pid : in out Process_Descriptor; Err_To_Out : Boolean; - Pipe1 : access Pipe_Type; - Pipe2 : access Pipe_Type; - Pipe3 : access Pipe_Type) + Pipe1 : not null access Pipe_Type; + Pipe2 : not null access Pipe_Type; + Pipe3 : not null access Pipe_Type) is begin -- Create the pipes diff --git a/gcc/ada/g-expect.ads b/gcc/ada/g-expect.ads index b47a3a4..7cc1bad 100644 --- a/gcc/ada/g-expect.ads +++ b/gcc/ada/g-expect.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 2000-2005, AdaCore -- +-- Copyright (C) 2000-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -229,7 +229,7 @@ package GNAT.Expect is (Command : String; Arguments : GNAT.OS_Lib.Argument_List; Input : String; - Status : access Integer; + Status : not null access Integer; Err_To_Out : Boolean := False) return String; -- Execute Command with the specified Arguments and Input, and return the -- generated standard output data as a single string. If Err_To_Out is @@ -555,9 +555,9 @@ private procedure Set_Up_Communications (Pid : in out Process_Descriptor; Err_To_Out : Boolean; - Pipe1 : access Pipe_Type; - Pipe2 : access Pipe_Type; - Pipe3 : access Pipe_Type); + Pipe1 : not null access Pipe_Type; + Pipe2 : not null access Pipe_Type; + Pipe3 : not null access Pipe_Type); -- Set up all the communication pipes and file descriptors prior to -- spawning the child process. @@ -601,7 +601,7 @@ private -- possibly in future child units providing extensions to this package. procedure Portable_Execvp - (Pid : access Process_Id; + (Pid : not null access Process_Id; Cmd : String; Args : System.Address); pragma Import (C, Portable_Execvp, "__gnat_expect_portable_execvp"); diff --git a/gcc/ada/g-socket.ads b/gcc/ada/g-socket.ads index 3e974a2..b585a21 100644 --- a/gcc/ada/g-socket.ads +++ b/gcc/ada/g-socket.ads @@ -881,8 +881,7 @@ package GNAT.Sockets is type Stream_Access is access all Ada.Streams.Root_Stream_Type'Class; -- Same interface as Ada.Streams.Stream_IO - function Stream - (Socket : Socket_Type) return Stream_Access; + function Stream (Socket : Socket_Type) return Stream_Access; -- Create a stream associated with a stream-based socket that is -- already connected. @@ -892,8 +891,7 @@ package GNAT.Sockets is -- Create a stream associated with a datagram-based socket that is already -- bound. Send_To is the socket address to which messages are being sent. - function Get_Address - (Stream : Stream_Access) return Sock_Addr_Type; + function Get_Address (Stream : Stream_Access) return Sock_Addr_Type; -- Return the socket address from which the last message was received procedure Free is new Ada.Unchecked_Deallocation @@ -921,8 +919,7 @@ package GNAT.Sockets is -- Extract a Socket from socket set Item. Socket is set to -- No_Socket when the set is empty. - function Is_Empty - (Item : Socket_Set_Type) return Boolean; + function Is_Empty (Item : Socket_Set_Type) return Boolean; -- Return True iff Item is empty function Is_Set diff --git a/gcc/ada/g-spipat.adb b/gcc/ada/g-spipat.adb index a7a3af6..af6afc2 100644 --- a/gcc/ada/g-spipat.adb +++ b/gcc/ada/g-spipat.adb @@ -1646,7 +1646,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_Any_CS, 1, EOP, Str)); end Any; - function Any (Str : access VString) return Pattern is + function Any (Str : not null access VString) return Pattern is begin return (AFC with 0, new PE'(PC_Any_VP, 1, EOP, VString_Ptr (Str))); end Any; @@ -1825,7 +1825,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_Break_CS, 1, EOP, Str)); end Break; - function Break (Str : access VString) return Pattern is + function Break (Str : not null access VString) return Pattern is begin return (AFC with 0, new PE'(PC_Break_VP, 1, EOP, VString_Ptr (Str))); end Break; @@ -1859,7 +1859,7 @@ package body GNAT.Spitbol.Patterns is return BreakX_Make (new PE'(PC_BreakX_CS, 3, N, Str)); end BreakX; - function BreakX (Str : access VString) return Pattern is + function BreakX (Str : not null access VString) return Pattern is begin return BreakX_Make (new PE'(PC_BreakX_VP, 3, N, VString_Ptr (Str))); end BreakX; @@ -2779,7 +2779,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_Len_NF, 1, EOP, Count)); end Len; - function Len (Count : access Natural) return Pattern is + function Len (Count : not null access Natural) return Pattern is begin return (AFC with 0, new PE'(PC_Len_NP, 1, EOP, Natural_Ptr (Count))); end Len; @@ -3266,7 +3266,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_NotAny_CS, 1, EOP, Str)); end NotAny; - function NotAny (Str : access VString) return Pattern is + function NotAny (Str : not null access VString) return Pattern is begin return (AFC with 0, new PE'(PC_NotAny_VP, 1, EOP, VString_Ptr (Str))); end NotAny; @@ -3300,7 +3300,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_NSpan_CS, 1, EOP, Str)); end NSpan; - function NSpan (Str : access VString) return Pattern is + function NSpan (Str : not null access VString) return Pattern is begin return (AFC with 0, new PE'(PC_NSpan_VP, 1, EOP, VString_Ptr (Str))); end NSpan; @@ -3324,7 +3324,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_Pos_NF, 1, EOP, Count)); end Pos; - function Pos (Count : access Natural) return Pattern is + function Pos (Count : not null access Natural) return Pattern is begin return (AFC with 0, new PE'(PC_Pos_NP, 1, EOP, Natural_Ptr (Count))); end Pos; @@ -3394,7 +3394,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_RPos_NF, 1, EOP, Count)); end Rpos; - function Rpos (Count : access Natural) return Pattern is + function Rpos (Count : not null access Natural) return Pattern is begin return (AFC with 0, new PE'(PC_RPos_NP, 1, EOP, Natural_Ptr (Count))); end Rpos; @@ -3413,7 +3413,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_RTab_NF, 1, EOP, Count)); end Rtab; - function Rtab (Count : access Natural) return Pattern is + function Rtab (Count : not null access Natural) return Pattern is begin return (AFC with 0, new PE'(PC_RTab_NP, 1, EOP, Natural_Ptr (Count))); end Rtab; @@ -3500,7 +3500,7 @@ package body GNAT.Spitbol.Patterns is -- Setcur -- ------------ - function Setcur (Var : access Natural) return Pattern is + function Setcur (Var : not null access Natural) return Pattern is begin return (AFC with 0, new PE'(PC_Setcur, 1, EOP, Natural_Ptr (Var))); end Setcur; @@ -3529,7 +3529,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_Span_CS, 1, EOP, Str)); end Span; - function Span (Str : access VString) return Pattern is + function Span (Str : not null access VString) return Pattern is begin return (AFC with 0, new PE'(PC_Span_VP, 1, EOP, VString_Ptr (Str))); end Span; @@ -3628,7 +3628,7 @@ package body GNAT.Spitbol.Patterns is return (AFC with 0, new PE'(PC_Tab_NF, 1, EOP, Count)); end Tab; - function Tab (Count : access Natural) return Pattern is + function Tab (Count : not null access Natural) return Pattern is begin return (AFC with 0, new PE'(PC_Tab_NP, 1, EOP, Natural_Ptr (Count))); end Tab; diff --git a/gcc/ada/g-spipat.ads b/gcc/ada/g-spipat.ads index 31cbef6..fd1281c 100644 --- a/gcc/ada/g-spipat.ads +++ b/gcc/ada/g-spipat.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1997-2005, AdaCore -- +-- Copyright (C) 1997-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -782,7 +782,7 @@ package GNAT.Spitbol.Patterns is function Any (Str : VString) return Pattern; function Any (Str : Character) return Pattern; function Any (Str : Character_Set) return Pattern; - function Any (Str : access VString) return Pattern; + function Any (Str : not null access VString) return Pattern; function Any (Str : VString_Func) return Pattern; -- Constructs a pattern that matches a single character that is one of -- the characters in the given argument. The pattern fails if the current @@ -797,7 +797,7 @@ package GNAT.Spitbol.Patterns is function Break (Str : VString) return Pattern; function Break (Str : Character) return Pattern; function Break (Str : Character_Set) return Pattern; - function Break (Str : access VString) return Pattern; + function Break (Str : not null access VString) return Pattern; function Break (Str : VString_Func) return Pattern; -- Constructs a pattern that matches a (possibly null) string which -- is immediately followed by a character in the given argument. This @@ -809,7 +809,7 @@ package GNAT.Spitbol.Patterns is function BreakX (Str : VString) return Pattern; function BreakX (Str : Character) return Pattern; function BreakX (Str : Character_Set) return Pattern; - function BreakX (Str : access VString) return Pattern; + function BreakX (Str : not null access VString) return Pattern; function BreakX (Str : VString_Func) return Pattern; -- Like Break, but the pattern attempts to extend on a failure to find -- the next occurrence of a character in Str, and only fails when the @@ -833,7 +833,7 @@ package GNAT.Spitbol.Patterns is -- one attempt is made to match P, without trying alternatives. function Len (Count : Natural) return Pattern; - function Len (Count : access Natural) return Pattern; + function Len (Count : not null access Natural) return Pattern; function Len (Count : Natural_Func) return Pattern; -- Constructs a pattern that matches exactly the given number of -- characters. The pattern fails if fewer than this number of characters @@ -843,7 +843,7 @@ package GNAT.Spitbol.Patterns is function NotAny (Str : VString) return Pattern; function NotAny (Str : Character) return Pattern; function NotAny (Str : Character_Set) return Pattern; - function NotAny (Str : access VString) return Pattern; + function NotAny (Str : not null access VString) return Pattern; function NotAny (Str : VString_Func) return Pattern; -- Constructs a pattern that matches a single character that is not -- one of the characters in the given argument. The pattern Fails if @@ -853,14 +853,14 @@ package GNAT.Spitbol.Patterns is function NSpan (Str : VString) return Pattern; function NSpan (Str : Character) return Pattern; function NSpan (Str : Character_Set) return Pattern; - function NSpan (Str : access VString) return Pattern; + function NSpan (Str : not null access VString) return Pattern; function NSpan (Str : VString_Func) return Pattern; -- Constructs a pattern that matches the longest possible string -- consisting entirely of characters from the given argument. The -- string may be empty, so this pattern always succeeds. function Pos (Count : Natural) return Pattern; - function Pos (Count : access Natural) return Pattern; + function Pos (Count : not null access Natural) return Pattern; function Pos (Count : Natural_Func) return Pattern; -- Constructs a pattern that matches the null string if exactly Count -- characters have already been matched, and otherwise fails. @@ -870,19 +870,19 @@ package GNAT.Spitbol.Patterns is -- unmatched characters in the pattern. function Rpos (Count : Natural) return Pattern; - function Rpos (Count : access Natural) return Pattern; + function Rpos (Count : not null access Natural) return Pattern; function Rpos (Count : Natural_Func) return Pattern; -- Constructs a pattern that matches the null string if exactly Count -- characters remain to be matched in the string, and otherwise fails. function Rtab (Count : Natural) return Pattern; - function Rtab (Count : access Natural) return Pattern; + function Rtab (Count : not null access Natural) return Pattern; function Rtab (Count : Natural_Func) return Pattern; -- Constructs a pattern that matches from the current location until -- exactly Count characters remain to be matched in the string. The -- pattern fails if fewer than Count characters remain to be matched. - function Setcur (Var : access Natural) return Pattern; + function Setcur (Var : not null access Natural) return Pattern; -- Constructs a pattern that matches the null string, and assigns the -- current cursor position in the string. This value is the number of -- characters matched so far. So it is zero at the start of the match. @@ -891,7 +891,7 @@ package GNAT.Spitbol.Patterns is function Span (Str : VString) return Pattern; function Span (Str : Character) return Pattern; function Span (Str : Character_Set) return Pattern; - function Span (Str : access VString) return Pattern; + function Span (Str : not null access VString) return Pattern; function Span (Str : VString_Func) return Pattern; -- Constructs a pattern that matches the longest possible string -- consisting entirely of characters from the given argument. The @@ -904,7 +904,7 @@ package GNAT.Spitbol.Patterns is -- infinite alternation of null strings. function Tab (Count : Natural) return Pattern; - function Tab (Count : access Natural) return Pattern; + function Tab (Count : not null access Natural) return Pattern; function Tab (Count : Natural_Func) return Pattern; -- Constructs a pattern that from the current location until Count -- characters have been matched. The pattern fails if more than Count diff --git a/gcc/ada/gnatchop.adb b/gcc/ada/gnatchop.adb index eab7063..086548c 100644 --- a/gcc/ada/gnatchop.adb +++ b/gcc/ada/gnatchop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2005, AdaCore -- +-- Copyright (C) 1998-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -240,12 +240,14 @@ procedure Gnatchop is end record; function Get_EOL - (Source : access String; + (Source : not null access String; Start : Positive) return EOL_String; -- Return the line terminator used in the passed string - procedure Parse_EOL (Source : access String; Ptr : in out Positive); + procedure Parse_EOL + (Source : not null access String; + Ptr : in out Positive); -- On return Source (Ptr) is the first character of the next line -- or EOF. Source.all must be terminated by EOF. @@ -255,12 +257,14 @@ procedure Gnatchop is -- completes, False if some system error (e.g. failure to read the -- offset information) occurs. - procedure Parse_Offset_Info (Chop_File : File_Num; Source : access String); + procedure Parse_Offset_Info + (Chop_File : File_Num; + Source : not null access String); -- Parses the output of the compiler indicating the offsets -- and names of the compilation units in Chop_File. procedure Parse_Token - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Token_Ptr : out Positive); -- Skips any separators and stores the start of the token in Token_Ptr. @@ -324,7 +328,7 @@ procedure Gnatchop is -- of line sequence to be written at the end of the pragma. procedure Write_Unit - (Source : access String; + (Source : not null access String; Num : Unit_Num; TS_Time : OS_Time; Success : out Boolean); @@ -462,7 +466,7 @@ procedure Gnatchop is ------------- function Get_EOL - (Source : access String; + (Source : not null access String; Start : Positive) return EOL_String is @@ -576,7 +580,9 @@ procedure Gnatchop is -- Parse_EOL -- --------------- - procedure Parse_EOL (Source : access String; Ptr : in out Positive) is + procedure Parse_EOL + (Source : not null access String; + Ptr : in out Positive) is begin -- Skip to end of line @@ -705,7 +711,7 @@ procedure Gnatchop is procedure Parse_Offset_Info (Chop_File : File_Num; - Source : access String) + Source : not null access String) is First_Unit : constant Unit_Num := Unit.Last + 1; Bufferg : String_Access := null; @@ -944,7 +950,7 @@ procedure Gnatchop is ----------------- procedure Parse_Token - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Token_Ptr : out Positive) is @@ -1607,7 +1613,7 @@ procedure Gnatchop is ---------------- procedure Write_Unit - (Source : access String; + (Source : not null access String; Num : Unit_Num; TS_Time : OS_Time; Success : out Boolean) diff --git a/gcc/ada/i-c.ads b/gcc/ada/i-c.ads index 54dbd45..1882e8f 100644 --- a/gcc/ada/i-c.ads +++ b/gcc/ada/i-c.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/i-vxwork-x86.ads b/gcc/ada/i-vxwork-x86.ads index 360c6fc..3c317b8 100644 --- a/gcc/ada/i-vxwork-x86.ads +++ b/gcc/ada/i-vxwork-x86.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1999-2005, AdaCore -- +-- Copyright (C) 1999-2006, AdaCore -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -155,16 +155,16 @@ package Interfaces.VxWorks is procedure intVecGet2 (vector : Interrupt_Vector; pFunction : out VOIDFUNCPTR; - pIdtGate : access int; - pIdtSelector : access int); + pIdtGate : not null access int; + pIdtSelector : not null access int); -- Binding to the C routine intVecGet2. Use this to get the -- existing handler for later restoral procedure intVecSet2 (vector : Interrupt_Vector; pFunction : VOIDFUNCPTR; - pIdtGate : access int; - pIdtSelector : access int); + pIdtGate : not null access int; + pIdtSelector : not null access int); -- Binding to the C routine intVecSet2. Use this to restore a -- handler obtained using intVecGet2 diff --git a/gcc/ada/ioexcept.ads b/gcc/ada/ioexcept.ads index 548fd37..0473ff3 100644 --- a/gcc/ada/ioexcept.ads +++ b/gcc/ada/ioexcept.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/machcode.ads b/gcc/ada/machcode.ads index b920d81..55e1ae5 100644 --- a/gcc/ada/machcode.ads +++ b/gcc/ada/machcode.ads @@ -6,12 +6,13 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- -- -- ------------------------------------------------------------------------------ - with System.Machine_Code; - package Machine_Code renames System.Machine_Code; +with System.Machine_Code; + +package Machine_Code renames System.Machine_Code; diff --git a/gcc/ada/par-labl.adb b/gcc/ada/par-labl.adb index 7147c36..fe50b7b 100644 --- a/gcc/ada/par-labl.adb +++ b/gcc/ada/par-labl.adb @@ -477,7 +477,6 @@ procedure Labl is begin Next_Label_Elmt := First_Elmt (Label_List); - while Present (Next_Label_Elmt) loop Label_Node := Node (Next_Label_Elmt); diff --git a/gcc/ada/s-direio.adb b/gcc/ada/s-direio.adb index 7bb3e52..33c9498 100644 --- a/gcc/ada/s-direio.adb +++ b/gcc/ada/s-direio.adb @@ -74,7 +74,7 @@ package body System.Direct_IO is -- No special processing required for Direct_IO close - procedure AFCB_Close (File : access Direct_AFCB) is + procedure AFCB_Close (File : not null access Direct_AFCB) is pragma Unreferenced (File); begin @@ -85,7 +85,7 @@ package body System.Direct_IO is -- AFCB_Free -- --------------- - procedure AFCB_Free (File : access Direct_AFCB) is + procedure AFCB_Free (File : not null access Direct_AFCB) is type FCB_Ptr is access all Direct_AFCB; diff --git a/gcc/ada/s-direio.ads b/gcc/ada/s-direio.ads index 756bcb2..a43ebb6 100644 --- a/gcc/ada/s-direio.ads +++ b/gcc/ada/s-direio.ads @@ -66,8 +66,8 @@ package System.Direct_IO is function AFCB_Allocate (Control_Block : Direct_AFCB) return FCB.AFCB_Ptr; - procedure AFCB_Close (File : access Direct_AFCB); - procedure AFCB_Free (File : access Direct_AFCB); + procedure AFCB_Close (File : not null access Direct_AFCB); + procedure AFCB_Free (File : not null access Direct_AFCB); procedure Read (File : in out Direct_AFCB; diff --git a/gcc/ada/s-fatgen.adb b/gcc/ada/s-fatgen.adb index f6a9327..f591a69 100644 --- a/gcc/ada/s-fatgen.adb +++ b/gcc/ada/s-fatgen.adb @@ -759,7 +759,7 @@ package body System.Fat_Gen is -- in Exp_Attr by using the Valid functions in Vax_Float_Operations rather -- than the corresponding instantiation of this function. - function Valid (X : access T) return Boolean is + function Valid (X : not null access T) return Boolean is IEEE_Emin : constant Integer := T'Machine_Emin - 1; IEEE_Emax : constant Integer := T'Machine_Emax - 1; diff --git a/gcc/ada/s-fatgen.ads b/gcc/ada/s-fatgen.ads index 83b6f06..748e517 100644 --- a/gcc/ada/s-fatgen.ads +++ b/gcc/ada/s-fatgen.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006 Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -89,7 +89,7 @@ package System.Fat_Gen is function Unbiased_Rounding (X : T) return T; - function Valid (X : access T) return Boolean; + function Valid (X : not null access T) return Boolean; -- This function checks if the object of type T referenced by X -- is valid, and returns True/False accordingly. The parameter is -- passed by reference (access) here, as the object of type T may diff --git a/gcc/ada/s-osprim-mingw.adb b/gcc/ada/s-osprim-mingw.adb index eb38ac8..41e3033 100644 --- a/gcc/ada/s-osprim-mingw.adb +++ b/gcc/ada/s-osprim-mingw.adb @@ -4,9 +4,9 @@ -- -- -- S Y S T E M . O S _ P R I M I T I V E S -- -- -- --- B o d y -- +-- B o d y -- -- -- --- Copyright (C) 1998-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2006, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -51,16 +51,17 @@ package body System.OS_Primitives is type BOOL is new Boolean; for BOOL'Size use Interfaces.C.unsigned_long'Size; - procedure GetSystemTimeAsFileTime (lpFileTime : access Long_Long_Integer); + procedure GetSystemTimeAsFileTime + (lpFileTime : not null access Long_Long_Integer); pragma Import (Stdcall, GetSystemTimeAsFileTime, "GetSystemTimeAsFileTime"); function QueryPerformanceCounter - (lpPerformanceCount : access LARGE_INTEGER) return BOOL; + (lpPerformanceCount : not null access LARGE_INTEGER) return BOOL; pragma Import (Stdcall, QueryPerformanceCounter, "QueryPerformanceCounter"); function QueryPerformanceFrequency - (lpFrequency : access LARGE_INTEGER) return BOOL; + (lpFrequency : not null access LARGE_INTEGER) return BOOL; pragma Import (Stdcall, QueryPerformanceFrequency, "QueryPerformanceFrequency"); @@ -241,9 +242,29 @@ package body System.OS_Primitives is ----------------- procedure Timed_Delay (Time : Duration; Mode : Integer) is + + function Mode_Clock return Duration; + pragma Inline (Mode_Clock); + -- Return the current clock value using either the monotonic clock or + -- standard clock depending on the Mode value. + + ---------------- + -- Mode_Clock -- + ---------------- + + function Mode_Clock return Duration is + begin + case Mode is + when Absolute_RT => + return Monotonic_Clock; + when others => + return Clock; + end case; + end Mode_Clock; + Rel_Time : Duration; Abs_Time : Duration; - Check_Time : Duration := Monotonic_Clock; + Check_Time : Duration := Mode_Clock; begin if Mode = Relative then @@ -257,7 +278,7 @@ package body System.OS_Primitives is if Rel_Time > 0.0 then loop Sleep (DWORD (Rel_Time * 1000.0)); - Check_Time := Monotonic_Clock; + Check_Time := Mode_Clock; exit when Abs_Time <= Check_Time; diff --git a/gcc/ada/s-osprim-posix.adb b/gcc/ada/s-osprim-posix.adb index 6d4431c..59a7237 100644 --- a/gcc/ada/s-osprim-posix.adb +++ b/gcc/ada/s-osprim-posix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2006 Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -56,7 +56,7 @@ package body System.OS_Primitives is pragma Convention (C, struct_timeval); function gettimeofday - (tv : access struct_timeval; + (tv : not null access struct_timeval; tz : struct_timezone_ptr) return Integer; pragma Import (C, gettimeofday, "gettimeofday"); @@ -66,7 +66,7 @@ package body System.OS_Primitives is end record; pragma Convention (C, timespec); - function nanosleep (rqtp, rmtp : access timespec) return Integer; + function nanosleep (rqtp, rmtp : not null access timespec) return Integer; pragma Import (C, nanosleep, "nanosleep"); ----------- diff --git a/gcc/ada/s-osprim-solaris.adb b/gcc/ada/s-osprim-solaris.adb index 6e7436f..b970933 100644 --- a/gcc/ada/s-osprim-solaris.adb +++ b/gcc/ada/s-osprim-solaris.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2006 Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -48,7 +48,7 @@ package body System.OS_Primitives is pragma Convention (C, struct_timeval); procedure gettimeofday - (tv : access struct_timeval; + (tv : not null access struct_timeval; tz : Address := Null_Address); pragma Import (C, gettimeofday, "gettimeofday"); @@ -57,7 +57,7 @@ package body System.OS_Primitives is readfds, writefds, exceptfds : Address := Null_Address; - timeout : access struct_timeval); + timeout : not null access struct_timeval); pragma Import (C, C_select, "select"); ----------- diff --git a/gcc/ada/s-osprim-unix.adb b/gcc/ada/s-osprim-unix.adb index 7511034..719551f 100644 --- a/gcc/ada/s-osprim-unix.adb +++ b/gcc/ada/s-osprim-unix.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1998-2005 Free Software Foundation, Inc. -- +-- Copyright (C) 1998-2006 Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -48,7 +48,7 @@ package body System.OS_Primitives is pragma Convention (C, struct_timeval); procedure gettimeofday - (tv : access struct_timeval; + (tv : not null access struct_timeval; tz : Address := Null_Address); pragma Import (C, gettimeofday, "gettimeofday"); @@ -57,7 +57,7 @@ package body System.OS_Primitives is readfds, writefds, exceptfds : Address := Null_Address; - timeout : access struct_timeval); + timeout : not null access struct_timeval); pragma Import (C, C_select, "select"); ----------- diff --git a/gcc/ada/s-parint.adb b/gcc/ada/s-parint.adb index 6091f3d..f8bcdcc 100644 --- a/gcc/ada/s-parint.adb +++ b/gcc/ada/s-parint.adb @@ -7,7 +7,7 @@ -- B o d y -- -- (Dummy body for non-distributed case) -- -- -- --- Copyright (C) 1995-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1995-2006, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -311,8 +311,8 @@ package body System.Partition_Interface is -------------------- function Same_Partition - (Left : access RACW_Stub_Type; - Right : access RACW_Stub_Type) return Boolean + (Left : not null access RACW_Stub_Type; + Right : not null access RACW_Stub_Type) return Boolean is pragma Unreferenced (Left); pragma Unreferenced (Right); diff --git a/gcc/ada/s-sequio.adb b/gcc/ada/s-sequio.adb index 50e5682..72f2e2b 100644 --- a/gcc/ada/s-sequio.adb +++ b/gcc/ada/s-sequio.adb @@ -59,7 +59,7 @@ package body System.Sequential_IO is -- No special processing required for Sequential_IO close - procedure AFCB_Close (File : access Sequential_AFCB) is + procedure AFCB_Close (File : not null access Sequential_AFCB) is pragma Warnings (Off, File); begin @@ -70,7 +70,7 @@ package body System.Sequential_IO is -- AFCB_Free -- --------------- - procedure AFCB_Free (File : access Sequential_AFCB) is + procedure AFCB_Free (File : not null access Sequential_AFCB) is type FCB_Ptr is access all Sequential_AFCB; diff --git a/gcc/ada/s-sequio.ads b/gcc/ada/s-sequio.ads index 09c41ae..d263ec3 100644 --- a/gcc/ada/s-sequio.ads +++ b/gcc/ada/s-sequio.ads @@ -48,8 +48,8 @@ package System.Sequential_IO is function AFCB_Allocate (Control_Block : Sequential_AFCB) return FCB.AFCB_Ptr; - procedure AFCB_Close (File : access Sequential_AFCB); - procedure AFCB_Free (File : access Sequential_AFCB); + procedure AFCB_Close (File : not null access Sequential_AFCB); + procedure AFCB_Free (File : not null access Sequential_AFCB); procedure Read (File : in out Sequential_AFCB; diff --git a/gcc/ada/s-stchop.adb b/gcc/ada/s-stchop.adb index f1478f3..c0577af 100644 --- a/gcc/ada/s-stchop.adb +++ b/gcc/ada/s-stchop.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2006 Free Software Foundation, Inc. -- +-- Copyright (C) 1999-2006, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -32,7 +32,7 @@ ------------------------------------------------------------------------------ -- This is the general implementation of this package. There is a VxWorks --- specific version of this package (5zstchop.adb). This file should +-- specific version of this package (s-stchop-vxworks.adb). This file should -- be kept synchronized with it. pragma Restrictions (No_Elaboration_Code); @@ -50,7 +50,8 @@ package body System.Stack_Checking.Operations is Kilobyte : constant := 1024; - function Set_Stack_Info (Stack : access Stack_Access) return Stack_Access; + function Set_Stack_Info + (Stack : not null access Stack_Access) return Stack_Access; -- The function Set_Stack_Info is the actual function that updates -- the cache containing a pointer to the Stack_Info. It may also @@ -90,7 +91,7 @@ package body System.Stack_Checking.Operations is -------------------- function Set_Stack_Info - (Stack : access Stack_Access) return Stack_Access + (Stack : not null access Stack_Access) return Stack_Access is type Frame_Mark is null record; Frame_Location : Frame_Mark; diff --git a/gcc/ada/s-stchop.ads b/gcc/ada/s-stchop.ads index cd56ac2..1c2f2a7 100644 --- a/gcc/ada/s-stchop.ads +++ b/gcc/ada/s-stchop.ads @@ -31,12 +31,12 @@ -- -- ------------------------------------------------------------------------------ --- This package provides a implementation of stack checking operations --- using comparison with stack base and limit. +-- This package provides a implementation of stack checking operations using +-- comparison with stack base and limit. pragma Restrictions (No_Elaboration_Code); --- We want to guarantee the absence of elaboration code because the --- binder does not handle references to this package. +-- We want to guarantee the absence of elaboration code because the binder +-- does not handle references to this package. pragma Polling (Off); -- Turn off polling, we do not want polling to take place during stack @@ -46,22 +46,20 @@ package System.Stack_Checking.Operations is pragma Preelaborate; procedure Update_Stack_Cache (Stack : Stack_Access); - -- Set the stack cache for the current task. Note that this is only - -- for optimization purposes, nothing can be assumed about the - -- contents of the cache at any time, see Set_Stack_Info. + -- Set the stack cache for the current task. Note that this is only for + -- optimization purposes, nothing can be assumed about the contents of the + -- cache at any time, see Set_Stack_Info. procedure Invalidate_Stack_Cache (Any_Stack : Stack_Access); - -- Invalidate cache entries for the task T that owns Any_Stack. - -- This causes the Set_Stack_Info function to be called during - -- the next stack check done by T. This can be used to interrupt - -- task T asynchronously. + -- Invalidate cache entries for the task T that owns Any_Stack. This causes + -- the Set_Stack_Info function to be called during the next stack check + -- done by T. This can be used to interrupt task T asynchronously. -- Stack_Check should be called in loops for this to work reliably. function Stack_Check (Stack_Address : System.Address) return Stack_Access; - -- This version of Stack_Check should not be inlined. + -- This version of Stack_Check should not be inlined private - Cache : aliased Stack_Access := Null_Stack; pragma Export (C, Cache, "_gnat_stack_cache"); diff --git a/gcc/ada/s-taprop-dummy.adb b/gcc/ada/s-taprop-dummy.adb index 873b1fd..894ec29 100644 --- a/gcc/ada/s-taprop-dummy.adb +++ b/gcc/ada/s-taprop-dummy.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -144,12 +144,12 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is begin null; end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is begin null; end Finalize_Lock; @@ -204,13 +204,14 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is begin null; end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) is begin null; end Initialize_Lock; @@ -264,7 +265,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Ceiling_Violation := False; end Read_Lock; @@ -343,7 +345,7 @@ package body System.Task_Primitives.Operations is -- Sleep -- ----------- - procedure Sleep (Self_ID : Task_Id; Reason : System.Tasking.Task_States) is + procedure Sleep (Self_ID : Task_Id; Reason : System.Tasking.Task_States) is begin null; end Sleep; @@ -412,12 +414,13 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is begin null; end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is begin null; end Unlock; @@ -448,13 +451,14 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Ceiling_Violation := False; end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is begin diff --git a/gcc/ada/s-taprop-hpux-dce.adb b/gcc/ada/s-taprop-hpux-dce.adb index f463d8f..4b43f1c 100644 --- a/gcc/ada/s-taprop-hpux-dce.adb +++ b/gcc/ada/s-taprop-hpux-dce.adb @@ -239,7 +239,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is Attributes : aliased pthread_mutexattr_t; Result : Interfaces.C.int; @@ -265,7 +265,8 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) is pragma Unreferenced (Level); Attributes : aliased pthread_mutexattr_t; @@ -295,14 +296,14 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L.L'Access); pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); @@ -313,7 +314,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; begin @@ -330,7 +333,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; Global_Lock : Boolean := False) + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; begin @@ -353,7 +356,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -362,14 +366,16 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_unlock (L.L'Access); pragma Assert (Result = 0); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin if not Single_Lock or else Global_Lock then diff --git a/gcc/ada/s-taprop-irix.adb b/gcc/ada/s-taprop-irix.adb index a1bc9f0..4b7b170 100644 --- a/gcc/ada/s-taprop-irix.adb +++ b/gcc/ada/s-taprop-irix.adb @@ -238,7 +238,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is Attributes : aliased pthread_mutexattr_t; Result : Interfaces.C.int; @@ -273,7 +273,9 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Unreferenced (Level); Attributes : aliased pthread_mutexattr_t; @@ -314,14 +316,14 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); @@ -332,7 +334,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; begin Result := pthread_mutex_lock (L); @@ -344,7 +348,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; @@ -368,7 +372,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -377,14 +382,16 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_unlock (L); pragma Assert (Result = 0); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin diff --git a/gcc/ada/s-taprop-linux.adb b/gcc/ada/s-taprop-linux.adb index a41eb3f..c945f5c 100644 --- a/gcc/ada/s-taprop-linux.adb +++ b/gcc/ada/s-taprop-linux.adb @@ -267,7 +267,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is pragma Unreferenced (Prio); @@ -283,7 +283,9 @@ package body System.Task_Primitives.Operations is end if; end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Unreferenced (Level); Result : Interfaces.C.int; @@ -302,14 +304,14 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); @@ -320,7 +322,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; begin Result := pthread_mutex_lock (L); @@ -332,7 +336,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; @@ -356,7 +360,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -365,14 +370,16 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_unlock (L); pragma Assert (Result = 0); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin if not Single_Lock or else Global_Lock then diff --git a/gcc/ada/s-taprop-lynxos.adb b/gcc/ada/s-taprop-lynxos.adb index 881a0ce..272d898 100644 --- a/gcc/ada/s-taprop-lynxos.adb +++ b/gcc/ada/s-taprop-lynxos.adb @@ -256,7 +256,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is Attributes : aliased pthread_mutexattr_t; Result : Interfaces.C.int; @@ -284,7 +284,9 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Unreferenced (Level); Attributes : aliased pthread_mutexattr_t; @@ -314,14 +316,14 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L.Mutex'Access); pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); @@ -332,7 +334,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; T : constant Task_Id := Self; @@ -361,7 +365,7 @@ package body System.Task_Primitives.Operations is -- No tricks on RTS_Locks procedure Write_Lock - (L : access RTS_Lock; Global_Lock : Boolean := False) + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; begin @@ -384,7 +388,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -393,7 +398,7 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; T : constant Task_Id := Self; @@ -408,7 +413,9 @@ package body System.Task_Primitives.Operations is end if; end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin if not Single_Lock or else Global_Lock then @@ -432,7 +439,7 @@ package body System.Task_Primitives.Operations is procedure Sleep (Self_ID : Task_Id; - Reason : System.Tasking.Task_States) + Reason : System.Tasking.Task_States) is pragma Unreferenced (Reason); Result : Interfaces.C.int; diff --git a/gcc/ada/s-taprop-mingw.adb b/gcc/ada/s-taprop-mingw.adb index 6a6cd17..5656932 100644 --- a/gcc/ada/s-taprop-mingw.adb +++ b/gcc/ada/s-taprop-mingw.adb @@ -168,23 +168,23 @@ package body System.Task_Primitives.Operations is -- Condition Variable Functions -- ---------------------------------- - procedure Initialize_Cond (Cond : access Condition_Variable); + procedure Initialize_Cond (Cond : not null access Condition_Variable); -- Initialize given condition variable Cond - procedure Finalize_Cond (Cond : access Condition_Variable); + procedure Finalize_Cond (Cond : not null access Condition_Variable); -- Finalize given condition variable Cond - procedure Cond_Signal (Cond : access Condition_Variable); + procedure Cond_Signal (Cond : not null access Condition_Variable); -- Signal condition variable Cond procedure Cond_Wait - (Cond : access Condition_Variable; - L : access RTS_Lock); + (Cond : not null access Condition_Variable; + L : not null access RTS_Lock); -- Wait on conditional variable Cond, using lock L procedure Cond_Timed_Wait - (Cond : access Condition_Variable; - L : access RTS_Lock; + (Cond : not null access Condition_Variable; + L : not null access RTS_Lock; Rel_Time : Duration; Timed_Out : out Boolean; Status : out Integer); @@ -198,7 +198,7 @@ package body System.Task_Primitives.Operations is -- Initialize_Cond -- --------------------- - procedure Initialize_Cond (Cond : access Condition_Variable) is + procedure Initialize_Cond (Cond : not null access Condition_Variable) is hEvent : HANDLE; begin @@ -214,7 +214,7 @@ package body System.Task_Primitives.Operations is -- No such problem here, DosCloseEventSem has been derived. -- What does such refer to in above comment??? - procedure Finalize_Cond (Cond : access Condition_Variable) is + procedure Finalize_Cond (Cond : not null access Condition_Variable) is Result : BOOL; begin Result := CloseHandle (HANDLE (Cond.all)); @@ -225,7 +225,7 @@ package body System.Task_Primitives.Operations is -- Cond_Signal -- ----------------- - procedure Cond_Signal (Cond : access Condition_Variable) is + procedure Cond_Signal (Cond : not null access Condition_Variable) is Result : BOOL; begin Result := SetEvent (HANDLE (Cond.all)); @@ -243,8 +243,8 @@ package body System.Task_Primitives.Operations is -- L is locked. procedure Cond_Wait - (Cond : access Condition_Variable; - L : access RTS_Lock) + (Cond : not null access Condition_Variable; + L : not null access RTS_Lock) is Result : DWORD; Result_Bool : BOOL; @@ -276,8 +276,8 @@ package body System.Task_Primitives.Operations is -- L is locked. procedure Cond_Timed_Wait - (Cond : access Condition_Variable; - L : access RTS_Lock; + (Cond : not null access Condition_Variable; + L : not null access RTS_Lock; Rel_Time : Duration; Timed_Out : out Boolean; Status : out Integer) @@ -385,7 +385,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is begin InitializeCriticalSection (L.Mutex'Access); @@ -393,7 +393,9 @@ package body System.Task_Primitives.Operations is L.Priority := Prio; end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Unreferenced (Level); begin InitializeCriticalSection (CRITICAL_SECTION (L.all)'Unrestricted_Access); @@ -403,12 +405,12 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is begin DeleteCriticalSection (L.Mutex'Access); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is begin DeleteCriticalSection (CRITICAL_SECTION (L.all)'Unrestricted_Access); end Finalize_Lock; @@ -417,7 +419,8 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin L.Owner_Priority := Get_Priority (Self); @@ -432,7 +435,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is begin @@ -453,7 +456,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -462,12 +466,13 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is begin LeaveCriticalSection (L.Mutex'Access); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is begin if not Single_Lock or else Global_Lock then LeaveCriticalSection (CRITICAL_SECTION (L.all)'Unrestricted_Access); diff --git a/gcc/ada/s-taprop-posix.adb b/gcc/ada/s-taprop-posix.adb index f8d1f0d..315db0e 100644 --- a/gcc/ada/s-taprop-posix.adb +++ b/gcc/ada/s-taprop-posix.adb @@ -287,7 +287,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is Attributes : aliased pthread_mutexattr_t; Result : Interfaces.C.int; @@ -327,7 +327,9 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Warnings (Off, Level); Attributes : aliased pthread_mutexattr_t; @@ -372,7 +374,7 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin @@ -380,7 +382,7 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin @@ -392,7 +394,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; begin @@ -405,7 +409,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; @@ -431,7 +435,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -440,7 +445,7 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin @@ -448,7 +453,9 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin @@ -474,7 +481,7 @@ package body System.Task_Primitives.Operations is procedure Sleep (Self_ID : Task_Id; - Reason : System.Tasking.Task_States) + Reason : System.Tasking.Task_States) is pragma Warnings (Off, Reason); @@ -949,12 +956,19 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); if T.Common.Task_Info /= Default_Scope then + case T.Common.Task_Info is + when System.Task_Info.Process_Scope => + Result := pthread_attr_setscope + (Attributes'Access, PTHREAD_SCOPE_PROCESS); + + when System.Task_Info.System_Scope => + Result := pthread_attr_setscope + (Attributes'Access, PTHREAD_SCOPE_SYSTEM); - -- We are assuming that Scope_Type has the same values than the - -- corresponding C macros + when System.Task_Info.Default_Scope => + Result := 0; + end case; - Result := pthread_attr_setscope - (Attributes'Access, Task_Info_Type'Pos (T.Common.Task_Info)); pragma Assert (Result = 0); end if; diff --git a/gcc/ada/s-taprop-solaris.adb b/gcc/ada/s-taprop-solaris.adb index 9da267e..c17bf6d 100644 --- a/gcc/ada/s-taprop-solaris.adb +++ b/gcc/ada/s-taprop-solaris.adb @@ -168,8 +168,8 @@ package body System.Task_Primitives.Operations is procedure Abort_Handler (Sig : Signal; - Code : access siginfo_t; - Context : access ucontext_t); + Code : not null access siginfo_t; + Context : not null access ucontext_t); -- Target-dependent binding of inter-thread Abort signal to -- the raising of the Abort_Signal exception. -- See also comments in 7staprop.adb @@ -259,8 +259,8 @@ package body System.Task_Primitives.Operations is procedure Abort_Handler (Sig : Signal; - Code : access siginfo_t; - Context : access ucontext_t) + Code : not null access siginfo_t; + Context : not null access ucontext_t) is pragma Unreferenced (Sig); pragma Unreferenced (Code); @@ -535,7 +535,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is Result : Interfaces.C.int; @@ -555,7 +555,7 @@ package body System.Task_Primitives.Operations is end Initialize_Lock; procedure Initialize_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Level : Lock_Level) is Result : Interfaces.C.int; @@ -575,7 +575,7 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin @@ -584,7 +584,7 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin @@ -597,7 +597,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; begin @@ -637,7 +639,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; @@ -667,7 +669,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -676,7 +679,7 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin @@ -700,7 +703,9 @@ package body System.Task_Primitives.Operations is end if; end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin if not Single_Lock or else Global_Lock then diff --git a/gcc/ada/s-taprop-tru64.adb b/gcc/ada/s-taprop-tru64.adb index 28e1a4a..cf959e3 100644 --- a/gcc/ada/s-taprop-tru64.adb +++ b/gcc/ada/s-taprop-tru64.adb @@ -242,7 +242,7 @@ package body System.Task_Primitives.Operations is procedure Initialize_Lock (Prio : System.Any_Priority; - L : access Lock) + L : not null access Lock) is Attributes : aliased pthread_mutexattr_t; Result : Interfaces.C.int; @@ -271,7 +271,9 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Unreferenced (Level); Attributes : aliased pthread_mutexattr_t; @@ -301,14 +303,14 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L.L'Access); pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); @@ -319,7 +321,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Result : Interfaces.C.int; Self_ID : Task_Id; All_Tasks_Link : Task_Id; @@ -350,7 +354,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; Global_Lock : Boolean := False) + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; begin @@ -373,7 +377,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -382,14 +387,16 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_unlock (L.L'Access); pragma Assert (Result = 0); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin if not Single_Lock or else Global_Lock then diff --git a/gcc/ada/s-taprop-vms.adb b/gcc/ada/s-taprop-vms.adb index 7509236..f96534b 100644 --- a/gcc/ada/s-taprop-vms.adb +++ b/gcc/ada/s-taprop-vms.adb @@ -197,7 +197,9 @@ package body System.Task_Primitives.Operations is -- Therefore rasing Storage_Error in the following routines -- should be able to be handled safely. - procedure Initialize_Lock (Prio : System.Any_Priority; L : access Lock) is + procedure Initialize_Lock + (Prio : System.Any_Priority; L : not null access Lock) + is Attributes : aliased pthread_mutexattr_t; Result : Interfaces.C.int; @@ -223,7 +225,9 @@ package body System.Task_Primitives.Operations is pragma Assert (Result = 0); end Initialize_Lock; - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level) is + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level) + is pragma Unreferenced (Level); Attributes : aliased pthread_mutexattr_t; @@ -266,14 +270,14 @@ package body System.Task_Primitives.Operations is -- Finalize_Lock -- ------------------- - procedure Finalize_Lock (L : access Lock) is + procedure Finalize_Lock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L.L'Access); pragma Assert (Result = 0); end Finalize_Lock; - procedure Finalize_Lock (L : access RTS_Lock) is + procedure Finalize_Lock (L : not null access RTS_Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_destroy (L); @@ -284,7 +288,9 @@ package body System.Task_Primitives.Operations is -- Write_Lock -- ---------------- - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) + is Self_ID : constant Task_Id := Self; All_Tasks_Link : constant Task_Id := Self.Common.All_Tasks_Link; Current_Prio : System.Any_Priority; @@ -312,7 +318,7 @@ package body System.Task_Primitives.Operations is end Write_Lock; procedure Write_Lock - (L : access RTS_Lock; + (L : not null access RTS_Lock; Global_Lock : Boolean := False) is Result : Interfaces.C.int; @@ -336,7 +342,8 @@ package body System.Task_Primitives.Operations is -- Read_Lock -- --------------- - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean) is + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean) is begin Write_Lock (L, Ceiling_Violation); end Read_Lock; @@ -345,14 +352,16 @@ package body System.Task_Primitives.Operations is -- Unlock -- ------------ - procedure Unlock (L : access Lock) is + procedure Unlock (L : not null access Lock) is Result : Interfaces.C.int; begin Result := pthread_mutex_unlock (L.L'Access); pragma Assert (Result = 0); end Unlock; - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False) is + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False) + is Result : Interfaces.C.int; begin if not Single_Lock or else Global_Lock then diff --git a/gcc/ada/s-taprop.ads b/gcc/ada/s-taprop.ads index bf98c5c..aca25c3 100644 --- a/gcc/ada/s-taprop.ads +++ b/gcc/ada/s-taprop.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -137,8 +137,10 @@ package System.Task_Primitives.Operations is -- call specified below. See locking rules in System.Tasking (spec) for -- more details. - procedure Initialize_Lock (Prio : System.Any_Priority; L : access Lock); - procedure Initialize_Lock (L : access RTS_Lock; Level : Lock_Level); + procedure Initialize_Lock + (Prio : System.Any_Priority; L : not null access Lock); + procedure Initialize_Lock + (L : not null access RTS_Lock; Level : Lock_Level); pragma Inline (Initialize_Lock); -- Initialize a lock object. -- @@ -160,15 +162,18 @@ package System.Task_Primitives.Operations is -- -- These operations raise Storage_Error if a lack of storage is detected. - procedure Finalize_Lock (L : access Lock); - procedure Finalize_Lock (L : access RTS_Lock); + procedure Finalize_Lock (L : not null access Lock); + procedure Finalize_Lock (L : not null access RTS_Lock); pragma Inline (Finalize_Lock); -- Finalize a lock object, freeing any resources allocated by the -- corresponding Initialize_Lock operation. - procedure Write_Lock (L : access Lock; Ceiling_Violation : out Boolean); - procedure Write_Lock (L : access RTS_Lock; Global_Lock : Boolean := False); - procedure Write_Lock (T : ST.Task_Id); + procedure Write_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean); + procedure Write_Lock + (L : not null access RTS_Lock; Global_Lock : Boolean := False); + procedure Write_Lock + (T : ST.Task_Id); pragma Inline (Write_Lock); -- Lock a lock object for write access. After this operation returns, -- the calling task holds write permission for the lock object. No other @@ -192,7 +197,8 @@ package System.Task_Primitives.Operations is -- holds T's lock, or has interrupt-level priority. Finalization of the -- per-task lock is implicit in Exit_Task. - procedure Read_Lock (L : access Lock; Ceiling_Violation : out Boolean); + procedure Read_Lock + (L : not null access Lock; Ceiling_Violation : out Boolean); pragma Inline (Read_Lock); -- Lock a lock object for read access. After this operation returns, -- the calling task has non-exclusive read permission for the logical @@ -214,9 +220,12 @@ package System.Task_Primitives.Operations is -- potential write access, and (3) implementations of priority ceiling -- locking that make a reader-writer distinction have higher overhead. - procedure Unlock (L : access Lock); - procedure Unlock (L : access RTS_Lock; Global_Lock : Boolean := False); - procedure Unlock (T : ST.Task_Id); + procedure Unlock + (L : not null access Lock); + procedure Unlock + (L : not null access RTS_Lock; Global_Lock : Boolean := False); + procedure Unlock + (T : ST.Task_Id); pragma Inline (Unlock); -- Unlock a locked lock object. -- diff --git a/gcc/ada/s-tarest.ads b/gcc/ada/s-tarest.ads index 3a6b7c5..1525bd9 100644 --- a/gcc/ada/s-tarest.ads +++ b/gcc/ada/s-tarest.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNARL is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -144,10 +144,10 @@ package System.Tasking.Restricted.Stages is -- Priority is the task's priority (assumed to be in the -- System.Any_Priority'Range) -- - -- Stack_Address is the start address of the stack associated to the - -- task, in case it has been preallocated by the compiler; it is equal - -- to Null_Address when the stack needs to be allocated by the - -- underlying operating system. + -- Stack_Address is the start address of the stack associated to the task, + -- in case it has been preallocated by the compiler; it is equal to + -- Null_Address when the stack needs to be allocated by the underlying + -- operating system. -- -- Size is the stack size of the task to create -- @@ -156,21 +156,19 @@ package System.Tasking.Restricted.Stages is -- -- State is the compiler generated task's procedure body -- - -- Discriminants is a pointer to a limited record whose discriminants - -- are those of the task to create. This parameter should be passed as - -- the single argument to State. + -- Discriminants is a pointer to a limited record whose discriminants are + -- those of the task to create. This parameter should be passed as the + -- single argument to State. -- -- Elaborated is a pointer to a Boolean that must be set to true on exit -- if the task could be sucessfully elaborated. -- -- Chain is a linked list of task that needs to be created. On exit, - -- Created_Task.Activation_Link will be Chain.T_ID, and Chain.T_ID - -- will be Created_Task (e.g the created task will be linked at the front - -- of Chain). + -- Created_Task.Activation_Link will be Chain.T_ID, and Chain.T_ID will be + -- Created_Task (the created task will be linked at the front of Chain). -- - -- Task_Image is a string created by the compiler that the - -- run time can store to ease the debugging and the - -- Ada.Task_Identification facility. + -- Task_Image is a string created by the compiler that the run time can + -- store to ease the debugging and the Ada.Task_Identification facility. -- -- Created_Task is the resulting task. -- @@ -188,29 +186,28 @@ package System.Tasking.Restricted.Stages is -- version of this procedure had code to reverse the chain, so as to -- activate the tasks in the order of declaration. This might be nice, but -- it is not needed if priority-based scheduling is supported, since all - -- the activated tasks synchronize on the activators lock before they - -- start activating and so they should start activating in priority order. + -- the activated tasks synchronize on the activators lock before they start + -- activating and so they should start activating in priority order. procedure Complete_Restricted_Activation; - -- Compiler interface only. Do not call from within the RTS. - -- This should be called from the task body at the end of - -- the elaboration code for its declarative part. - -- Decrement the count of tasks to be activated by the activator and - -- wake it up so it can check to see if all tasks have been activated. - -- Except for the environment task, which should never call this procedure, - -- T.Activator should only be null iff T has completed activation. + -- Compiler interface only. Do not call from within the RTS. This should be + -- called from the task body at the end of the elaboration code for its + -- declarative part. Decrement the count of tasks to be activated by the + -- activator and wake it up so it can check to see if all tasks have been + -- activated. Except for the environment task, which should never call this + -- procedure, T.Activator should only be null iff T has completed + -- activation. procedure Complete_Restricted_Task; - -- Compiler interface only. Do not call from within the RTS. - -- This should be called from an implicit at-end handler - -- associated with the task body, when it completes. - -- From this point, the current task will become not callable. - -- If the current task have not completed activation, this should be done - -- now in order to wake up the activator (the environment task). + -- Compiler interface only. Do not call from within the RTS. This should be + -- called from an implicit at-end handler associated with the task body, + -- when it completes. From this point, the current task will become not + -- callable. If the current task have not completed activation, this should + -- be done now in order to wake up the activator (the environment task). function Restricted_Terminated (T : Task_Id) return Boolean; - -- Compiler interface only. Do not call from within the RTS. - -- This is called by the compiler to implement the 'Terminated attribute. + -- Compiler interface only. Do not call from within the RTS. This is called + -- by the compiler to implement the 'Terminated attribute. -- -- source code: -- T1'Terminated diff --git a/gcc/ada/s-traceb-hpux.adb b/gcc/ada/s-traceb-hpux.adb index 5457cb1..c2718af 100644 --- a/gcc/ada/s-traceb-hpux.adb +++ b/gcc/ada/s-traceb-hpux.adb @@ -7,7 +7,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1999-2005, AdaCore -- +-- Copyright (C) 1999-2006, AdaCore -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -228,17 +228,18 @@ package body System.Traceback is -- of shared library code, the offset from the beginning of the library -- is expected as Pc. - procedure U_init_frame_record (Frame : access CFD); + procedure U_init_frame_record (Frame : not null access CFD); pragma Import (C, U_init_frame_record, "U_init_frame_record"); - procedure U_prep_frame_rec_for_unwind (Frame : access CFD); + procedure U_prep_frame_rec_for_unwind (Frame : not null access CFD); pragma Import (C, U_prep_frame_rec_for_unwind, "U_prep_frame_rec_for_unwind"); -- Fetch the description data of the frame in which these two procedures -- are called. - function U_get_u_rlo (Cur : access CFD; Prev : access PFD) return Integer; + function U_get_u_rlo + (Cur : not null access CFD; Prev : not null access PFD) return Integer; pragma Import (C, U_get_u_rlo, "U_IS_STUB_OR_CALLX"); -- From a complete current frame with a return location possibly located -- into a linker generated stub, and basic information about the previous @@ -251,8 +252,8 @@ package body System.Traceback is -- in a shared library, or something non null otherwise. function U_get_previous_frame_x - (current_frame : access CFD; - previous_frame : access PFD; + (current_frame : not null access CFD; + previous_frame : not null access PFD; previous_size : Integer) return Integer; pragma Import (C, U_get_previous_frame_x, "U_get_previous_frame_x"); -- Fetch the data describing the "previous" frame relatively to the @@ -316,15 +317,15 @@ package body System.Traceback is -- The backtracing process needs a set of subprograms : - function UWD_For_RLO_Of (Frame : access CFD) return UWD_Ptr; + function UWD_For_RLO_Of (Frame : not null access CFD) return UWD_Ptr; -- Return an access to the unwind descriptor for the caller of -- a given frame, using only the provided return location. - function UWD_For_Caller_Of (Frame : access CFD) return UWD_Ptr; + function UWD_For_Caller_Of (Frame : not null access CFD) return UWD_Ptr; -- Return an access to the unwind descriptor for the user code caller -- of a given frame, or null if the information is not available. - function Pop_Frame (Frame : access CFD) return Boolean; + function Pop_Frame (Frame : not null access CFD) return Boolean; -- Update the provided machine state structure so that it reflects -- the state one call frame "above" the initial one. -- @@ -332,7 +333,8 @@ package body System.Traceback is -- Failure typically occurs when the top of the call stack has been -- reached. - function Prepare_For_Unwind_Of (Frame : access CFD) return Boolean; + function Prepare_For_Unwind_Of + (Frame : not null access CFD) return Boolean; -- Perform the necessary adaptations to the machine state before -- calling the unwinder. Currently used for the specific case of -- dynamically sized previous frames. @@ -345,7 +347,7 @@ package body System.Traceback is -- Pop_Frame -- --------------- - function Pop_Frame (Frame : access CFD) return Boolean is + function Pop_Frame (Frame : not null access CFD) return Boolean is Up_Frame : aliased PFD; State_Ready : Boolean; @@ -391,7 +393,8 @@ package body System.Traceback is -- Prepare_State_For_Unwind_Of -- --------------------------------- - function Prepare_For_Unwind_Of (Frame : access CFD) return Boolean + function Prepare_For_Unwind_Of + (Frame : not null access CFD) return Boolean is Caller_UWD : UWD_Ptr; FP_Adjustment : Integer; @@ -453,7 +456,7 @@ package body System.Traceback is -- UWD_For_Caller_Of -- ----------------------- - function UWD_For_Caller_Of (Frame : access CFD) return UWD_Ptr + function UWD_For_Caller_Of (Frame : not null access CFD) return UWD_Ptr is UWD_Access : UWD_Ptr; @@ -499,7 +502,7 @@ package body System.Traceback is -- UWD_For_RLO_Of -- -------------------- - function UWD_For_RLO_Of (Frame : access CFD) return UWD_Ptr + function UWD_For_RLO_Of (Frame : not null access CFD) return UWD_Ptr is UWD_Address : Address; diff --git a/gcc/ada/s-valdec.adb b/gcc/ada/s-valdec.adb index dbac049..3af5cad 100644 --- a/gcc/ada/s-valdec.adb +++ b/gcc/ada/s-valdec.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -46,7 +46,7 @@ package body System.Val_Dec is function Scan_Decimal (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Scale : Integer) return Integer is diff --git a/gcc/ada/s-valdec.ads b/gcc/ada/s-valdec.ads index df36ebd..61d9c07 100644 --- a/gcc/ada/s-valdec.ads +++ b/gcc/ada/s-valdec.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -40,7 +40,7 @@ package System.Val_Dec is function Scan_Decimal (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Scale : Integer) return Integer; -- This function scans the string starting at Str (Ptr.all) for a valid diff --git a/gcc/ada/s-valint.adb b/gcc/ada/s-valint.adb index 60c761f..1e2524b 100644 --- a/gcc/ada/s-valint.adb +++ b/gcc/ada/s-valint.adb @@ -43,7 +43,7 @@ package body System.Val_Int is function Scan_Integer (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Integer is Uval : Unsigned; diff --git a/gcc/ada/s-valint.ads b/gcc/ada/s-valint.ads index 6413a34..8b8a4c7 100644 --- a/gcc/ada/s-valint.ads +++ b/gcc/ada/s-valint.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -39,7 +39,7 @@ package System.Val_Int is function Scan_Integer (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Integer; -- This function scans the string starting at Str (Ptr.all) for a valid -- integer according to the syntax described in (RM 3.5(43)). The substring diff --git a/gcc/ada/s-vallld.adb b/gcc/ada/s-vallld.adb index 958fb96..95a7271 100644 --- a/gcc/ada/s-vallld.adb +++ b/gcc/ada/s-vallld.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -45,7 +45,7 @@ package body System.Val_LLD is function Scan_Long_Long_Decimal (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Scale : Integer) return Long_Long_Integer is diff --git a/gcc/ada/s-vallld.ads b/gcc/ada/s-vallld.ads index 7022669..caed56e 100644 --- a/gcc/ada/s-vallld.ads +++ b/gcc/ada/s-vallld.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -40,7 +40,7 @@ package System.Val_LLD is function Scan_Long_Long_Decimal (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Scale : Integer) return Long_Long_Integer; -- This function scans the string starting at Str (Ptr.all) for a valid diff --git a/gcc/ada/s-vallli.adb b/gcc/ada/s-vallli.adb index 850bdf1..20f160c 100644 --- a/gcc/ada/s-vallli.adb +++ b/gcc/ada/s-vallli.adb @@ -43,7 +43,7 @@ package body System.Val_LLI is function Scan_Long_Long_Integer (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Long_Long_Integer is Uval : Long_Long_Unsigned; diff --git a/gcc/ada/s-vallli.ads b/gcc/ada/s-vallli.ads index e83fd8f..c5c1bf9 100644 --- a/gcc/ada/s-vallli.ads +++ b/gcc/ada/s-vallli.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -39,7 +39,7 @@ package System.Val_LLI is function Scan_Long_Long_Integer (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Long_Long_Integer; -- This function scans the string starting at Str (Ptr.all) for a valid -- integer according to the syntax described in (RM 3.5(43)). The substring diff --git a/gcc/ada/s-valllu.adb b/gcc/ada/s-valllu.adb index ab5752f..abbbaa4 100644 --- a/gcc/ada/s-valllu.adb +++ b/gcc/ada/s-valllu.adb @@ -42,7 +42,7 @@ package body System.Val_LLU is function Scan_Raw_Long_Long_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Long_Long_Unsigned is P : Integer; @@ -271,7 +271,7 @@ package body System.Val_LLU is function Scan_Long_Long_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Long_Long_Unsigned is Start : Positive; diff --git a/gcc/ada/s-valllu.ads b/gcc/ada/s-valllu.ads index e6c740f..88a6e4c 100644 --- a/gcc/ada/s-valllu.ads +++ b/gcc/ada/s-valllu.ads @@ -41,7 +41,7 @@ package System.Val_LLU is function Scan_Raw_Long_Long_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return System.Unsigned_Types.Long_Long_Unsigned; -- This function scans the string starting at Str (Ptr.all) for a valid -- integer according to the syntax described in (RM 3.5(43)). The substring @@ -71,7 +71,7 @@ package System.Val_LLU is function Scan_Long_Long_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return System.Unsigned_Types.Long_Long_Unsigned; -- Same as Scan_Raw_Long_Long_Unsigned, except scans optional leading -- blanks, and an optional leading plus sign. diff --git a/gcc/ada/s-valrea.adb b/gcc/ada/s-valrea.adb index e277e38..60f4873 100644 --- a/gcc/ada/s-valrea.adb +++ b/gcc/ada/s-valrea.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -42,7 +42,7 @@ package body System.Val_Real is function Scan_Real (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Long_Long_Float is procedure Reset; diff --git a/gcc/ada/s-valrea.ads b/gcc/ada/s-valrea.ads index d3b0e33..0c3510d 100644 --- a/gcc/ada/s-valrea.ads +++ b/gcc/ada/s-valrea.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -36,7 +36,7 @@ package System.Val_Real is function Scan_Real (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Long_Long_Float; -- This function scans the string starting at Str (Ptr.all) for a valid -- real literal according to the syntax described in (RM 3.5(43)). The diff --git a/gcc/ada/s-valuns.adb b/gcc/ada/s-valuns.adb index d9d7940..3d09321 100644 --- a/gcc/ada/s-valuns.adb +++ b/gcc/ada/s-valuns.adb @@ -42,7 +42,7 @@ package body System.Val_Uns is function Scan_Raw_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Unsigned is P : Integer; @@ -268,7 +268,7 @@ package body System.Val_Uns is function Scan_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return Unsigned is Start : Positive; diff --git a/gcc/ada/s-valuns.ads b/gcc/ada/s-valuns.ads index 7503ca4..80695dd 100644 --- a/gcc/ada/s-valuns.ads +++ b/gcc/ada/s-valuns.ads @@ -41,7 +41,7 @@ package System.Val_Uns is function Scan_Raw_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return System.Unsigned_Types.Unsigned; -- This function scans the string starting at Str (Ptr.all) for a valid -- integer according to the syntax described in (RM 3.5(43)). The substring @@ -71,7 +71,7 @@ package System.Val_Uns is function Scan_Unsigned (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer) return System.Unsigned_Types.Unsigned; -- Same as Scan_Raw_Unsigned, except scans optional leading -- blanks, and an optional leading plus sign. diff --git a/gcc/ada/s-valuti.adb b/gcc/ada/s-valuti.adb index 258620e..f2ed321 100644 --- a/gcc/ada/s-valuti.adb +++ b/gcc/ada/s-valuti.adb @@ -81,7 +81,7 @@ package body System.Val_Util is function Scan_Exponent (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Real : Boolean := False) return Integer is @@ -165,7 +165,7 @@ package body System.Val_Util is procedure Scan_Plus_Sign (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Start : out Positive) is @@ -209,7 +209,7 @@ package body System.Val_Util is procedure Scan_Sign (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Minus : out Boolean; Start : out Positive) @@ -286,7 +286,7 @@ package body System.Val_Util is procedure Scan_Underscore (Str : String; P : in out Natural; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Ext : Boolean) is diff --git a/gcc/ada/s-valuti.ads b/gcc/ada/s-valuti.ads index 944b945..90422e8 100644 --- a/gcc/ada/s-valuti.ads +++ b/gcc/ada/s-valuti.ads @@ -49,7 +49,7 @@ package System.Val_Util is procedure Scan_Sign (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Minus : out Boolean; Start : out Positive); @@ -72,7 +72,7 @@ package System.Val_Util is procedure Scan_Plus_Sign (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Start : out Positive); -- Same as Scan_Sign, but allows only plus, not minus. @@ -80,7 +80,7 @@ package System.Val_Util is function Scan_Exponent (Str : String; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Real : Boolean := False) return Integer; -- Called to scan a possible exponent. Str, Ptr, Max are as described above @@ -101,7 +101,7 @@ package System.Val_Util is procedure Scan_Underscore (Str : String; P : in out Natural; - Ptr : access Integer; + Ptr : not null access Integer; Max : Integer; Ext : Boolean); -- Called if an underscore is encountered while scanning digits. Str (P) diff --git a/gcc/ada/sequenio.ads b/gcc/ada/sequenio.ads index 8ea1890..7fdf72d 100644 --- a/gcc/ada/sequenio.ads +++ b/gcc/ada/sequenio.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/sinput-c.adb b/gcc/ada/sinput-c.adb index 39e2332..f762602 100644 --- a/gcc/ada/sinput-c.adb +++ b/gcc/ada/sinput-c.adb @@ -24,12 +24,13 @@ -- -- ------------------------------------------------------------------------------ +with Namet; use Namet; +with Opt; use Opt; +with System; use System; + with Ada.Unchecked_Conversion; with GNAT.OS_Lib; use GNAT.OS_Lib; -with Namet; use Namet; -with Opt; use Opt; -with System; use System; package body Sinput.C is diff --git a/gcc/ada/text_io.ads b/gcc/ada/text_io.ads index f51e1c2..9c213e9 100644 --- a/gcc/ada/text_io.ads +++ b/gcc/ada/text_io.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/unchconv.ads b/gcc/ada/unchconv.ads index 3ffd431..7937020 100644 --- a/gcc/ada/unchconv.ads +++ b/gcc/ada/unchconv.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/unchdeal.ads b/gcc/ada/unchdeal.ads index 663e5e5..4735a52 100644 --- a/gcc/ada/unchdeal.ads +++ b/gcc/ada/unchdeal.ads @@ -6,7 +6,7 @@ -- -- -- S p e c -- -- -- --- This specification is adapted from the Ada Reference Manual for use with -- +-- This specification is derived from the Ada Reference Manual for use with -- -- GNAT. In accordance with the copyright of that document, you can freely -- -- copy and modify this specification, provided that if you redistribute a -- -- modified version, any changes that you have made are clearly indicated. -- diff --git a/gcc/ada/xref_lib.adb b/gcc/ada/xref_lib.adb index 004b277..d48a994 100644 --- a/gcc/ada/xref_lib.adb +++ b/gcc/ada/xref_lib.adb @@ -53,7 +53,7 @@ package body Xref_Lib is -- the .ali files procedure Parse_EOL - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Skip_Continuation_Line : Boolean := False); -- On return Source (Ptr) is the first character of the next line @@ -98,7 +98,7 @@ package body Xref_Lib is -- The entity will never be reported as unreferenced by gnatxref -u procedure Parse_Token - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Token_Ptr : out Positive); -- Skips any separators and stores the start of the token in Token_Ptr. @@ -107,7 +107,7 @@ package body Xref_Lib is -- and ASCII.HT. Parse_Token will never skip to the next line. procedure Parse_Number - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Number : out Natural); -- Skips any separators and parses Source upto the first character that @@ -694,7 +694,7 @@ package body Xref_Lib is --------------- procedure Parse_EOL - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Skip_Continuation_Line : Boolean := False) is @@ -1143,7 +1143,7 @@ package body Xref_Lib is ------------------ procedure Parse_Number - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Number : out Natural) is @@ -1167,7 +1167,7 @@ package body Xref_Lib is ----------------- procedure Parse_Token - (Source : access String; + (Source : not null access String; Ptr : in out Positive; Token_Ptr : out Positive) is |