This is the mail archive of the
mailing list for the GCC project.
Re: Ada and x86_64
- From: dewar at gnat dot com (Robert Dewar)
- To: aj at suse dot de, dje at watson dot ibm dot com
- Cc: dewar at gnat dot com, gcc at gcc dot gnu dot org, jh at suse dot cz
- Date: Wed, 28 Aug 2002 07:49:04 -0400 (EDT)
- Subject: Re: Ada and x86_64
> > David Edelsohn <firstname.lastname@example.org> writes:
> >> While knowing nothing about Ada,
> >> private
> >> type sigset_t is array (0 .. 31) of unsigned_long;
> >> pragma Convention (C, sigset_t);
> >> for sigset_t'Size use 1024;
> > unsigned_long is is 64 bit on x86-64, I think , so the minimum size
> > for the array is indeed 2048 bits. You could change unsigned_long to
> > unsigned_int; this should in 1024 bits on x86-64, too. However, I'm
> > not sure if sigset_t really has this size on x86-64.
> The solution we come up with is to use array (0..15) to get 1024
This is only the correct solution if that matches the definition of sigset_t
in C. There is nothing sacred out the size in the size clause. it must be
modified to meet the requirement of matching the C definition.