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