From b2efac468744ce418329438fe413cea578d35d61 Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 26 Jun 2016 16:38:46 +0200 Subject: 5c: handle unused results for cgen64() --- sys/src/cmd/5c/cgen.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/sys/src/cmd/5c/cgen.c b/sys/src/cmd/5c/cgen.c index 0c8e37638..a85271565 100644 --- a/sys/src/cmd/5c/cgen.c +++ b/sys/src/cmd/5c/cgen.c @@ -923,6 +923,10 @@ cgen64(Node *n, Node *nn) return 0; case OCAST: + if(nn == Z){ + nullwarn(l, Z); + goto Out; + } if(typeilp[n->type->etype] && typev[l->type->etype]){ if(l->op == ONAME || l->op == OINDREG) nod0 = *l; @@ -1004,6 +1008,10 @@ cgen64(Node *n, Node *nn) goto Out; case OASHL: + if(nn == Z){ + nullwarn(l, Z); + goto Out; + } cgen(l, nn); assert(r->op == OCONST); a = r->vconst & 63; @@ -1033,6 +1041,10 @@ cgen64(Node *n, Node *nn) case OLSHR: case OASHR: + if(nn == Z){ + nullwarn(l, Z); + goto Out; + } cgen(l, nn); assert(r->op == OCONST); a = r->vconst & 63; @@ -1062,6 +1074,10 @@ cgen64(Node *n, Node *nn) case OAND: case OXOR: case OOR: + if(nn == Z){ + nullwarn(l, r); + goto Out; + } ml = o == OADD && l->op == OLMUL && machcap(l); mr = o == OADD && r->op == OLMUL && machcap(r); if(ml && !mr){ @@ -1133,6 +1149,10 @@ cgen64(Node *n, Node *nn) break; } + if(nn == Z){ + nullwarn(l, r); + goto Out; + } if(r->complex > l->complex) { l = r; r = n->left; -- cgit v1.2.3