aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorThomas Quinot <quinot@adacore.com>2011-08-04 10:32:54 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2011-08-04 10:32:54 +0200
commita25f5ee669dd1e1b1e4e53b501b0ff416601c52c (patch)
treed2fd4933a5b73c49efa9dedef13cbafd8ba8e63b /gcc
parent7efc3f2d9ed7370243b867ab34038a239e6ead3d (diff)
downloadgcc-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.adb7
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;