From: Matthew Heaney <matthewjheaney@earthlink.net>
Subject: Re: GCC 4.0 Ada.Containers Cursor danger.
Date: Sat, 16 Jul 2005 23:24:26 GMT
Date: 2005-07-16T23:24:26+00:00 [thread overview]
Message-ID: <ull468hcm.fsf@earthlink.net> (raw)
In-Reply-To: 1120474891.635131.216700@g44g2000cwa.googlegroups.com
"Dmitriy Anisimkov" <anisimkov@yahoo.com> writes:
> IMHO the cursors in the Ada.Containers implemented in GCC 4.0
> dangerouse like pointers in C/C++.
>
> Look at the code below.
Here is a simplified version of your example:
with Ada.Containers.Indefinite_Hashed_Maps; use Ada.Containers;
with Ada.Strings.Hash; use Ada.Strings;
procedure Test_HM is
package Map_Types is
new Indefinite_Hashed_Maps (String, Integer, Hash, "=");
use Map_Types;
M : Map;
C, C2 : Cursor;
B : Boolean;
begin
M.Insert ("one", 1);
M.Insert ("two", 2, C, B);
pragma Assert (B);
M.Insert ("three", 3);
pragma Assert (Has_Element (C));
pragma Assert (Key (C) = "two");
pragma Assert (Element (C) = 2);
C2 := M.Find ("two");
pragma Assert (Has_Element (C2));
pragma Assert (Key (C) = "two");
pragma Assert (Element (C) = 2);
M.Delete (C2);
pragma Assert (not Has_Element (C2));
pragma Assert (not M.Contains ("two"));
Replace_Element (C, -2); -- dangling cursor
end Test_HM;
When I compile it as follows (on WinXP):
gnatmake -gnata -g -gnat05 test_hm
and then run it, I get this output:
raised SYSTEM.ASSERTIONS.ASSERT_FAILURE : bad cursor in Replace_Element
Does this behavior adequately satisfy your needs?
next prev parent reply other threads:[~2005-07-16 23:24 UTC|newest]
Thread overview: 195+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-04 11:01 GCC 4.0 Ada.Containers Cursor danger Dmitriy Anisimkov
2005-07-04 18:56 ` Georg Bauhaus
2005-07-04 19:07 ` Georg Bauhaus
2005-07-05 4:27 ` Dmitriy Anisimkov
2005-07-05 15:01 ` Matthew Heaney
2005-07-06 9:10 ` Maxim Reznik
2005-07-06 10:45 ` Georg Bauhaus
2005-07-06 13:57 ` Maxim Reznik
2005-07-06 14:53 ` Georg Bauhaus
2005-07-06 15:09 ` Matthew Heaney
2005-07-06 16:37 ` Dmitriy Anisimkov
2005-07-06 16:43 ` Matthew Heaney
2005-07-06 22:24 ` Randy Brukardt
2005-07-07 10:23 ` Alex R. Mosteo
2005-07-06 12:41 ` Matthew Heaney
2005-07-06 15:37 ` Matthew Heaney
2005-07-06 21:51 ` Randy Brukardt
2005-07-05 14:51 ` Matthew Heaney
2005-07-05 17:11 ` Dmitriy Anisimkov
2005-07-05 18:02 ` Matthew Heaney
2005-07-05 19:08 ` Dmitriy Anisimkov
2005-07-05 19:26 ` Matthew Heaney
2005-07-05 19:44 ` Dmitriy Anisimkov
2005-07-05 20:06 ` Matthew Heaney
2005-07-06 2:10 ` Dmitriy Anisimkov
2005-07-06 22:44 ` Randy Brukardt
2005-07-07 3:41 ` Dmitriy Anisimkov
2005-07-07 19:18 ` Randy Brukardt
2005-07-08 3:01 ` Dmitriy Anisimkov
2005-07-09 6:17 ` Simon Wright
2005-07-11 2:24 ` Dmitriy Anisimkov
2005-07-11 2:24 ` Dmitriy Anisimkov
2005-07-06 5:52 ` Martin Dowie
2005-07-06 7:02 ` Dmitriy Anisimkov
2005-07-06 8:02 ` Georg Bauhaus
2005-07-06 8:37 ` Dmitriy Anisimkov
2005-07-06 9:06 ` Pascal Obry
2005-07-06 12:14 ` Georg Bauhaus
2005-07-06 7:53 ` Pascal Obry
2005-07-06 8:44 ` Dmitriy Anisimkov
2005-07-06 9:03 ` Pascal Obry
2005-07-06 9:34 ` Dmitriy Anisimkov
2005-07-06 9:42 ` Pascal Obry
2005-07-06 9:45 ` Dmitriy Anisimkov
2005-07-06 10:40 ` Georg Bauhaus
2005-07-06 16:22 ` Dmitriy Anisimkov
2005-07-06 16:42 ` Matthew Heaney
2005-07-06 16:59 ` Dmitriy Anisimkov
2005-07-06 17:12 ` Matthew Heaney
2005-07-06 18:12 ` Georg Bauhaus
2005-07-07 12:29 ` Dmitriy Anisimkov
2005-07-07 12:46 ` Matthew Heaney
2005-07-07 13:01 ` Dmitriy Anisimkov
2005-07-07 13:20 ` Matthew Heaney
2005-07-07 13:54 ` Georg Bauhaus
2005-07-07 17:56 ` Dmitriy Anisimkov
2005-07-07 22:12 ` Georg Bauhaus
2005-07-15 18:03 ` Dmitriy Anisimkov
2005-07-16 1:45 ` Matthew Heaney
2005-07-17 3:55 ` Dmitriy Anisimkov
2005-07-17 4:29 ` Matthew Heaney
2005-07-07 19:29 ` Randy Brukardt
2005-07-08 2:41 ` Dmitriy Anisimkov
2005-07-06 22:56 ` Randy Brukardt
2005-07-06 22:51 ` Randy Brukardt
2005-07-07 0:24 ` Matthew Heaney
2005-07-07 3:20 ` Randy Brukardt
2005-07-06 7:30 ` Dmitry A. Kazakov
2005-07-06 7:50 ` Georg Bauhaus
2005-07-06 8:11 ` Dmitriy Anisimkov
2005-07-06 11:36 ` Dmitry A. Kazakov
2005-07-06 12:14 ` Georg Bauhaus
2005-07-06 23:07 ` Randy Brukardt
2005-07-07 8:01 ` Dmitry A. Kazakov
2005-07-07 10:38 ` Georg Bauhaus
2005-07-07 13:00 ` Dmitry A. Kazakov
2005-07-07 13:41 ` Matthew Heaney
2005-07-07 22:12 ` Georg Bauhaus
2005-07-08 8:48 ` Dmitry A. Kazakov
2005-07-08 10:41 ` Georg Bauhaus
2005-07-08 13:03 ` Dmitry A. Kazakov
2005-07-08 13:31 ` Matthew Heaney
2005-07-10 2:12 ` Randy Brukardt
2005-07-10 8:52 ` Dmitry A. Kazakov
2005-07-11 10:58 ` Georg Bauhaus
2005-07-11 12:18 ` Dmitry A. Kazakov
2005-07-11 13:50 ` Georg Bauhaus
2005-07-11 18:38 ` Randy Brukardt
2005-07-12 8:44 ` Dmitry A. Kazakov
2005-07-12 10:33 ` Georg Bauhaus
2005-07-12 20:38 ` Randy Brukardt
2005-07-08 13:15 ` Matthew Heaney
2005-07-08 14:02 ` Dmitry A. Kazakov
2005-07-08 14:52 ` Matthew Heaney
2005-07-11 14:57 ` MMM
2005-07-11 18:36 ` Georg Bauhaus
2005-07-12 2:11 ` MMM
2005-07-12 21:47 ` Randy Brukardt
2005-07-13 4:31 ` MMM
2005-07-13 1:15 ` Georg Bauhaus
2005-07-13 2:46 ` Matthew Heaney
2005-07-14 4:11 ` Mikhail Terekhov
2005-07-14 12:44 ` Matthew Heaney
2005-07-19 1:38 ` Mikhail Terekhov
2005-07-19 3:21 ` Matthew Heaney
2005-07-14 23:03 ` Georg Bauhaus
2005-07-15 8:36 ` Dmitry A. Kazakov
2005-07-15 10:39 ` Georg Bauhaus
2005-07-15 14:10 ` Dmitry A. Kazakov
2005-07-15 12:10 ` Matthew Heaney
2005-07-19 3:51 ` Mikhail Terekhov
2005-07-19 11:35 ` Matthew Heaney
2005-07-19 3:11 ` Mikhail Terekhov
2005-07-19 12:44 ` Matthew Heaney
2005-07-20 5:20 ` Simon Wright
2005-07-21 2:39 ` Matthew Heaney
2005-07-21 3:23 ` Randy Brukardt
2005-07-19 23:51 ` Randy Brukardt
2005-07-20 15:33 ` Robert A Duff
2005-07-11 14:56 ` MMM
2005-07-11 23:24 ` Matthew Heaney
2005-07-12 3:05 ` MMM
2005-07-12 5:32 ` Simon Wright
2005-07-13 2:41 ` MMM
2005-07-12 11:16 ` Georg Bauhaus
2005-07-16 22:28 ` Robert A Duff
2005-07-12 13:32 ` Marc A. Criley
2005-07-12 14:51 ` MMM
2005-07-12 15:35 ` Matthew Heaney
2005-07-12 18:40 ` MMM
2005-07-12 19:12 ` Matthew Heaney
2005-07-12 19:42 ` MMM
2005-07-12 20:02 ` Georg Bauhaus
2005-07-13 3:52 ` MMM
2005-07-12 20:13 ` Matthew Heaney
2005-07-12 21:38 ` Simon Wright
2005-07-12 17:44 ` Marc A. Criley
2005-07-12 18:51 ` MMM
2005-07-12 19:15 ` Matthew Heaney
2005-07-12 19:47 ` Georg Bauhaus
2005-07-13 2:20 ` Matthew Heaney
2005-07-12 20:00 ` MMM
2005-07-12 20:09 ` Georg Bauhaus
2005-07-12 20:15 ` Matthew Heaney
2005-07-12 21:01 ` Randy Brukardt
2005-07-13 4:16 ` MMM
2005-07-19 23:58 ` Randy Brukardt
2005-07-12 21:59 ` Simon Wright
2005-07-12 20:56 ` Randy Brukardt
2005-07-14 5:01 ` Mikhail Terekhov
2005-07-20 0:10 ` Randy Brukardt
2005-07-07 12:36 ` Matthew Heaney
2005-07-07 12:52 ` Dmitriy Anisimkov
2005-07-07 13:52 ` Georg Bauhaus
2005-07-07 17:49 ` Dmitriy Anisimkov
2005-07-07 18:35 ` Matthew Heaney
2005-07-08 17:52 ` Craig Carey
2005-07-07 17:50 ` Dmitriy Anisimkov
2005-07-07 19:47 ` Randy Brukardt
2005-07-08 2:28 ` Dmitriy Anisimkov
2005-07-09 14:20 ` Matthew Heaney
2005-07-10 1:51 ` Randy Brukardt
2005-07-10 5:46 ` Craig Carey
2005-07-10 6:13 ` Craig Carey
2005-07-11 17:33 ` OT: Greg and Colin? (was Re: GCC 4.0 Ada.Containers Cursor danger.) Marc A. Criley
2005-07-06 22:34 ` GCC 4.0 Ada.Containers Cursor danger Randy Brukardt
2005-07-07 0:22 ` Matthew Heaney
2005-07-07 3:17 ` Randy Brukardt
2005-07-08 5:34 ` Jeffrey Carter
2005-07-10 1:53 ` Randy Brukardt
2005-07-10 19:32 ` Jeffrey Carter
2005-07-07 3:24 ` Randy Brukardt
2005-07-16 23:24 ` Matthew Heaney [this message]
2005-07-17 4:04 ` Dmitriy Anisimkov
2005-07-17 5:01 ` Matthew Heaney
2005-07-17 17:13 ` Dmitriy Anisimkov
2005-07-17 17:36 ` Matthew Heaney
2005-07-17 17:49 ` Dmitriy Anisimkov
2005-07-17 18:12 ` Matthew Heaney
2005-07-17 17:40 ` Dmitriy Anisimkov
2005-07-17 17:50 ` Dmitriy Anisimkov
2005-07-17 18:08 ` Matthew Heaney
2005-07-19 4:36 ` Mikhail Terekhov
2005-07-20 1:59 ` Matthew Heaney
2005-07-20 14:00 ` Pascal Obry
2005-07-20 14:34 ` Matthew Heaney
2005-07-20 16:51 ` Pascal Obry
2005-07-20 16:53 ` Pascal Obry
2005-07-21 3:18 ` Randy Brukardt
2005-07-20 2:37 ` Robert I. Eachus
2005-08-02 16:59 ` Craig Carey
2005-08-02 20:55 ` Simon Wright
2005-07-20 7:20 ` Georg Bauhaus
2005-07-17 9:28 ` Georg Bauhaus
2005-07-17 14:26 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox