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


dewar@gnat.com (Robert Dewar) writes:

>> > 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.

it does indeed match the spec this way,

thanks,
Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj


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