This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Ada and x86_64


> > David Edelsohn <dje@watson.ibm.com> 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
> bytes,


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]