problem with stabs on ARM
Philip Blundell
Philip.Blundell@pobox.com
Sun Apr 2 15:12:00 GMT 2000
The current ARM new-backend branch has a problem with stabs. I think this
is due to the recently installed `long calls' patch.
Here is a test case:
void foo() asm ("foo");
void foo()
{
}
Compiled with -g this yields:
[...]
mov pc, lr
.Lfe1:
.size foo,.Lfe1-foo
.Lscope0:
.stabs "",36,0,0,.Lscope0-*foo
.text
.stabs "",100,0,0,.Letext
.Letext:
.ident "GCC: (GNU) 2.96 20000325 (experimental)"
The problem is the extra `*' in the .stabs directive. As far as I can tell,
this comes about because ARM_ENCODE_CALL_TYPE is adding an extra `^' to the
front of the symbol name. This then confuses the code in assemble_name()
which is expecting the `*' to be the first character.
My guess is that arm_strip_name_encoding() should recognize and chop off
leading `*' characters as well. This seems to be in line with other ports
that use ENCODE_SECTION_INFO.
p.
More information about the Gcc-bugs
mailing list