Clang 不支持 Lock 前缀。我该如何解决?
假设此代码:
static inline void inc(int64_t* atomic)
{
__asm__ __volatile__
(
"lock incq %0\n"
: "=m" (*atomic)
: "m" (*atomic)
);
}
Clang 编译器不支持锁前缀(还?)。我现在该怎么办?
Assume this code:
static inline void inc(int64_t* atomic)
{
__asm__ __volatile__
(
"lock incq %0\n"
: "=m" (*atomic)
: "m" (*atomic)
);
}
The Clang compiler doesn't support the lock prefix (yet?). What shall I do now?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
集成汇编器不理解还不是单独语句的前缀。作为解决方法,您也可以仅添加“;” “锁定”之后。但正如其他评论指出的那样,您最好尽可能使用内置函数。
The integrated assembler doesn't understand prefixes which aren't separate statements yet. As a workaround, you can also just add a ';' after "lock". But as the other comment notes, you are better off using built-ins whenever possible.
为什么不使用内置的...?
Why not use the built-ins...?