comp.lang.ada
 help / color / mirror / Atom feed
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;





  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