Bug in 4.1bsd /bin/as
Duk Bekema
duk at klipper.UUCP
Tue Jan 22 03:33:53 AEST 1985
If you redefine a label beginning with an 'L'
(for some reason this is allowed), our 4.1bsd makes an INTERNAL ERROR.
Repeat by:
echo L:L: | /bin/as
(Yes, no more).
If you have the bug, you will get the message:
Assembler:
"<stdin>", line 2: INTERNAL ERROR: Wrote 0 symbols, wanted to write -1 symbols.
Here is a context diff:
*** /usr/src/cmd/as/asparse.c Thu Nov 6 05:32:30 1980
--- asparse.c Mon Jan 21 16:44:27 1985
***************
*** 162,167
dotp->e_xvalue);
}
}
}
np->s_type &= ~(XTYPE|XFORW);
np->s_type |= dotp->e_xtype;
--- 162,169 -----
dotp->e_xvalue);
}
}
+ } else if (passno == 1 && np->s_name[0] == 'L') {
+ nlabels++;
}
np->s_type &= ~(XTYPE|XFORW);
np->s_type |= dotp->e_xtype;
***************
*** 168,176
np->s_value = dotp->e_xvalue;
if (passno == 1){
np->s_index = dotp-usedot;
- if (np->s_name[0] == 'L'){
- nlabels++;
- }
np->s_tag = LABELID;
}
} /*end of this being a label*/
--- 170,175 -----
np->s_value = dotp->e_xvalue;
if (passno == 1){
np->s_index = dotp-usedot;
np->s_tag = LABELID;
}
} /*end of this being a label*/
Duk Bekema
...!{seismo|decvax|philabs}!mcvax!vu44!duk
More information about the Comp.bugs.4bsd.ucb-fixes
mailing list