[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