comp.lang.ada
 help / color / mirror / Atom feed
From: evans@evans.pgh.pa.us (Arthur Evans Jr)
Subject: Re: Unchecked_Union
Date: 1996/02/27
Date: 1996-02-27T00:00:00+00:00	[thread overview]
Message-ID: <evans-2702960924460001@ppp1.pgh.net> (raw)
In-Reply-To: dewar.825178652@schonberg

In article <dewar.825178652@schonberg>, dewar@cs.nyu.edu (Robert Dewar) wrote:

> The following is a description of pragma Unchecked_Union as we are
> implementing it in GNAT. This description is compatible with the
> current Intermetrics usage in their binding generator tool.

This looks most interesting.  Two small comments:

>  Also, equality and inequality operations on unchecked_unions are not
>  available, since there is no discriminant to compare, and in general
>  the compiler does not even know how many bits to compare. It is
>  implementation dependent whether this is detected at compile time
>  as an illegality, or whether it is undetected and considered to be
>  an erroneous construct. In GNAT, a direct comparison is illegal,
>  but GNAT does not attempt to catch the composite case (where two
>  composites are compared that contain an unchecked union component),
>  so such comparisons are simply considered erroneous.

My quibble is with the last quoted word.  I think you could safely say
that this is a bounded error, since the only effect is that the
comparison will give the wrong answer.

>  The layout of the resulting type corresponds exactly to a C union,
>  ...

I wonder whether or not that is a well-defined statement.  That is, is
the layout a a C union specified anywhere, even for a specific C
implementation?  (Maybe this comment is off the wall -- I'm not much of
a C programmer.)

Art Evans

Arthur Evans Jr, PhD        Phone: 412-963-0839
Ada Consulting              FAX:   412-963-0927
461 Fairview Road
Pittsburgh PA  15238-1933
evans@evans.pgh.pa.us




      reply	other threads:[~1996-02-27  0:00 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-02-24  0:00 Unchecked_Union Robert Dewar
1996-02-27  0:00 ` Arthur Evans Jr [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