compilers: warn about unreachable code
[rsc] --rw-rw-r-- M 76409 glenda sys 12233 Mar 30 17:55 sys/src/cmd/cc/cc.h
/n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/cc.h:475,480 -
/n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/cc.h:475,483
EXTERN int packflg;
EXTERN int fproundflg;
EXTERN int profileflg;
+ EXTERN int ncontin;
+ EXTERN int canreach;
+ EXTERN int warnreach;
EXTERN Bits zbits;
extern char *onames[], *tnames[], *gnames[];
[rsc] --rw-rw-r-- M 76409 glenda sys 27003 Mar 30 17:55 sys/src/cmd/cc/dcl.c
/n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/dcl.c:995,1001 -
/n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/dcl.c:995,1000
return 1;
}
}
- return 0;
}
typedef struct Typetab Typetab;
[rsc] --rw-rw-r-- M 76409 glenda sys 24189 Mar 30 17:55 sys/src/cmd/cc/lex.c
/n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/lex.c:1017,1023 -
/n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/lex.c:1017,1022
}
c = GETC();
}
- return 0;
}
void
[rsc] --rw-rw-r-- M 76409 glenda sys 11731 Mar 30 17:55 sys/src/cmd/cc/macbody
/n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/macbody:452,457 -
/n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/macbody:452,459
cp = s->macro+1;
for(;;) {
c = *cp++;
+ if(c == '\n')
+ c = ' ';
if(c != '#') {
*b++ = c;
if(c == 0)
[rsc] --rw-rw-r-- M 76409 rsc sys 8927 Mar 30 17:55 sys/src/cmd/cc/pgen.c
[diffs elided - too long]
[diff -c /n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/pgen.c /n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/pgen.c]
[rsc] --rw-rw-r-- M 76409 glenda sys 34268 Mar 30 17:55 sys/src/cmd/cc/sub.c
/n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/sub.c:9,15 -
/n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/sub.c:9,20
n->op = t;
n->left = l;
n->right = r;
- n->lineno = lineno;
+ if(l && t != OGOTO)
+ n->lineno = l->lineno;
+ else if(r)
+ n->lineno = r->lineno;
+ else
+ n->lineno = lineno;
newflag = 1;
return n;
}
/n/sourcesdump/2006/0330/plan9/sys/src/cmd/cc/sub.c:103,109 -
/n/sourcesdump/2006/0331/plan9/sys/src/cmd/cc/sub.c:108,114
print(" %T", n->type);
if(n->complex != 0)
print(" (%d)", n->complex);
- print("\n");
+ print(" %L\n", n->lineno);
if(i & 2)
prtree1(n->left, d, 1);
if(i & 1)
|