aeb@mcvax.UUCP (Andries Brouwer) (08/25/83)
A program like
extern long lseek();
main(){
(void) lseek(0, 0L, 0);
}
causes lint (BSD 4.1c) when called as lint -a prog.c to complain
prog.c:
prog.c(4): warning: long assignment may lose accuracy
which seems fairly ridiculous.
The following change fixes this.
$ diff lint.c /usr/src/usr.bin/lint/lint.c
648,649c648
< if( aflag && (tl==LONG || tl==ULONG)
< && (t!=LONG && t!=ULONG && t!=UNDEF) ){
---
> if( aflag && (tl==LONG||tl==ULONG) && (t!=LONG&&t!=ULONG) ){
--
Andries Brouwer -- Math. Centr., Amsterdam -- {philabs,decvax}!mcvax!aebachut@qsi03.UUCP (Achut Reddy) (12/31/83)
The following C program will cause lint to crash with a core dump:
#define macro() (0)
int macro[];
main()
{
x=macro;
}
The problem is in lint, not the C pre-processor, because the C compiler
has no trouble with it.
--
Achut Reddy
sdcrdcf!trw-unix!scgvaxd!qsi03!achutgwyn%brl-vld@sri-unix.UUCP (01/04/84)
From: Doug Gwyn (VLD/VMB) <gwyn@brl-vld> UNIX System V lint has no problem with the example you gave: test.c: 3: macro: argument mismatch test.c: 7: macro: argument mismatch test.c: 7: macro: unterminated macro call test.c ============== (3) syntax error (7) x undefined (8) syntax error