Clang不支持Lock Prefix.我该如何解决?

Kar*_*oor 2 c++ assembly clang inline-assembly

假设这段代码:

  static inline void inc(int64_t* atomic)
  {
    __asm__ __volatile__
    (
      "lock incq %0\n"
        : "=m" (*atomic)
        : "m" (*atomic)
    );
  }
Run Code Online (Sandbox Code Playgroud)

Clang编译器不支持锁前缀(还是?).我现在该怎么办?

Dan*_*bar 5

集成的汇编程序不理解前缀,这些前缀不是单独的语句.作为一种解决方法,您还可以添加一个';' 在"锁定"之后.但正如其他评论所指出的那样,你最好尽可能使用内置插件.