Actually, afaik BITS_PER_ULL == BITS_PER_BITS_WORD Starting program: C:\source\Gnu\emacs\mingw\src/emacs.exe -Q [New Thread 25544.0x113f4] Breakpoint 3, main (argc=2, argv=0xc04880) at emacs.c:702 702 { (gdb) p /d BITS_PER_ULL $1 = 64 (gdb) p /d BITS_PER_BITS_WORD $2 = 64 $ grep HAVE_UNSIGNED config.h #define HAVE_UNSIGNED_LONG_LONG_INT 1 I was at bzr116143. With your change, all the bit vector related the tests pass. Thanks, Fabrice 2014/1/24 Paul Eggert > There's an obvious bug there: a negated-comparison typo, which I fixed in > trunk bzr 116147. > > This raises another point. The bug was triggered because BITS_PER_ULL < > BITS_PER_BITS_WORD. The former should be the number of bits in 'unsigned > long long' (or 'unsigned long' on platforms that lack that), the latter the > number of bits in 'size_t'. I don't know of any platform where the former > is less than the latter, so I worry that there's a misconfiguration problem > here, which might cause some other subtle bugs on your platform. Can you > please give more details about your platform, and how you built Emacs, and > the values of BITS_PER_BITS_WORD, HAVE_UNSIGNED_LONG_LONG_INT, > BITS_PER_ULL, BITS_WORD_MAX, and ULL_MAX on your platform? GDB should be > able to tell you those values. Thanks. >