Clang error: Cannot compile builtin function

Clang error: Cannot compile builtin function

我正在编译一个额外单独添加了 GCC 库的代码。编译时出现 clang 错误

cannot compile

正在显示

我试过添加标志。 -std=89gnu 不适用于 clang。经过一番检查,在编译器文件中发现了相同的功能。

BUILTIN(__builtin_init_dwarf_reg_size_table, "vv*", "n")

错误:

gcc/unwind-dw2.c:1336:3: error: cannot compile this __builtin_init_dwarf_reg_size_table

那是一个非常奇怪的错误信息,你能把完整的放在这里吗?另外,我很惊讶你想用 clang 编译 libgcc,我认为以前没有人真正尝试过。一些更好的重现说明会有所帮助,因为这似乎有效:

echristo@jhereg ~/tmp> 猫 foo.c

char x[16]; void a() { __builtin_init_dwarf_reg_size_table(x); }

echristo@jhereg ~/tmp> clang -S -o - foo.c --target=x86_64-linux-gnu

    .text
    .file   "foo.c"
    .globl  a                       # -- Begin function a
    .p2align    4, 0x90
    .type   a,@function
a:                                      # @a
    .cfi_startproc
# %bb.0:
    pushq   %rbp
    .cfi_def_cfa_offset 16
    .cfi_offset %rbp, -16
    movq    %rsp, %rbp
    .cfi_def_cfa_register %rbp
    movb    , x
    movb    , x+1
    movb    , x+2
    movb    , x+3
    movb    , x+4
    movb    , x+5
    movb    , x+6
    movb    , x+7
    movb    , x+8
    movb    , x+9
    movb    , x+10
    movb    , x+11
    movb    , x+12
    movb    , x+13
    movb    , x+14
    movb    , x+15
    movb    , x+16
    popq    %rbp
    .cfi_def_cfa %rsp, 8
    retq
.Lfunc_end0:
    .size   a, .Lfunc_end0-a
    .cfi_endproc
                                        # -- End function
    .type   x,@object               # @x
    .comm   x,16,16

    .ident  "clang version 9.0.0 (https://github.com/llvm/llvm-project.git b669fea42f5c2a5b203c3f0da2a6b04b90bfd5a7)"
    .section    ".note.GNU-stack","",@progbits
    .addrsig
    .addrsig_sym x