Gcc llvm as和binutils as之间的差异,变量命名

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

我试着收集一个例子

测试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
        .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