comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Elaboration query
Date: Thu, 22 Jul 2010 19:10:33 -0700 (PDT)
Date: 2010-07-22T19:10:33-07:00	[thread overview]
Message-ID: <b8dcce8d-979d-4347-a84f-a2a15a318285@m35g2000prn.googlegroups.com> (raw)
In-Reply-To: C86E9E3C.14B045%yaldnif.w@blueyonder.co.uk

On Jul 22, 5:17 pm, "(see below)" <yaldni...@blueyonder.co.uk> wrote:
> I have a package which is a grandchild, and GNAT issues elaboration warnings
> on its body, thus:
>
>
>
>
>
> > with IOC.shift; pragma Elaborate_All(IOC.shift);
> > package body IOC.shift.TR is
> > ...
> >    overriding
> >    procedure Initialize (the_reader : in out IOC.shift.TR.device) is
> >    begin
> >       ...
> >       open(...);
> >       |
> >>>> info: call to "open" during elaboration
> >>>> info: implicit pragma Elaborate_All for "IO" generated
> >>>> warning: "Initialize" called at line 31
> >>>> warning: call to "open" in elaboration code requires pragma Elaborate_All
> >>>> on "IO"
> >    ...
> >    end Initialize; ...
> > end IOC.shift.TR;
>
> The "open" operation it is complaining about is in the the IO package.
>
> The ancestors of IOC.shift.TR begin thus:
>
> > with IOC; pragma Elaborate_All(IOC);
> > package IOC.shift is ...
>
> and:
>
> > with IO; pragma Elaborate_All(IO);
> > package IOC is ...
>
> How do I get rid of the warning?
>
> I cannot put an explicit "pragma Elaborate_All(IO)" in IOC.shift.TR, because
> it does not "with" IO.
>
> Surely I should not have to "with" IO all the way down the parent/child
> hierarchy? What am I doing wrong?

If you want to reference "IO" in a pragma in the context clause, then
yes, you do have to WITH it in the same context clause.  This is
because the visibility rules are different in context clauses.  See
10.1.6, especially 10.1.6(3).  I can understand why you think you
"shouldn't have to" do this, because you don't have to do it when
referencing IO inside the child package body.  But the rules are
different here.  Sorry.

                                 -- Adam



  reply	other threads:[~2010-07-23  2:10 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-07-23  0:17 Elaboration query (see below)
2010-07-23  2:10 ` Adam Beneschan [this message]
2010-07-23 14:52   ` (see below)
replies disabled

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