diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cmd/5l/pass.c | 16 | ||||
-rw-r--r-- | src/cmd/6l/pass.c | 5 | ||||
-rw-r--r-- | src/cmd/8l/pass.c | 4 |
3 files changed, 13 insertions, 12 deletions
diff --git a/src/cmd/5l/pass.c b/src/cmd/5l/pass.c index 31af4468f..852a62048 100644 --- a/src/cmd/5l/pass.c +++ b/src/cmd/5l/pass.c @@ -343,10 +343,10 @@ patch(void) s = p->to.sym; switch(s->type) { default: - diag("undefined: %s\n%P", s->name, p); + diag("undefined: %s", s->name); s->type = STEXT; s->value = vexit; - break; + continue; // avoid more error messages case STEXT: p->to.offset = s->value; p->to.type = D_BRANCH; @@ -559,7 +559,7 @@ reachable() if(p == nil) return; s = p->from.sym; - } + } s->used = 1; do{ todo = 0; @@ -771,7 +771,7 @@ ckuse(Sym *s, Sym *s0, Use *u) } return 1; } - + static void setuse(Sym *s, Sym *s0, Use *u) { @@ -786,7 +786,7 @@ setuse(Sym *s, Sym *s0, Use *u) setfpuse(u->p, s0, s); } } - + /* detect BX O(R) which can be done as BL O(R) */ void fnptrs() @@ -795,14 +795,14 @@ fnptrs() Sym *s; Prog *p; Use *u; - + for(i=0; i<NHASH; i++){ for(s = hash[i]; s != S; s = s->link){ if(s->fnptr && (s->type == STEXT || s->type == SLEAF || s->type == SCONST)){ // print("%s : fnptr %d %d\n", s->name, s->thumb, s->foreign); } } - } + } /* record use of syms */ for(p = firstp; p != P; p = p->link){ if(p->as == ATEXT) @@ -827,7 +827,7 @@ fnptrs() for(u = s->use; u != U; u = u->link) setuse(s, s, u); } - } + } } } diff --git a/src/cmd/6l/pass.c b/src/cmd/6l/pass.c index 69b5c7115..3917ac542 100644 --- a/src/cmd/6l/pass.c +++ b/src/cmd/6l/pass.c @@ -377,10 +377,11 @@ patch(void) Bprint(&bso, "%s calls %s\n", TNAME, s->name); switch(s->type) { default: - diag("undefined: %s in %s", s->name, TNAME); + /* diag prints TNAME first */ + diag("undefined: %s", s->name); s->type = STEXT; s->value = vexit; - break; /* or fall through to set offset? */ + continue; // avoid more error messages case STEXT: p->to.offset = s->value; break; diff --git a/src/cmd/8l/pass.c b/src/cmd/8l/pass.c index fa6d6a00f..8a45f40a6 100644 --- a/src/cmd/8l/pass.c +++ b/src/cmd/8l/pass.c @@ -346,10 +346,10 @@ patch(void) switch(s->type) { default: /* diag prints TNAME first */ - diag("%s is undefined", s->name); + diag("undefined: %s", s->name); s->type = STEXT; s->value = vexit; - break; /* or fall through to set offset? */ + continue; // avoid more error messages case STEXT: p->to.offset = s->value; break; |