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, &ltext_label_name[1]);

and

  fprintf (asmfile, ",%d,0,0,%s\n", 
	   N_SO, &ltext_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