On Thu, Apr 14, 2011 at 22:01, Lawrence Crowl <cr...@google.com> wrote:
> Unfortunately, five bits are not sufficient for the alternate use of > cpp_hashnode.directive_index as a named operator index. So, I have reverted > the number of bits from five back to seven. As a result, we now have 34 bits > in small fields, and the size of cpp_hashnode will increase from two to three > words on 32-bit systems. The size on 64-bit systems remains unchanged because > these bits go into an alignment gap. I don't think this is a big issue. Tom? > +/* Make sure the bitfield directive_index in include/cpplib.h is large > + enough to index the entire table. */ > + > +unsigned char too_many_directives_for_bitfield[ > + N_DIRECTIVES <= (1 << CPP_HASHNODE_INDEX_BITS) > + ? 1 : -1]; Heh, I'm not sure what to think of this trick. I think I like it, though. > +/* Verify that the indicies of the named operators fit within the > + number of bits available. */ s/indicies/indices/ OK otherwise. Diego.