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




  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