From: Carlos Palenzuela <cpalenzuela@sprintmail.com>
Subject: 'size attribute inheritance
Date: 1997/08/09
Date: 1997-08-09T00:00:00+00:00 [thread overview]
Message-ID: <33ECF679.4B5D@lmco.com> (raw)
Our software group has run across a problem with types and subtypes
and their sizes that is confusing me. I have read what I believe to
be the appropriate sections of the ARM, but I still need some
clarification and would like to hear some informed opinions.
Following is a simplified version of our example. We are using Green
Hills Ada 95 targeted to Sun/Solaris.
type Integer_16 is range -(2**15) .. (2**15)-1;
for Integer_16'size use 16;
subtype Natural_16 is Integer_16 range 0 .. Integer_16'last;
subtype Month_Type is Natural_16 range 0..11;
type Date_Type is
record
Year : Natural_16;
Month : Month_Type;
end record;
for Date_Type use
record
Year at 0 range 0 .. 15;
Month at 0 range 16 .. 31;
end record;
...
When running this code, we get a bus alignment error. We tracked
it
down to the fact that the compiler does NOT really allocate 16 bits
for Month with subtype Month_Type. We assumed that since
Integer_16
had been set up with 'size attribute of 16, subtype Natural_16
would
inherit that and so Month_Type would also inherit it. I might
expect
based on 13.3 (55) that Month_Type'size = 4 and then on 13.3 (43)
that
Month'size >= 4. Perhaps the confusion is that only the attribute
itself and not its specific value is what is inherited; I don't see
anything in the ARM which says one way or the other.
Putting a 'size attribute on the subtype resulted in a syntax error
[assumedly based on 13.3 (48)]. It's not necessarily so bad that
Month_type'size and Month'size are different from Integer_16'size,
but
I would at least expect the values of Month to be right-justified
in
the record-component field if Month'size < Integer_16'size (as
here),
but instead it is left-justified! Is there a justification in the
ARM
for this or is this a compiler issue? We worked around this
problem
by setting up Month_Type as a type, rather than a subtype, and
assigning it a 'size of 16, but the issue still has me perplexed.
I
would appreciate any informed opinions as to what I can or should
expect about the inheritance of the 'size attribute.
Thank you for your help,
Lizbeth Palenzuela
(working at but not speaking for)
Lockheed Martin Integrated Systems
Orlando, FL
next reply other threads:[~1997-08-09 0:00 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
1997-08-09 0:00 Carlos Palenzuela [this message]
1997-08-10 0:00 ` 'size attribute inheritance Robert A Duff
1997-08-10 0:00 ` Matthew Heaney
1997-08-11 0:00 ` Robert Dewar
1997-08-12 0:00 ` Matthew Heaney
1997-08-13 0:00 ` Robert A Duff
1997-08-13 0:00 ` Matthew Heaney
1997-08-14 0:00 ` Robert A Duff
1997-08-14 0:00 ` Dale Stanbrough
1997-08-16 0:00 ` Robert Dewar
1997-08-16 0:00 ` Ken Garlington
1997-08-17 0:00 ` Robert Dewar
1997-08-18 0:00 ` Robert A Duff
[not found] ` <dewar.872433846@merv>
1997-09-03 0:00 ` Robert A Duff
1997-09-06 0:00 ` Robert Dewar
1997-09-08 0:00 ` Robert A Duff
1997-08-17 0:00 ` Robert A Duff
1997-08-13 0:00 ` Ken Garlington
1997-08-13 0:00 ` Matthew Heaney
1997-08-10 0:00 ` Robert Dewar
1997-08-11 0:00 ` Matthew Heaney
1997-08-11 0:00 ` Ken Garlington
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox