From: "Marin David Condic" <mcondic.auntie.spam@acm.org>
Subject: Re: Non byte-aligned components in GNAT rejected
Date: Thu, 12 Dec 2002 08:41:15 -0500
Date: 2002-12-12T13:46:33+00:00 [thread overview]
Message-ID: <ata3vp$q2i$1@slb5.atl.mindspring.net> (raw)
In-Reply-To: 254c16a.0212111032.451cab61@posting.google.com
If you figure out a way to do that without resorting to a raw binary,
machine-dependent array that you pick apart manually, please drop me a line
and let me know how you did that. I've had long standing problems with
representation clauses on records that wouldn't let me do what I needed to
do and the only answer has been to go do it some sort of butt-ugly way that
looks more like C and makes everything dependent on hardware and the
implementation.
So much for record representation clauses being good for the embedded
programmer. :-)
MDC
--
======================================================================
Marin David Condic
I work for: http://www.belcan.com/
My project is: http://www.jast.mil/
Send Replies To: m c o n d i c @ a c m . o r g
"I'd trade it all for just a little more"
-- Charles Montgomery Burns, [4F10]
======================================================================
Marc A. Criley <mcq95@earthlink.net> wrote in message
news:254c16a.0212111032.451cab61@posting.google.com...
> (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;
next prev parent reply other threads:[~2002-12-12 13:41 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-11 18:32 Non byte-aligned components in GNAT rejected Marc A. Criley
2002-12-11 19:28 ` Stephen Leake
2002-12-12 13:41 ` Marin David Condic [this message]
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