From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Bug in Ada (SuSe 10.2) ?
Date: Fri, 22 Feb 2008 16:39:08 -0500
Date: 2008-02-22T16:39:08-05:00 [thread overview]
Message-ID: <wcchcg0y8lf.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: cd3caba0-bf53-4207-8974-a1b26fb7ce41@c33g2000hsd.googlegroups.com
Vadim Godunko <vgodunko@gmail.com> writes:
> On 22 яПНяПНяПН, 22:21, Georg Bauhaus <rm.plus-bug.t...@maps.futureapps.de>
> wrote:
>> On Fri, 2008-02-22 at 08:10 -0800, billjones6...@yahoo.com wrote:
>> > Of course, the danger is only eliminated when this language-defined
>> > check is fully implemented in standard mode.
>>
>> Here is another dangling pointer. The program is
>> giving me results varying with compiler/OS. I didn't see
>> how accessiblity checks could help in this case, but
>> then maybe this is a different issue?
>>
>> with Ada.Unchecked_Deallocation;
>> with Ada.Text_IO;
>>
>> procedure News3 is
>> use Ada;
>>
>> type Int_Ptr is access Integer;
>> Pointer: Int_Ptr;
>> Dangling_Pointer: Int_Ptr;
>>
>> procedure Copy(Source: in out Int_Ptr; Target: out Int_Ptr) is
>> procedure Oops is new Unchecked_Deallocation
>> (Integer, Int_Ptr);
>> begin
>> Target := Source;
>> Oops(Source);
>> end Copy;
>>
>> begin
>> Pointer := new Integer'(42);
>> Copy(Pointer, Dangling_Pointer);
>>
>> Text_IO.Put_Line(Integer'image(Dangling_Pointer.all));
>> end News3;
>
> Unchecked_Deallocation never makes program less erroneous. In the
> example it is safe to remove instantiation of Unchecked_Deallocation.
> Allocated memory will be automatically reclaimed after control flow
> leave News3 subprogram, independent does or doesn't it is a main
> subprogram.
An implementation is allowed to do such reclamation, but most do not,
unless you add a Storage_Size or Storage_Pool clause.
- Bob
next prev parent reply other threads:[~2008-02-22 21:39 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-02-19 8:47 Bug in Ada (SuSe 10.2) ? Reinert Korsnes
2008-02-19 9:08 ` Niklas Holsti
2008-02-19 9:53 ` Reinert Korsnes
2008-02-19 11:21 ` Ludovic Brenta
2008-02-20 12:41 ` Reinert Korsnes
2008-02-20 16:50 ` Adam Beneschan
2008-02-20 18:31 ` Jeffrey R. Carter
2008-02-20 23:10 ` Adam Beneschan
2008-02-20 23:22 ` Adam Beneschan
2008-02-21 0:31 ` Randy Brukardt
2008-02-21 8:56 ` Jean-Pierre Rosen
2008-02-21 9:08 ` Alex R. Mosteo
2008-02-21 9:27 ` Ludovic Brenta
2008-02-21 9:46 ` billjones6789
2008-02-21 12:27 ` Access type (mis)use (Was: Bug in Ada (SuSe 10.2) ?) Jacob Sparre Andersen
2008-02-21 19:40 ` Bob Klungle
2008-02-21 21:25 ` Jeffrey R. Carter
2008-02-21 21:57 ` Vadim Godunko
2008-02-21 22:32 ` Bug in Ada (SuSe 10.2) ? Randy Brukardt
2008-02-22 16:10 ` billjones6789
2008-02-22 19:21 ` Georg Bauhaus
2008-02-22 21:29 ` Vadim Godunko
2008-02-22 21:39 ` Robert A Duff [this message]
2008-02-23 10:16 ` billjones6789
2008-02-22 19:52 ` Randy Brukardt
2008-02-23 10:36 ` billjones6789
2008-02-26 0:32 ` Randy Brukardt
2008-02-26 16:46 ` billjones6789
2008-02-26 20:53 ` Randy Brukardt
2008-02-27 1:05 ` Robert A Duff
2008-02-27 10:06 ` billjones6789
2008-02-27 17:49 ` Robert A Duff
2008-02-28 0:30 ` Randy Brukardt
2008-02-28 15:33 ` Robert A Duff
2008-03-06 17:46 ` Adam Beneschan
2008-02-21 0:31 ` Jeffrey R. Carter
2008-02-21 0:35 ` Jeffrey R. Carter
2008-03-06 11:55 ` Colin Paul Gloster
2008-02-21 0:55 ` tmoran
2008-02-21 8:08 ` billjones6789
2008-02-21 9:11 ` Alex R. Mosteo
2008-02-21 23:01 ` Randy Brukardt
2008-02-22 16:43 ` Adam Beneschan
2008-02-22 9:06 ` Stephen Leake
2008-02-22 5:40 ` Gautier
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox