[net.bugs.4bsd] Bug in 4.2 lint argument parser.

peter@rlgvax.UUCP (Peter Klosky) (08/24/84)

XXX

Here is a program file foo.c that calls pause() with three arguments;
no arguments are required, of course:

main(){ pause(1,2,3); }

   The command "lint foo.c" reveals the fact that pause is called with
three arguments.  This is due to a check against lint's set of 
definitions of the standard C library.

   The command "lint -I../includes foo.c" reveals no problems with the
program due to a bug in the argument parser that turns off checking
against the standard C library.  The -I option should be passed to
the C preprocessor and have no other effect. The bug: the -I option
disables checking against the C library because it contains
the letter n.  Had it contained the letter p, it would have switched
to checking against the portable C library definitions.

   A glance at the driver SHELL in the lint directory shows that the
trouble is with the argument parser pattern matching.  There are many
ways to fix the problem; if there is any interest we will post a
fix to the net.   {allegra,seismo}!rlgvax!peter        
-- 
Think snow!