diff --git a/sys/src/cmd/1c/cgen.c b/sys/src/cmd/1c/cgen.c index 2f121e510..d790f75e9 100644 --- a/sys/src/cmd/1c/cgen.c +++ b/sys/src/cmd/1c/cgen.c @@ -376,7 +376,10 @@ cgen(Node *n, int result, Node *nn) case OCAST: if(result == D_NONE) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, D_NONE, Z); break; } lg = result; diff --git a/sys/src/cmd/2c/cgen.c b/sys/src/cmd/2c/cgen.c index 3c1d4b3d9..ca78a8c55 100644 --- a/sys/src/cmd/2c/cgen.c +++ b/sys/src/cmd/2c/cgen.c @@ -376,7 +376,10 @@ cgen(Node *n, int result, Node *nn) case OCAST: if(result == D_NONE) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, D_NONE, Z); break; } lg = result; diff --git a/sys/src/cmd/5c/cgen.c b/sys/src/cmd/5c/cgen.c index 42421f6cc..c968a48f7 100644 --- a/sys/src/cmd/5c/cgen.c +++ b/sys/src/cmd/5c/cgen.c @@ -399,7 +399,10 @@ cgenrel(Node *n, Node *nn, int inrel) case OCAST: if(nn == Z) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, Z); break; } /* diff --git a/sys/src/cmd/6c/cgen.c b/sys/src/cmd/6c/cgen.c index 8bac8370d..add70f5f9 100644 --- a/sys/src/cmd/6c/cgen.c +++ b/sys/src/cmd/6c/cgen.c @@ -976,7 +976,10 @@ cgen(Node *n, Node *nn) case OCAST: if(nn == Z) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, Z); break; } /* diff --git a/sys/src/cmd/8c/cgen.c b/sys/src/cmd/8c/cgen.c index 3d929ae7c..070155fb7 100644 --- a/sys/src/cmd/8c/cgen.c +++ b/sys/src/cmd/8c/cgen.c @@ -994,7 +994,10 @@ cgen(Node *n, Node *nn) case OCAST: if(nn == Z) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, Z); break; } /* diff --git a/sys/src/cmd/kc/cgen.c b/sys/src/cmd/kc/cgen.c index aa3c2ebff..14be95d6a 100644 --- a/sys/src/cmd/kc/cgen.c +++ b/sys/src/cmd/kc/cgen.c @@ -358,7 +358,10 @@ cgen(Node *n, Node *nn) case OCAST: if(nn == Z) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, Z); break; } /* diff --git a/sys/src/cmd/qc/cgen.c b/sys/src/cmd/qc/cgen.c index 018d80bf3..b375ff6ce 100644 --- a/sys/src/cmd/qc/cgen.c +++ b/sys/src/cmd/qc/cgen.c @@ -395,7 +395,10 @@ cgen(Node *n, Node *nn) case OCAST: if(nn == Z) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, Z); break; } /* diff --git a/sys/src/cmd/vc/cgen.c b/sys/src/cmd/vc/cgen.c index e5d4fc349..425134a10 100644 --- a/sys/src/cmd/vc/cgen.c +++ b/sys/src/cmd/vc/cgen.c @@ -359,7 +359,10 @@ cgen(Node *n, Node *nn) case OCAST: if(nn == Z) { - nullwarn(l, Z); + if(n->type != types[TVOID]) + nullwarn(l, Z); + else + cgen(l, Z); break; } /*