Thanks for the reply. I was recently involved in
the arrangement of an company internal course
and provided the exercises. When I finally came
around to making up sample solutions I came around
this compiler bug. I have not programmed actively
in Ada95 and was hence a bit uncertain about
the validity of the example, but couldn't find what
was wrong. Thanks for re-erecting my "view-of-the-world"!
PS! I'm running gnat-3.11p in WinNT 4.0, servicepack 3 DS.
Fran: Corey Minyard [SMTP:[log in to unmask]]
Skickat: Tuesday, May 11, 1999 6:30 AM
Till: [log in to unmask]
Kopia: Daniel Wengelin
Amne: bug in assignment of controlled type by ancestor
This seems to be a rather serious bug in at least gnat-3.11p,
gnat-3.11b, and gnat-3.10p. This is rather strange that it
hasn't been caught yet, I'm not really sure why it hasn't
been seen. Daniel reported it to Team-Ada, I've taken the
liberty to report it to ACT.
Anyway, the following program raises a Program Error when
run. It should produce no output. I've debugged it some
under gnat-3.11p. It seems that in e1__vehicle___assign,
the assigned variable is copied to the assignee, including
the value of My_Address in type Record_Controller in
System.Finalization_Implementation. Then the value of
My_Address is then used in the Ptr_Adjust routine of the
Adjust routine of the same package, but it is obviously
Daniel, the program is correct.
[Daniel Wengelin] SNIP