From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: ** X-Spam-Status: No, score=2.1 required=5.0 tests=BAYES_20,FREEMAIL_FROM, INVALID_MSGID,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,af7d617cad40d0b X-Google-Attributes: gid103376,public From: Jeff Subject: Re: Problem with representation clause Date: 1997/12/08 Message-ID: <348CE883.1CEC@bigfoot.com>#1/1 X-Deja-AN: 296522369 References: <66gvas$pmp@remus.rutgers.edu> Organization: Reply-To: balderon@bigfoot.com Newsgroups: comp.lang.ada Date: 1997-12-08T00:00:00+00:00 List-Id: Fabrizio Castrotorres wrote: > 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); > > [snip] > > size for "Global_Integrity_Array" too small, minimun allowed is 1536 > > The size I specified is 24*(24*2) = 1152 bits > The size the compiler requires is 24*(32*2) = 1536 bits > You are running into an 8-bit alignment problem with your first array declaration. The compiler is assigning each element of the array as an 8-bit quanity. Right off hand, I cannot think of a quick fix. If this is a hardware interface, I would redefine the declarations to access the status 8 bits at a time. Jeff -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \ Jeff Rooze - http://www.treknet.net/~jrooze - balderon@bigfoot.com / / If builders built buildings the way some programmers write \ \ programs, then the first woodpecker that came along would destroy / / civilization. GERALD WEINBERG \ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~