> > > @@ -162,6 +162,7 @@
> > >  WHERE const char *ReleaseDate;
> > >  
> > >  WHERE HASH *Groups;
> > > +WHERE HASH *Labels;
> > 
> > A bit off topic, what do people think of the `WHERE` macro? To me, it
> > only makes tools like cscope confused and doesn't improve readability, I
> > would really love to get rid of them at some point.
> 
> No objection.  IIRC this is an old construct for supporting K&R and ANSI
> in the same code.  I'm not sure we need it anymore.

I think it's just a trick to declare these variables as extern but in
main.c. I believe most of these globals are touched only once in init.c
and then only in their respective source files.

> 
> > > +static void label_ref_dec(char *label)
> > > +{
> > > +  uintptr_t count;
> > 
> > Why uintptr_t and not int or unsigned?
> 
> Because int and void* can't be inter-typecast on platforms where
> pointers are 64-bit and ints are 32 (LP64). uintptr_t is actually the
> correct standard type for an int that will be cast to pointer or vice
> versa.

Interesting! Thanks for the explanation.

Reply via email to