From: Thomas Quinot Date: Thu, 4 Aug 2011 08:32:54 +0000 (+0200) Subject: re PR ada/47880 (Free in System.Pool_Local raises Storage_Error) X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a25f5ee669dd1e1b1e4e53b501b0ff416601c52c;p=gcc.git re PR ada/47880 (Free in System.Pool_Local raises Storage_Error) 2011-08-04 Thomas Quinot PR ada/47880 * s-pooloc.adb (Deallocate): Fix the case of deallocating the only allocated object. From-SVN: r177332 --- diff --git a/gcc/ada/s-pooloc.adb b/gcc/ada/s-pooloc.adb index 37370e50284..2a161f49de3 100644 --- a/gcc/ada/s-pooloc.adb +++ b/gcc/ada/s-pooloc.adb @@ -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;