diff -r 22109b5daced sys/src/cmd/cc/com.c --- a/sys/src/cmd/cc/com.c Wed Feb 26 21:45:00 2020 -0800 +++ b/sys/src/cmd/cc/com.c Wed Feb 26 23:16:23 2020 -0800 @@ -342,10 +342,12 @@ if(o | tcom(r->right)) goto bad; if(r->right->type->etype == TIND && vconst(r->left) == 0) { + r->type = r->right->type; r->left->type = r->right->type; r->left->vconst = 0; } if(r->left->type->etype == TIND && vconst(r->right) == 0) { + r->type = r->left->type; r->right->type = r->left->type; r->right->vconst = 0; } diff -r 22109b5daced sys/src/cmd/cc/sub.c --- a/sys/src/cmd/cc/sub.c Wed Feb 26 21:45:00 2020 -0800 +++ b/sys/src/cmd/cc/sub.c Wed Feb 26 23:16:23 2020 -0800 @@ -1032,6 +1032,13 @@ if(n == Z) goto no; + while(n->op == OCAST){ + if(n->type->etype != TIND) + break; + if(n->type->link->etype != TVOID) + break; + n = n->left; + } if(n->op != OCONST) goto no; if(n->type == T)