This is the mail archive of the cygwin mailing list for the Cygwin 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: ffs problem in windows64


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


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