From: dennison@telepath.com
Subject: Re: Why a PROGRAM ERROR?
Date: 1998/12/11
Date: 1998-12-11T00:00:00+00:00 [thread overview]
Message-ID: <74relm$okm$1@nnrp1.dejanews.com> (raw)
In-Reply-To: m3yaofmpon.fsf@mheaney.ni.net
In article <m3yaofmpon.fsf@mheaney.ni.net>,
Matthew Heaney <matthew_heaney@acm.org> wrote:
> Rusnak <bogus@nowhere.com> writes:
>
> > I have the following code in a generic package (or code similar to it
> > anyway):
> >
> >
> > Given a tagged type "My_Instance" and a type defined as
> >
> > type My_Class_Object_Type is access all My_Instance'Class;
> >
> > I have a function in the spec/body, defined in the body as
> >
> > function Unpack(The_Object : access My_Instance'Class)
> > Core_Text : String)
> > return Command_Object
> > is
> > Return_Value : Command_Object;
> > begin
> > . . .
> > Command_Object.The_Object :=
> > My_Class_Object_Type(The_Object);
> > . . .
> > end Unpack;
> >
> >
> > Any time I try to cast the anonymous access type to
> > My_Instance'Class to the type My_Class_Object_Type,
> > a program error is raised. Why is this the case, why is the
> > error not caught at compile time, and how can I resolve
> > the error? It seems to only occur when a cast like this one is
> > made inside an instantiation of a generic package.
> >
> > Any help is greatly appreciated.
>
> Is it possible that you're following a path that doesn't include a
> return statement (because of an internal exception, perhaps)? If you're
> getting Program_Error when you execute a function, that's usually the
> reason.
Another very good possibility is that the *actual* parameter passed in was
the "'access" of an object, which was declared at a lower scope level than
the accesss type used by "Command_Object.The_Object" (which may be
My_Class_Object_Type, but we can't tell from this code fragment). I submitted
a (slighty more complete :-) ) code fragment here with the exact same
problem about 4 months ago...
Perhaps Rusnak should submit an expanded fragment that shows the actual call
made, as well as the declaration of the actual parameters used, and their
enclosing scopes.
--
T.E.D.
-----------== Posted via Deja News, The Discussion Network ==----------
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
prev parent reply other threads:[~1998-12-11 0:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-12-10 0:00 Why a PROGRAM ERROR? Rusnak
1998-12-11 0:00 ` Matthew Heaney
1998-12-11 0:00 ` Why a PROGRAM ERROR? A GNAT bug? Rusnak
1998-12-11 0:00 ` dewar
1998-12-14 0:00 ` Why a PROGRAM ERROR? Robert I. Eachus
1998-12-11 0:00 ` dennison [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox