Node *r, *l, *var, *a;
NodeList *ll, *lr, *lpost;
Type *t;
- int et;
+ int et, old_safemode;
int64 v;
int32 lno;
Node *n, *fn, *n1, *n2;
case ONE:
walkexpr(&n->left, init);
walkexpr(&n->right, init);
+ // Disable safemode while compiling this code: the code we
+ // generate internally can refer to unsafe.Pointer.
+ // In this case it can happen if we need to generate an ==
+ // for a struct containing a reflect.Value, which itself has
+ // an unexported field of type unsafe.Pointer.
+ old_safemode = safemode;
+ safemode = 0;
walkcompare(&n, init);
+ safemode = old_safemode;
goto ret;
case OANDAND: