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



             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