diff options
author | Thomas Quinot <quinot@adacore.com> | 2011-08-04 10:32:54 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2011-08-04 10:32:54 +0200 |
commit | a25f5ee669dd1e1b1e4e53b501b0ff416601c52c (patch) | |
tree | d2fd4933a5b73c49efa9dedef13cbafd8ba8e63b /gcc | |
parent | 7efc3f2d9ed7370243b867ab34038a239e6ead3d (diff) | |
download | gcc-a25f5ee669dd1e1b1e4e53b501b0ff416601c52c.zip gcc-a25f5ee669dd1e1b1e4e53b501b0ff416601c52c.tar.gz gcc-a25f5ee669dd1e1b1e4e53b501b0ff416601c52c.tar.bz2 |
re PR ada/47880 (Free in System.Pool_Local raises Storage_Error)
2011-08-04 Thomas Quinot <quinot@adacore.com>
PR ada/47880
* s-pooloc.adb (Deallocate): Fix the case of deallocating the only
allocated object.
From-SVN: r177332
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ada/s-pooloc.adb | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/gcc/ada/s-pooloc.adb b/gcc/ada/s-pooloc.adb index 37370e5..2a161f4 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; |