dbxout_init() botches labels
David Gordon Hogan
dhog@plan9.bell-labs.com
Wed Jun 20 11:25:00 GMT 2001
In dbxout_init(), the label generated by the ASM_GENERATE_INTERNAL_LABEL()
macro has its first character excised unconditionally in two places:
fprintf (asmfile, ",%d,0,0,%s\n", N_SO, <ext_label_name[1]);
and
fprintf (asmfile, ",%d,0,0,%s\n",
N_SO, <ext_label_name[1]);
I believe that dbxout_init() should be testing for a first character of '*',
much like assemble_name() does, and behaving accordingly.
This bug causes the N_SO's to be removed by the linker (due to the
undefined symbol) on architectures where ASM_GENERATE_INTERNAL_LABEL()
is defined without the leading '*'.
This bug exists in gcc 3.0.
More information about the Gcc-bugs
mailing list