gpt4 book ai didi

铛-错误: non-ASM statement in naked function is not supported

转载 作者:行者123 更新时间:2023-12-05 01:44:04 71 4
gpt4 key购买 nike

$ clang --version
clang version 5.0.0 (tags/RELEASE_500/final)

.

CC ../../py/nlrthumb.c
../../py/nlrthumb.c:79:5: error: non-ASM statement in naked function is not supported
return 0; // needed to silence compiler warning

为什么 Clang 不支持裸函数中的非 ASM 语句

这在 gcc 上运行良好。

mailing list explains it as

Naked functions don't have prologues or epilogues, so doing codegen for anything other than inline assembly would be completely hit or miss.

那么 gcc 是怎么做到的呢?

最佳答案

我应该把它写成答案而不是评论。问题是:

为什么 Clang 不支持裸函数中的非 ASM 语句?这在 gcc 上运行良好。

答案是这在 gcc 中不能正常工作。引用自 gcc docs对于 naked 属性:

Only basic asm statements can safely be included in naked functions. While using extended asm or a mixture of basic asm and C code may appear to work, they cannot be depended upon to work reliably and are not supported.

如果有更明确的方式来表达这一点,我想不出。

请注意,虽然上面的特定链接适用于 ARM(我猜 OP 正在使用它),但我相信相同的文本适用于支持 naked 的所有平台。

关于铛-错误: non-ASM statement in naked function is not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47316611/

71 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com