From a25f5ee669dd1e1b1e4e53b501b0ff416601c52c Mon Sep 17 00:00:00 2001 From: Thomas Quinot Date: Thu, 4 Aug 2011 10:32:54 +0200 Subject: [PATCH] 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 --- gcc/ada/s-pooloc.adb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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; -- 2.30.2