maart@cs.vu.nl (09/06/88)
What does YOUR lint say about the following program?
% cat c.c
main(argc, argv)
int	argc;
char	**argv;
{
	while (*argv != argv[1] && (*argv = argv[1]) && (argc = 0) || (*++argv
		&& (**argv && ((++argc)[*argv] && (**argv <= argc[*argv] ||
/*7*/		(**argv += argc[*argv] -= **argv = argc[*argv] - **argv)) &&
		--argv || putchar(**argv) && ++*argv--) || putchar(10))))
		;
}
%
Sun3 with Sun UNIX 4.2 Release 3.5:
	% /usr/bin/lint -abchpx c.c
	%
Sun4 with SunOS Release Sys4-3.2:
	% /usr/bin/lint -abchpx c.c
	lint: Option -p not recognized
	% ^p^
	/usr/bin/lint -abchx c.c
	%
On our other sun4 (same OS) the response was:
	lint: Fatal error in lint2: Bus error (core dumped)
VAX11/750 with 4.3 BSD UNIX:
	% /usr/bin/lint -abchpx c.c
	%
PDP11/44 with 2.9BSD:
	% /usr/bin/lint -abchpx c.c
	%
Mantra m68000 with Sys5 V3:
	% /usr/bin/lint -abchpx c.c
	c.c
	==============
	(10)  warning: main() returns random value to invocation environment
 
	==============
	name used but not defined
	    putcha      c.c(8)
	%
Whereas the output should be something like:
	c.c(7): warning: evaluation order undefined
The only lint to catch this was ACK (The Amsterdam Compiler Kit) lint (not
generally available right now, I've been told).
(Yes, c.c was a winning entry in the IOCCC and I was very satisfied that lint
didn't complain about it... What would it do?)
Thanks to Leendert van Doorn, Ceriel Jacobs and Dick Grune for pointing out
the bug.maart@cs.vu.nl (Maarten Litmaath) (09/06/88)
In article <1344@solo12.cs.vu.nl> maart@cs.vu.nl (Maarten Litmaath) writes:
\Mantra m68000 with Sys5 V3:
\
\	% /usr/bin/lint -abchpx c.c
                         ^^^^^^
That should have been only '-p', of course, due to those nice Sys5 semantics.
-- 
    Alles klar,                       |Maarten Litmaath @ Free U Amsterdam:
                   Herr Kommissar?    |maart@cs.vu.nl, mcvax!botter!maart