On 4/16/11, Diego Novillo <dnovi...@google.com> wrote: > On Apr 14, 2011 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.
It is used elsewhere in gcc. I took that use as permission to reuse the technique. > > +/* Verify that the indicies of the named operators fit within the > > + number of bits available. */ > > s/indicies/indices/ In the queue. -- Lawrence Crowl