comp.lang.ada
 help / color / mirror / Atom feed
From: "Marc A. Criley" <marc.a.criley@lmco.com>
Subject: Overlay allowability
Date: 2000/05/01
Date: 2000-05-01T14:17:25+00:00	[thread overview]
Message-ID: <390D94FB.D23390D4@lmco.com> (raw)

A few times in my career I've encountered situations where two different
representations of the same set of bits are desired in a high
performance application, and this has been effected with the aid of the
'Address representation attribute.  In Ada 95, an example of this would
be:

  N : Natural;

  SN : Stream_Element_Array(1..N'Size / System.Storage_Unit);
  for SN'Address use N;

This has always struck me as somewhat iffy, but I confess I've used
it as well on a couple occasions with Ada 83.  I've always found that
it works as one intuitively expects, so long as all alignment, layout
and sizing aspects are fully thought through and accommodated.

So, is this within the definition of Ada 95?  Or is it well-defined
only for certain constructs, say scalars and non-tagged types, and
dicey for others?  Are there type constructs for which relying on it
is clearly a reliance on undefined behavior, is the whole construct a
reliance on undefined behavior?  Is there a de facto, in place of a
formal, expectation that this should work as expected?

Marc A. Criley




             reply	other threads:[~2000-05-01  0:00 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-05-01  0:00 Marc A. Criley [this message]
2000-05-01  0:00 ` Overlay allowability tmoran
2000-05-01  0:00 ` Ted Dennison
2000-05-03  0:00   ` Samuel T. Harris
2000-05-03  0:00     ` Robert A Duff
2000-05-03  0:00     ` Ted Dennison
2000-05-04  0:00     ` Robert Dewar
2000-05-08  0:00       ` Samuel T. Harris
2000-05-08  0:00         ` Robert Dewar
2000-05-09  0:00           ` Samuel T. Harris
2000-05-09  0:00             ` Ted Dennison
2000-05-10  0:00               ` Marc A. Criley
2000-05-11  0:00                 ` tmoran
2000-05-12  0:00                   ` tmoran
2000-05-01  0:00 ` Tucker Taft
2000-05-01  0:00   ` Keith Thompson
2000-05-08  0:00     ` Tucker Taft
2000-05-01  0:00   ` mark_biggar
2000-05-03  0:00   ` Robert I. Eachus
2000-05-02  0:00 ` Robert I. Eachus
2000-05-03  0:00   ` Marc A. Criley
replies disabled

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