On 06/04/2013 01:30 PM, Sean McBride wrote:
> 'CTestTestFdSetSize' is superficially happening in an OS header's macro:
> 
> static __inline int
> __darwin_fd_isset(int _n, const struct fd_set *_p)
> {
>       return (_p->fds_bits[_n/__DARWIN_NFDBITS] & (1<<(_n % 
> __DARWIN_NFDBITS)));
> }
> 
> where right right-hand side of the << is apparently 31.  __DARWIN_NFDBITS is 
> 32.
> 
> Alas, gdb refuses to give me a backtrace.  But there are only 9 FD_ISSET() in
> CMake, anyone familiar with this test/code?

The test covers CTest's ability to drive many child processes at once
so the file descriptor set is getting filled up.  The FD_ISSET calls
in Source/kwsys/ProcessUNIX.c will be the ones triggering this.  It
looks to me like the bug is in the OS header macro because the "1<<"
should be "1u<<".

-Brad
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers

Reply via email to