Ada and x86_64
Andreas Jaeger
aj@suse.de
Wed Aug 28 04:50:00 GMT 2002
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
More information about the Gcc
mailing list