[LLVMdev] [DragonEgg] Strange call to @"\01__isoc99_fscanf"

Anton Korobeynikov anton at korobeynikov.info
Tue Dec 25 01:40:03 PST 2012


> While testing a File I/O sample program, I've encountered a link failure due
> to missing implementation of "\01__isoc99_fscanf" function. I think this
> function should be named "__isoc99_fscanf" instead. Please see the program
> code and LLVM IR generated by DragonEgg and clang below. It shows that clang
> generates "__isoc99_fscanf", while DragonEgg gives "\01__isoc99_fscanf". We
> generally use DragonEgg as our compiler frontend, so it is more important.
> What could be the reason of "\01" issue?
\01 is the magic prefix from asm("") thing in C sources. Basically
this is the instruction to mangler not to change the name in any way,
so, it should be emitted to assembler / binary code as
"__isoc99_fscanf".

How does .s / .o look like?

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



More information about the llvm-dev mailing list