From: "Marc A. Criley" <mcq95@earthlink.net>
Subject: Re: Non byte-aligned components in GNAT rejected
Date: Fri, 13 Dec 2002 12:39:51 GMT
Date: 2002-12-13T12:39:51+00:00 [thread overview]
Message-ID: <3DF9D537.1DB616B7@earthlink.net> (raw)
In-Reply-To: 1b585154.0212121025.5956cad1@posting.google.com
Peter Richtmyer wrote:
>
> Using Gnat 3.15p I had the same error you did.
> I found a work-around that might be acceptable to you:
>
> 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 un_t is -- new
> record -- new
> un : Unit_Name_Type; -- new
> end record; -- new
> -- for un_t'size use 448; -- bad results!
>
> type Unit_Group_Type is record
> B : Boolean;
> -- Unit_Name : Unit_Name_Type; -- deleted
> Unit_Name : un_t; -- new
> end record;
> for Unit_Group_Type use record
> B at 0 range 0 .. 0;
> Unit_Name at 0 range 1 .. 448; -- This is OK now
> end record;
>
> end NBA;
>
> As you can see, the Unit_Name is still one variable,
> using th same type definition, but is now a record
> within the record.
I compiled this with GNAT 3.15p on Win2K and 3.13p on Linux and still
got an error, albeit a different one: "nba.ads:21:07: fields of "un_t"
must start at storage unit boundary". Line 21 is the "Unit_Name :
un_t;" line. What GNAT/OS did you use?
Marc
next prev parent reply other threads:[~2002-12-13 12:39 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
2002-12-12 18:25 ` Peter Richtmyer
2002-12-13 12:39 ` Marc A. Criley [this message]
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