opnames[n->op], n->left, n->right, n->right ? n->right->type : nil, n->type, n->class);
setlineno(n);
+ racewalklist(n->ninit, nil);
+
switch(n->op) {
default:
fatal("racewalk: unknown node type %O", n->op);
case OAS2RECV:
case OAS2FUNC:
case OAS2MAPR:
- racewalklist(n->ninit, init);
racewalknode(&n->left, init, 1, 0);
racewalknode(&n->right, init, 0, 0);
goto ret;
goto ret;
case OFOR:
- racewalklist(n->ninit, nil);
if(n->ntest != N)
racewalklist(n->ntest->ninit, nil);
racewalknode(&n->nincr, init, wr, 0);
goto ret;
case OIF:
- racewalklist(n->ninit, nil);
racewalknode(&n->ntest, &n->ninit, wr, 0);
racewalklist(n->nbody, nil);
racewalklist(n->nelse, nil);
case OCALLFUNC:
racewalknode(&n->left, init, 0, 0);
- racewalklist(n->ninit, init);
racewalklist(n->list, init);
goto ret;
goto ret;
case OSWITCH:
- racewalklist(n->ninit, nil);
if(n->ntest->op == OTYPESW)
// don't bother, we have static typization
return;
goto ret;
case OEMPTY:
- racewalklist(n->ninit, nil);
goto ret;
case ONOT:
case OSLICE:
case OSLICEARR:
// Seems to only lead to double instrumentation.
- //racewalklist(n->ninit, init);
//racewalknode(&n->left, init, 0, 0);
//racewalklist(n->list, init);
goto ret;