diff options
| author | Charles.Forsyth <devnull@localhost> | 2008-02-01 19:00:57 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2008-02-01 19:00:57 +0000 |
| commit | 1ca4518d984a3e2dee44a160397cb720c61d2449 (patch) | |
| tree | bbc04f7959db7e9b997ca4d4f07dffcd915701ce | |
| parent | e2adf7ef1f7981d7eb5005b22a5ce5a61bda8344 (diff) | |
20080201-1908
| -rw-r--r-- | limbo/ecom.c | 2 | ||||
| -rw-r--r-- | limbo/optim.c | 2 | ||||
| -rw-r--r-- | limbo/typecheck.c | 6 | ||||
| -rw-r--r-- | limbo/types.c | 82 |
4 files changed, 45 insertions, 47 deletions
diff --git a/limbo/ecom.c b/limbo/ecom.c index 2dfa2f68..86417808 100644 --- a/limbo/ecom.c +++ b/limbo/ecom.c @@ -2372,7 +2372,6 @@ tupaliased(Node *n, Node *e) return 1; e = e->right; } - return 0; } /* @@ -2390,7 +2389,6 @@ tupsaliased(Node *n, Node *e) return 1; n = n->right; } - return 0; } /* diff --git a/limbo/optim.c b/limbo/optim.c index c74f1432..324bed60 100644 --- a/limbo/optim.c +++ b/limbo/optim.c @@ -816,7 +816,7 @@ pins(Inst *i) { /* print("%L %ld ", i->src.start, i->pc); */ print(" %ld ", i->pc); - if(i->op >= 0 && i->op < MAXDIS) + if(i->op < MAXDIS) print("%s", instname[i->op]); else print("noop"); diff --git a/limbo/typecheck.c b/limbo/typecheck.c index 0fcfbf4b..08bfef16 100644 --- a/limbo/typecheck.c +++ b/limbo/typecheck.c @@ -2148,7 +2148,6 @@ marklval(Node *n) default: return 0; } - return 0; } /* @@ -2483,8 +2482,9 @@ if(debug['v']) print("fnlookup: %p\n", id); mod = args0->left; break; } - if(args0 != nil) - args0 = args0->right; + if(args0 == nil) + break; + args0 = args0->right; } } if(mod == nil && (dot = module(id)) != nil && !isimpmod(dot->sym)) diff --git a/limbo/types.c b/limbo/types.c index 04115207..42b14289 100644 --- a/limbo/types.c +++ b/limbo/types.c @@ -2805,7 +2805,7 @@ tequal(Type *t1, Type *t2) eqset = 0; ok = rtequal(t1, t2); v = cleareqrec(t1) + cleareqrec(t2); - if(0 && v != eqset) + if(v != eqset && 0) fatal("recid t1 %t and t2 %t not balanced in tequal: %d %d", t1, t2, v, eqset); eqset = 0; return ok; @@ -3205,7 +3205,6 @@ if(debug['w']) print("rtunifyb - %T %T\n", t1, t2); case Tpoly: return t1 == t2; } - return 1; } static int @@ -3314,48 +3313,50 @@ tpolys(Type *t) if(t->flags&(POLY|NOPOLY)) return t->flags&POLY; switch(t->kind){ - default: - v = 0; - break; - case Tarrow: - case Tdot: - case Tpoly: - v = 1; - break; - case Tref: - case Tlist: - case Tarray: - case Tchan: - v = tpolys(t->tof); - break; - case Tid: - v = tpolys(t->decl->ty); - break; - case Tinst: - for(tl = t->u.tlist; tl != nil; tl = tl->nxt) - if(tpolys(tl->t)){ - v = 1; - break; - } - v = tpolys(t->tof); - break; - case Tfn: - case Tadt: - case Tadtpick: - case Ttuple: - case Texception: - if(t->polys != nil){ + default: + v = 0; + break; + case Tarrow: + case Tdot: + case Tpoly: + v = 1; + break; + case Tref: + case Tlist: + case Tarray: + case Tchan: + v = tpolys(t->tof); + break; + case Tid: + v = tpolys(t->decl->ty); + break; + case Tinst: + v = 0; + for(tl = t->u.tlist; tl != nil; tl = tl->nxt) + if(tpolys(tl->t)){ v = 1; break; } - if(t->rec&TRvis) - return 0; - t->rec |= TRvis; - v = tpolys(t->tof) || dpolys(t->polys) || dpolys(t->ids) || dpolys(t->tags); - t->rec &= ~TRvis; - if(t->kind == Tadtpick && v == 0) - v = tpolys(t->decl->dot->ty); + if(v == 0) + v = tpolys(t->tof); + break; + case Tfn: + case Tadt: + case Tadtpick: + case Ttuple: + case Texception: + if(t->polys != nil){ + v = 1; break; + } + if(t->rec&TRvis) + return 0; + t->rec |= TRvis; + v = tpolys(t->tof) || dpolys(t->polys) || dpolys(t->ids) || dpolys(t->tags); + t->rec &= ~TRvis; + if(t->kind == Tadtpick && v == 0) + v = tpolys(t->decl->dot->ty); + break; } if(v) t->flags |= POLY; @@ -4229,7 +4230,6 @@ tparent1(Type *t1, Type *t2) return t1; return t1->decl->dot->ty; } - return t1; } Type* |
