&& IS(po->operand[0].name, g_labels[l]))
{
if (l == i + 1 && po->op == OP_JMP) {
- // yet another alignment type..
- po->flags |= OPF_RMD|OPF_DONE;
+ // yet another alignment type...
+ po->flags |= OPF_RMD | OPF_DONE;
+ po->flags &= ~OPF_JMP;
+ po->op = OP_NOP;
break;
}
add_label_ref(&g_label_refs[l], i);
continue;
goto parse_words; // lame
}
- if (IS_START(p, "; sctproto:")) {
- sctproto = strdup(p + 11);
- }
else if (IS_START(p, "; sctend")) {
end = 1;
if (!pending_endp)
break;
}
+ else if (g_skip_func)
+ /* ignore remaining attrs */;
+ else if (IS_START(p, "; sctproto:")) {
+ sctproto = strdup(p + 11);
+ }
else if (IS_START(p, "; sctskip_start")) {
- if (in_func && !g_skip_func) {
+ if (in_func) {
if (!skip_code) {
ops[pi].op = OPP_ABORT;
ops[pi].asmln = asmln;