From: Victor Porton <porton@narod.ru>
Subject: Is Adjust allowed on assignment of to a class-wide argument?
Date: Fri, 29 Sep 2017 19:42:38 +0300
Date: 2017-09-29T19:42:38+03:00 [thread overview]
Message-ID: <oqlt5s$1j23$2@gioia.aioe.org> (raw)
Is the following program allowed to print "Adjust"?
GCC 7.2.0 does not print "Adjust". I suspect it is because GCC optimizes
away an allowed Adjust procedure.
Is it allowed to call Adjust? Will a compiler be conforming to the spec if
it produces from the below source a program which prints "Adjust"?
---------------
with Ada.Finalization;
with Ada.Text_IO;
procedure Test is
type A is new Ada.Finalization.Controlled with null record;
type B is new A with null record;
overriding procedure Adjust (Object: in out B) is
begin
Ada.Text_IO.Put_Line("Adjust");
end;
procedure X (Arg: A'Class) is
begin
null;
end;
Object: B;
begin
X(Object);
end;
--
Victor Porton - http://portonvictor.org
next reply other threads:[~2017-09-29 16:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-29 16:42 Victor Porton [this message]
2017-09-29 16:43 ` Is Adjust allowed on assignment of to a class-wide argument? Victor Porton
2017-09-29 17:46 ` AdaMagica
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox