ffs problem in windows64
Christian Franke
Christian.Franke@t-online.de
Tue Sep 23 14:00:00 GMT 2014
Eliot Moss wrote:
> On 9/23/2014 8:47 AM, Paulo César Pereira de Andrade wrote:
>> Hi,
>>
>> I am almost done porting https://savannah.gnu.org/projects/lightning
>> to cygwin and windows64 abi. But I found a problem with the ffs
>> function.
>>
>> The test case is simple:
>>
>> $ cat x.c
>> extern int ffs(int);
>> int main(void) {
>> long l = 0x80000000;
>> int i = ffs((int)l);
>> return 0;
>> }
>>
>> $ gcc -O0 -g3 x.c
>>
>> $ ./a.exe
>> Segmentation fault (...)
>
> WJFFM in 32 bit cygwin.
>
It fails under 64 bit cygwin.
This segfaults if gcc -fno-builtin option is used:
ffs(0x80000000)
These work:
ffs(0xc0000000)
ffs(0x40000000)
Likely a subtle problem in table based ffs() implementation in
winsup/cygwin/syscalls.cc if only upper bit is set. The newlib version
of ffs() works.
Christian
--
Problem reports: http://cygwin.com/problems.html
FAQ: http://cygwin.com/faq/
Documentation: http://cygwin.com/docs.html
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
More information about the Cygwin
mailing list