Gcc llvm as和binutils as之间的差异,变量命名
我试着收集一个例子 测试s:Gcc llvm as和binutils as之间的差异,变量命名,gcc,llvm,gnu-assembler,binutils,Gcc,Llvm,Gnu Assembler,Binutils,我试着收集一个例子 测试s: .file "test.c" .text .globl f .type f, @function f: .LFB0: .cfi_startproc movl $"A,B", %eax ret .cfi_endproc .LFE0: .size f, .-f
.file "test.c"
.text
.globl f
.type f, @function
f:
.LFB0:
.cfi_startproc
movl $"A,B", %eax
ret
.cfi_endproc
.LFE0:
.size f, .-f
.comm "A,B",4,4
.ident "GCC: (GNU) 7.3.0"
.section .note.GNU-stack,"",@progbits
为什么clang-9可以进行组装测试,而gnu as不能这样做
注:基本上,测试是从python/numba/llvmlite llvm-IR创建的(作为llvm优化的结果?)这可能是一个bug,因为GNU允许在符号名中使用除NUL以外的任何字符(如果用引号括起来)。如果是bug,那么如何提交bug或要求llvm的开发人员提交bug(因为:“用户帐户创建已被限制”)?
$ binutils-2.35/bin/as test.s
test.x86.s: Assembler messages:
test.x86.s:8: Warning: missing closing '"'
test.x86.s:8: Warning: missing closing '"'
test.x86.s:8: Error: too many memory references for `mov'
$ clang-9 -c test.s ; echo $?
0