Fix name clash for ! __STDC__

Alan Modra alan@linuxcare.com.au
Sat Jun 3 04:08:00 GMT 2000


On Sat, 3 Jun 2000, Andrew Cagney wrote:

> Alan Modra wrote:
> > 
> > On Fri, 2 Jun 2000, Nick Clifton wrote:
> > 
> > > :  #ifdef __STDC__
> > > :  #define START_RELOC_NUMBERS(name)   enum name { _##name = -1
> > > :  #else
> > > : -#define START_RELOC_NUMBERS(name)   enum name { name = -1
> > > : +#define START_RELOC_NUMBERS(name)   enum name { _/**/name = -1
> > > :  #endif
> > >
> > > Is this guarnateed to work with old K&R compilers ?
> > 
> > Well, the /**/ trick is the pre-ansi standard way to paste tokens.  Hmm,
> > grepping through the source finds a number of such occurrences,
> > eg. include/symcat.h and bfd/bfd-in.h.  I'll use "|| defined(ALMOST_STDC)"
> > as these files do.
> 
> Should the code use include/symcat.h?
> (since you're stuck in K&R land :-)

Ah well, this is what I should really do:  Get rid of END_RELOC_NUMBERS,
and make up a LAST_RELOC_NUMBER macro so that we could tack commas on the
end of the RELOC_NUMBER definition.  This would allow removal of the dummy
-1 valued enum (the one that needs the token pasting), and probably allow
gcc to optimise a little more.

-- 
Linuxcare.  Support for the Revolution.



More information about the Binutils mailing list