rem: } while (b > (unsigned) x->rn_bit);
add: } while (b > abs(x->rn_bit));
context: rn_insert(v_arg, head, dupentry, nodes)	void *v_arg;	struct radix_node_head *head;	int *dupentry;	struct radix_node nodes[2];{	caddr_t v = v_arg;	struct radix_node *top = head->rnh_treetop;	int head_off = top->rn_offset, vlen = (int)*((u_char *)v);	register struct radix_node *t = rn_search(v_arg, top);	register caddr_t cp = v + head_off;	register int b;	struct radix_node *tt;    	/*	 * Find first bit at which v and t->rn_key differ	 */    {	register caddr_t cp2 = t->rn_key + head_off;	register int cmp_res;	caddr_t cplim = v + vlen;	while (cp < cplim)		if (*cp2++ != *cp++)			goto on1;	*dupentry = 1;	return t;on1:	*dupentry = 0;	cmp_res = (cp[-1] ^ cp2[-1]) & 0xff;	for (b = (cp - v) << 3; cmp_res; b--)		cmp_res >>= 1;    }    {	register struct radix_node *p, *x = top;	cp = v;	do {		p = x;		if (cp[x->rn_offset] & x->rn_bmask)			x = x->rn_right;		else			x = x->rn_left;	} while (b > (unsigned) x->rn_bit);				/* x->rn_bit < b && x->rn_bit >= 0 */#ifdef RN_DEBUG	if (rn_debug)		log(LOG_DEBUG, "rn_insert: Going In:\n"), traverse(p);#endif	t = rn_newpair(v_arg, b, nodes); 	tt = t->rn_left;	if ((cp[p->rn_offset] & p->rn_bmask) == 0)		p->rn_left = t;	else		p->rn_right = t;	x->rn_parent = t;	t->rn_parent = p; /* frees x, p as temp vars below */	if ((cp[t->rn_offset] & t->rn_bmask) == 0) {		t->rn_right = x;	} else {		t->rn_right = tt;		t->rn_left = x;	}#ifdef RN_DEBUG	if (rn_debug)		log(LOG_DEBUG, "rn_insert: Coming Out:\n"), traverse(p);#endif    }	return (tt);}