comp.lang.ada
 help / color / mirror / Atom feed
* Overlay allowability
@ 2000-05-01  0:00 Marc A. Criley
  2000-05-01  0:00 ` Ted Dennison
                   ` (3 more replies)
  0 siblings, 4 replies; 21+ messages in thread
From: Marc A. Criley @ 2000-05-01  0:00 UTC (permalink / 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




^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2000-05-12  0:00 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2000-05-01  0:00 Overlay allowability Marc A. Criley
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   ` mark_biggar
2000-05-01  0:00   ` Keith Thompson
2000-05-08  0:00     ` Tucker Taft
2000-05-03  0:00   ` Robert I. Eachus
2000-05-01  0:00 ` tmoran
2000-05-02  0:00 ` Robert I. Eachus
2000-05-03  0:00   ` Marc A. Criley

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