comp.lang.ada
 help / color / mirror / Atom feed
From: aaro@iki.fi (Aaro Koskinen)
Subject: Re: Problem with representation clause
Date: 1997/12/10
Date: 1997-12-10T00:00:00+00:00	[thread overview]
Message-ID: <pdxwwhdqi9t.fsf@vesuri.Helsinki.FI> (raw)
In-Reply-To: 66gvas$pmp@remus.rutgers.edu


castroto@remus.rutgers.edu (Fabrizio Castrotorres) writes:
>    type Measurement_Status_Value is range -2 .. 1;
>    for  Measurement_Status_Value'Size use 2;
> 
>    type Slot_Number is range 0 .. 23;
> 
>    type Integrity_Data is array (Slot_Number) of Measurement_Status_Value;
>    For Integrity_Data'Size use 24*2;   -- REPRESENTATION 1
>    pragma Pack(Integrity_Data);
> 
>    type Global_Integrity_Array is array( Slot_Number ) of Integrity_Data;
>    For Global_Integrity_Array'Size use 24*48;  -- REPRESENTATION 2
>    pragma Pack(Global_Integrity_Array);

> The GNAT ADA 95 compiler (the one with the graphical user interface
> for NT/95) lets th file compile fine. The problem comes when I try
> to build the main module which uses this package specification (no
> body). It gives me the following error message:
>
> size for "Global_Integrity_Array" too small, minimun allowed is 1536

The suggestion to specify a two-dimensional array is probably the
nicest solution. However, I have found another solution, or more like
a hack/kludge, which works with GNAT (3.10p):

   type Wrapper is record
      ID : Integrity_Data;
   end record;
   for Wrapper use record
      ID at 0 range 0 .. 47;
   end record;
   for Wrapper'size use 48;

   type Global_Integrity_Array is array( Slot_Number ) of Wrapper;
   For Global_Integrity_Array'Size use 24*48;  -- REPRESENTATION 2
   pragma Pack(Global_Integrity_Array);

This results in a 1152-bit array. I think this would be the only way
to it, if Integrity_Data were not an array...
-- 
Aaro Koskinen (aaro@iki.fi)
http://www.iki.fi/aaro/




      parent reply	other threads:[~1997-12-10  0:00 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-12-08  0:00 Problem with representation clause Fabrizio Castrotorres
1997-12-08  0:00 ` Jeff
1997-12-09  0:00   ` David C. Hoos, Sr.
1997-12-08  0:00 ` Matthew Heaney
1997-12-09  0:00   ` David C. Hoos, Sr.
1997-12-09  0:00 ` David C. Hoos, Sr.
1997-12-10  0:00 ` Aaro Koskinen [this message]
replies disabled

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