From: Geoff Bull <gbull@acenet.com.au>
Subject: Re: C/C++ programmer giving Ada95 a chance -- writing an emulator.
Date: 2000/04/02
Date: 2000-04-02T00:00:00+00:00 [thread overview]
Message-ID: <38E69A86.B1DC7C0A@acenet.com.au> (raw)
In-Reply-To: 38E621C2.87B64ED9@averstar.com
Tucker Taft wrote:
>
> Geoff Bull wrote:
> >
> > If I Initialise the array like so:
> >
> > Op_Table : array (Opcode) of Op_Root
> > := (0 => Op_Root (O0),
> > others => OU);
> >
> > then make the assignments:
> > Op_Table (1) := Op_Root (O1);
> > Op_Table (2) := Op_Root (O2);
> > Op_Table (3) := Op_Root (O3);
> >
> >
> > What is going on here?
> > It look like the assigments throw away the tag (like Cohen
> > says it should) but the initializer keeps the tag.
>
> That would be a bug. The tag is *not* determined by the initial
> value if the target type is "specific" (as opposed to classwide).
>
> Definitely a bug. It looks like GNAT is copying the tag from the initial value,
I worked out exactly what is happening.
The bug is in aggregate assignments to an array or a record
of tagged components. I.e. I can later change the tags
in Op_table by making an aggregate assignment to it.
Also, if I don't initialise Op_table, it seems the tags in it are
not initialised either. This seems wrong to me too, but I am just
guessing in this case.
Geoff
next prev parent reply other threads:[~2000-04-02 0:00 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <38E3DBD7.27F5B246@acenet.com.au>
2000-03-31 0:00 ` C/C++ programmer giving Ada95 a chance -- writing an emulator tmoran
2000-03-31 0:00 ` Geoff Bull
2000-04-01 0:00 ` Tucker Taft
2000-04-02 0:00 ` Geoff Bull [this message]
2000-04-02 0:00 ` Robert Dewar
2000-04-02 0:00 ` Geoff Bull
[not found] <38e148e2.5089627@news.shreve.net>
2000-03-28 0:00 ` Ken Garlington
2000-03-28 0:00 ` Geoff Bull
2000-03-28 0:00 ` Jean-Marc Bourguet
2000-03-28 0:00 ` Juergen Pfeifer
2000-03-28 0:00 ` Jim Rogers
2000-03-29 0:00 ` Ed Falis
2000-03-29 0:00 ` James S. Rogers
2000-03-29 0:00 ` Jean-Marc Bourguet
2000-03-29 0:00 ` Robert Dewar
2000-03-30 0:00 ` Geoff Bull
2000-03-30 0:00 ` tmoran
2000-04-01 0:00 ` Robert Dewar
[not found] ` <38e19656.17008608@news.shreve.net>
2000-03-29 0:00 ` David Starner
2000-03-29 0:00 ` Robert Dewar
2000-03-29 0:00 ` Marin D. Condic
2000-03-29 0:00 ` Robert A Duff
2000-03-29 0:00 ` Marin D. Condic
2000-03-29 0:00 ` Jean-Marc Bourguet
2000-03-29 0:00 ` Robert Dewar
2000-03-30 0:00 ` Jean-Marc Bourguet
2000-04-01 0:00 ` Robert Dewar
2000-03-30 0:00 ` Geoff Bull
2000-04-01 0:00 ` Robert Dewar
2000-04-02 0:00 ` Geoff Bull
2000-04-02 0:00 ` Robert Dewar
2000-04-02 0:00 ` swhalen
2000-03-29 0:00 ` Robert A Duff
2000-03-30 0:00 ` Geoff Bull
2000-04-01 0:00 ` Robert Dewar
2000-03-29 0:00 ` Marc A. Criley
2000-03-29 0:00 ` swhalen
2000-03-29 0:00 ` Robert Dewar
2000-03-30 0:00 ` swhalen
2000-03-29 0:00 ` Marin D. Condic
2000-03-30 0:00 ` Ken Garlington
2000-03-30 0:00 ` Samuel T. Harris
2000-04-01 0:00 ` Robert Dewar
2000-04-05 0:00 ` Robert A Duff
2000-03-30 0:00 ` Geoff Bull
[not found] ` <38e7e951.8384503@news.shreve.net>
2000-04-02 0:00 ` Jean-Pierre Rosen
2000-04-02 0:00 ` Robert Dewar
2000-04-03 0:00 ` Paul Graham
2000-04-06 0:00 ` Robert Dewar
2000-04-06 0:00 ` Larry Kilgallen
2000-04-06 0:00 ` Robert Dewar
2000-04-06 0:00 ` Gautier
2000-04-07 0:00 ` Robert Dewar
2000-04-07 0:00 ` 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