int bcomplex(Node *n, Node *c) { Node *b, nod; complex(n); if(n->type != T) if(tcompat(n, T, n->type, tnot)) n->type = T; if(n->type == T) { gbranch(OGOTO); return 0; } if(c != Z && n->op == OCONST && deadheads(c)) return 1; if(typev[n->type->etype] && machcap(Z)) { b = &nod; b->op = ONE; b->left = n; b->right = new(0, Z, Z); *b->right = *nodconst(0); b->right->type = n->type; b->type = types[TLONG]; n = b; }
void bcomplex(Node *n) { complex(n); if(n->type != T) if(tcompat(n, T, n->type, tnot)) n->type = T; if(n->type != T) { bool64(n); doinc(n, PRE); boolgen(n, 1, D_NONE, Z, n); } else gbranch(OGOTO); }
int bcomplex(Node *n, Node *c) { complex(n); if(n->type != T) if(tcompat(n, T, n->type, tnot)) n->type = T; if(n->type != T) { if(c != Z && n->op == OCONST && deadheads(c)) return 1; bool64(n); boolgen(n, 1, Z); } else gbranch(OGOTO); return 0; }