__attribute __((force))的作用是什么?

时间:2018-11-02 14:38:24

标签: c attributes arm clang

听起来我应该可以使用Google,但找不到很好的参考。 __attribute__((force))到底是做什么的?如:

 return (__attribute__((force)) uint32_t) *p

(这是针对使用clang交叉编译的ARM系统,但是即使在clang / arm特定页面中,我也找不到此属性的任何引用。)

1 个答案:

答案 0 :(得分:3)

__attribute__((force))用于抑制稀疏(Linux内核的c语义检查器)中的警告。

wikipedia article of sparse列出了稀疏定义的以下属性:

  • address_space(num)
  • 按位
  • 上下文(表达式,in_context,out_context)

如果您需要有关这些的更多信息,可以查看the man page of sparse

在Linux内核中,某些属性在 linux/include/linux/compiler_types.h中重新定义。例如,__force扩展为__attribute__((force))__bitwise扩展为__attribute__((bitwise))

然而linux documentation about sparse告诉我们,gcc忽略了以下属性:

  

使用gcc,所有“ __按位” /“ __ force的东西”都消失了,所有这些最终看起来就像gcc的整数一样。