version 1.39, 2015/10/26 14:08:47 |
version 1.40, 2015/10/26 22:24:44 |
|
|
break; |
break; |
} |
} |
if ((cp->u.c = findlabel(cp->t)) == NULL) |
if ((cp->u.c = findlabel(cp->t)) == NULL) |
error(COMPILE2, "undefined label '%s'", cp->t); |
error(COMPILE, "undefined label '%s'", cp->t); |
free(cp->t); |
free(cp->t); |
break; |
break; |
case '{': |
case '{': |
|
|
lhp = &labels[h & LHMASK]; |
lhp = &labels[h & LHMASK]; |
for (lh = *lhp; lh != NULL; lh = lh->lh_next) |
for (lh = *lhp; lh != NULL; lh = lh->lh_next) |
if (lh->lh_hash == h && strcmp(cp->t, lh->lh_cmd->t) == 0) |
if (lh->lh_hash == h && strcmp(cp->t, lh->lh_cmd->t) == 0) |
error(COMPILE2, "duplicate label '%s'", cp->t); |
error(COMPILE, "duplicate label '%s'", cp->t); |
lh = xmalloc(sizeof *lh); |
lh = xmalloc(sizeof *lh); |
lh->lh_next = *lhp; |
lh->lh_next = *lhp; |
lh->lh_hash = h; |
lh->lh_hash = h; |