Reiserism detector
Henry Spencer
henry at utzoo.UUCP
Fri Mar 22 04:15:16 AEST 1985
For those of you concerned about possible (mis)use of the Reiser
preprocessor features in code you maintain, enclosed is a dead-simple
shell program that looks for worrisome constructs in C source files.
It's really too simplistic, and does produce false alarms, but it will
nevertheless reduce the amount of code to be inspected by a couple of
orders of magnitude.
It looks for macro substitution in strings using the (somewhat naive)
heuristic that any parameterized macro containing a string is suspect.
This produces some false alarms for things like printf's in macros,
but not many. It looks for token concatenatation by looking for the
magic /**/ sequence that accomplishes it in the Reiser preprocessor.
-----
: 'Simplistic search for possible Reiserisms in C source files.'
PATH=/bin:/usr/bin ; export PATH
: 'Look for parameterized macros containing strings.'
egrep '^#[ ]*define[ ]+[a-zA-Z_][a-zA-Z0-9_]*\(.*["'"']" $*
: 'Look for the magic /**/ that vanishes, causing token concatenation.'
egrep '^#[ ]*define[ ]+.*/\*\*/' $*
-----
--
Henry Spencer @ U of Toronto Zoology
{allegra,ihnp4,linus,decvax}!utzoo!henry
More information about the Comp.lang.c
mailing list