2011-08-04 Thomas Quinot <quinot@adacore.com>
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Aug 2011 08:32:54 +0000 (08:32 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 4 Aug 2011 08:32:54 +0000 (08:32 +0000)
PR ada/47880
* s-pooloc.adb (Deallocate): Fix the case of deallocating the only
allocated object.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177332 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/s-pooloc.adb

index 37370e5..2a161f4 100644 (file)
@@ -6,7 +6,7 @@
 --                                                                          --
 --                                 B o d y                                  --
 --                                                                          --
---          Copyright (C) 1992-2009, Free Software Foundation, Inc.         --
+--          Copyright (C) 1992-2011, 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- --
@@ -111,7 +111,10 @@ package body System.Pool_Local is
    begin
       if Prev (Allocated).all = Null_Address then
          Pool.First := Next (Allocated).all;
-         Prev (Pool.First).all := Null_Address;
+
+         if Pool.First /= Null_Address then
+            Prev (Pool.First).all := Null_Address;
+         end if;
       else
          Next (Prev (Allocated).all).all := Next (Allocated).all;
       end if;