comp.lang.ada
 help / color / mirror / Atom feed
From: AdaMagica <christ-usch.grein@t-online.de>
Subject: Re: Alleged GNAT bug
Date: Wed, 25 Oct 2017 10:03:22 -0700 (PDT)
Date: 2017-10-25T10:03:22-07:00	[thread overview]
Message-ID: <b1204442-ba3e-4a37-ba44-033dca774f96@googlegroups.com> (raw)
In-Reply-To: <97915524-04a8-4954-8ed8-058ad63f529e@googlegroups.com>

Am Mittwoch, 25. Oktober 2017 02:53:26 UTC+2 schrieb A. Cervetti:
> So I conclude:
> The error happens at the freezing point, but with gnat-2017 only in the modular version.
> The code could be legal because it works in the monolithic version, but 

I guess you are right. Exporting the last instantiation Finalizer to a child makes the program legal.

package Term.Child is

   package Finalizer is new Term_Handled_Record.With_Finalization(Term_Type_Without_Finalize);

   type Term_Type is new Finalizer.Derived with null record;

end Term.Child;

An instantiation seems to freeze the actual type 13.14(5/3), and Term_Type_Without_Finalize has a primitive operation involving an incomplete type. 13.14(10.2/4) does not apply here IMO.

But I'm in no way a language lawyer, and 13.14 is the heart of darkness.

As a side note I must say, I'm completely confused about the namings in this code. The type Base_Object is already finalized, and any and all further derivations do not add more finalizing code.


  reply	other threads:[~2017-10-25 17:03 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-20 18:10 Alleged GNAT bug Victor Porton
2017-10-24 10:13 ` A. Cervetti
2017-10-24 23:08   ` Randy Brukardt
2017-10-25  0:53     ` A. Cervetti
2017-10-25 17:03       ` AdaMagica [this message]
2017-10-25 17:27         ` Victor Porton
2017-10-26  7:09           ` AdaMagica
2017-10-26 18:41             ` Victor Porton
2017-11-14 23:35         ` Randy Brukardt
2017-11-16 15:55           ` Robert Eachus
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox