小编Jos*_* Op的帖子

使用 goto 扩展 asm,包括 gcc 文档中的一个示例,无法编译

某些使用goto限定符的扩展汇编语句无法使用 GCC 10.1.0 进行编译。具体来说,

int foo(int count)
{
  asm goto ("dec %0; jb %l[stop]"
            : "+r" (count)
            :
            :
            : stop);
  return count;
stop:
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

(这是GCC 扩展 asm 文档中的一个示例)无法使用消息编译expected ‘:’ before string constant。删除"+r" (count)dec %0允许它成功编译,但无论我在何时尝试在与 goto 标签相同的 asm 语句中提供输出操作数时,它都会以同样的方式出错。

c gcc goto inline-assembly

5
推荐指数
2
解决办法
220
查看次数

标签 统计

c ×1

gcc ×1

goto ×1

inline-assembly ×1