From: invalidemail@aerojockey.com
Subject: Re: changing alignment of built-in boolean
Date: 14 Oct 2005 16:33:34 -0700
Date: 2005-10-14T16:33:34-07:00 [thread overview]
Message-ID: <1129332814.670876.3310@g49g2000cwa.googlegroups.com> (raw)
In-Reply-To: <8764rzhfo0.fsf@ludovic-brenta.org>
Ludovic Brenta wrote:
> invalidemail@aerojockey.com writes:
>
> > Is it possible, in GNAT, to force the built-in Boolean type to use
> > 4-byte (32-bit) alignment? Reason: I have to interface some Ada code
> > to a package that insists on 32-bit variables on 4-byte-aligned
> > addresses.
> >
> > Feel free to suggest some other strategy for accomplishing this, though
> > I'd prefer not to make extensive changes to the Ada code (such as
> > changing it to use a subtype of Boolean).
> >
> > I'm using GNAT 3.15p on HPUX.
> >
> > Thanks.
>
> type T is record
> B : Boolean;
> ...
> end record;
>
> for T use record
> B at 0 range 0 .. 31;
> ...
> end record;
>
> package P is
> subtype External_Boolean is Boolean;
> for External_Boolean'Size use 32;
> for External_Boolean'Alignment use 32;
Parenthetically, I tried this. Compiler told me I cannot specify
attribute for subtype.
> procedure External (B : in External_Boolean);
> pragma Import (C, External, "some_function");
> end P;
Ok, I'm sorry. I appear to have omitted a crucial piece of
information: this is for library level Booleans. The Ada code
constitutes a shared library, and the program that calls the library
accesses some of the library level variables via the symbol table, but
the variables have to be 32-bits.
The record way doesn't work either, at least not without extensive
changes, because I still have to use these variables as Booleans (in
conditional expressions).
I was thinking that if there was a way to do this it would be to use
some compiler flag or an obscure, implementation-defined pragma.
Thanks anyways. :)
next prev parent reply other threads:[~2005-10-14 23:33 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-14 20:03 changing alignment of built-in boolean invalidemail
2005-10-14 22:55 ` Ludovic Brenta
2005-10-14 23:33 ` invalidemail [this message]
2005-10-15 7:13 ` Martin Krischik
2005-10-17 18:02 ` Jean-Pierre Rosen
2005-10-14 23:29 ` tmoran
2005-10-15 1:39 ` Steve
2005-10-15 6:45 ` Jeffrey R. Carter
2005-10-15 6:40 ` Jeffrey R. Carter
2005-10-16 17:48 ` invalidemail
2005-11-09 3:25 ` Anonymous Coward
2005-11-09 5:42 ` christoph.grein
2005-11-09 22:14 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox