From: "Grein, Christoph" <christoph.grein@eurocopter.com>
Subject: Re: Non byte-aligned components in GNAT rejected
Date: Thu, 12 Dec 2002 08:05:16 +0100 (MET)
Date: 2002-12-12T08:05:16+01:00 [thread overview]
Message-ID: <mailman.1039677182.8154.comp.lang.ada@ada.eu.org> (raw)
> -----------------------------------------------------------
>
> 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;
> _______________________________________________
The following works. You have to split the name so that it has the correct
boundaries.
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..56) of VMF_Character;
for Unit_Name_Type'Component_Size use 7;
for Unit_Name_Type'Size use 56*7;
type Unit_Last_Type is array (1..7) of VMF_Character;
for Unit_Last_Type'Component_Size use 7;
for Unit_Last_Type'Size use 7*7;
type Unit_Group_Type is record
B : Boolean;
Unit_First: VMF_Character;
Unit_Name : Unit_Name_Type;
Unit_Last : Unit_Last_Type;
end record;
for Unit_Group_Type use record
B at 0 range 0 .. 0;
Unit_First at 0 range 1 .. 7; -- together
Unit_Name at 1 range 0 .. 56*7 - 1; -- 64
Unit_Last at 1 range 56*7 .. (56+7)*7; -- characters
end record;
end NBA;
next reply other threads:[~2002-12-12 7:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-12 7:05 Grein, Christoph [this message]
-- strict thread matches above, loose matches on Subject: below --
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
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
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox