[LLVMdev] dragon egg adding extra characters to function names
Duncan Sands
baldrick at free.fr
Wed Jul 27 00:08:32 PDT 2011
Hi Gregory,
> Ah, non-unicode email... In the llvm output there should be a "1" character,
> i.e. (char) 0x01, prepended to acos and __GI_acos. I'm unable to get it on
> smaller things, but it happens when I try to compile uClibc with llvm. I've
> attached the .o and the .bc for comparison. The text file is the result after
> preprocessing (to avoid having to download a bunch of stuff).
this is normal, and should not turn up in final assembler output. Internally
GCC uses a leading "*" character while LLVM uses a leading "\1" for indicating
that the symbol should turn up in the assembler as is (without the leading
character */\1) and not with something prepended to it (on some platforms an
underscore would normally be prepended to all symbol names for example). Since
llvm-nm works on bitcode, it shows you bitcode names including the leading "\1"
(maybe this is an llvm-nm bug?). However the code generators should eliminate
it.
Ciao, Duncan.
More information about the llvm-dev
mailing list