I compiled .S file using command:
clang-8 -c funcs.s -o funcs.o -emit-llvm
I found, that .o file was generated in ELF format. I was expected to see llvm-ir format (with "BC" characters at the beginning of resulting file).
Seems, Clang ignores "-emit-llvm" flag.
答案 0 :(得分:2)
asm源代码和二进制可执行文件/目标文件基本上等效于此问题。您仍在尝试将其反编译为LLVM-IR。这很难,而且我不知道是否存在反编译器。
似乎,Clang忽略了“ -emit-llvm”标志。
不,它只是不影响您要求执行的操作中涉及的任何步骤。
您要求编译器将其编译为.o
。
如果输入为.c
,而输出为.s
,则它可以发出LLVM-IR,但是在这种情况下LLVM-IR并不是组装过程的一部分从.s
到.o
。
因此,clang
运行时不存在该程序的LLVM-IR表示,因此没有任何内容可发送。