[LLVMdev] Quick question about assembly output

Anton Korobeynikov anton at korobeynikov.info
Sun Nov 15 15:41:54 PST 2009


> For example, I have a symbol such as "main(tart.core.String[])->int". Under
> Darwin, the assembly output says "main(tart.core.String[])->int" (with
> quotes), but when I generate the assembly file under Linux I get
> "main_28_tart.core.String_5B__5D__29__2D__3E_int". It appears that something
> is translating all of the punctuation characters to escape sequences.
> My question is, can this be controlled and/or disabled? Given that I'm using
> the same assembler (Gnu) in both cases, is it really necessary?
Different file formats / assemblers have different restrictions on
characters which can be used in symbol names.
LLVM pass the stuff through the mangler to ensure that the output
assemble properly. And this cannot be disabled
if you really want the output to be usable :)

And also you're not using the same assembler - darwin assembler is
completely different from gnu.

-- 
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University



More information about the llvm-dev mailing list