comp.lang.ada
 help / color / mirror / Atom feed
From: mcq95@earthlink.net (Marc A. Criley)
Subject: Non byte-aligned components in GNAT rejected
Date: 11 Dec 2002 10:32:21 -0800
Date: 2002-12-11T18:32:21+00:00	[thread overview]
Message-ID: <254c16a.0212111032.451cab61@posting.google.com> (raw)

(This is one of those situations where I wish I had the scratch to be an ACT
supported customer.)

I'm in the midst of creating type definitions, both scalar and records, for
a thoroughly bit-oriented message set, i.e., absolutely NO regard is paid to
byte boundaries, other than the first and the last bytes of the messages.

GNAT 3.14p on W2K is rejecting one of my rep specs, stating that "large
component must be on byte boundary".

From a compiler implementor perspective, I can see where that limitation is
coming from, but this message format is extracted from a MIL-STD, and this
situation leads me to think that I may not be able to define a "natural"
record specification for messages defined in that standard. Are there any
other representation attributes I ought to try? I've tried 'Alignment and
gotten nowhere with that, so I'm open to suggestion (particularly if they
work on the cut-down package that's attached :-)

If I can't find a way to put these definition together, I'll have to shift
to an "accessor" approach where I just stuff and retrieve bits from an
undifferentiated bit buffer.

Marc A. Criley

-----------------------------------------------------------

package NBA is

   type VMF_Character is new Character range
     Character'Val(0) .. Character'Val(127);
   for VMF_Character'Size use 7;

   type Unit_Name_Type is array (1..64) of VMF_Character;
   for Unit_Name_Type'Component_Size use 7;
   for Unit_Name_Type'Size use 448;

   type Unit_Group_Type is record
      B : Boolean;
      Unit_Name : Unit_Name_Type;
   end record;
   for Unit_Group_Type use record
      B      at 0 range 0 .. 0;
      Unit_Name at 0 range 1 .. 448; -- This is rejected
   end record;

end NBA;



             reply	other threads:[~2002-12-11 18:32 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-11 18:32 Marc A. Criley [this message]
2002-12-11 19:28 ` Non byte-aligned components in GNAT rejected Stephen Leake
2002-12-12 13:41 ` Marin David Condic
2002-12-12 18:25 ` Peter Richtmyer
2002-12-13 12:39   ` Marc A. Criley
2002-12-13 19:13     ` Peter Richtmyer
2002-12-16 15:51 ` Mark Johnson
  -- strict thread matches above, loose matches on Subject: below --
2002-12-12  7:05 Grein, Christoph
replies disabled

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