diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-06-26 16:38:46 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2016-06-26 16:38:46 +0200 |
commit | b2efac468744ce418329438fe413cea578d35d61 (patch) | |
tree | c5b867d2d95c8c4f1d166bfe5d4624efe0e879fe | |
parent | 67a9174ff8425d3e4adec10b06664428f4aaf354 (diff) | |
download | plan9front-b2efac468744ce418329438fe413cea578d35d61.tar.xz |
5c: handle unused results for cgen64()
-rw-r--r-- | sys/src/cmd/5c/cgen.c | 20 |
1 files changed, 20 insertions, 0 deletions
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; |