这听起来像是我应该能够通过谷歌搜索的东西,但我找不到很好的参考。到底是做什么的__attribute__((force))
做?如:
return (__attribute__((force)) uint32_t) *p
(这是针对 ARM 系统,与 clang 交叉编译的,但即使在 clang/arm 特定页面中,我也找不到此属性的任何参考。)。
__attribute__((force))
用于抑制稀疏(Linux 内核的 C 语义检查器)中的警告。
The 维基百科的稀疏文章 https://en.wikipedia.org/wiki/Sparse#Annotations列出了稀疏定义的以下属性:
- 地址空间(编号)
- bitwise
- force
- 上下文(表达式,in_context,out_context)
如果您需要有关这些的更多信息,您可以查看稀疏的手册页 https://linux.die.net/man/1/sparse
在linux内核中,这些属性被重新定义了linux/include/linux/compiler_types.h https://github.com/torvalds/linux/blob/master/include/linux/compiler_types.h#L11。例如__force
扩展到__attribute__((force))
or __bitwise
to __attribute__((bitwise))
.
但是,那关于稀疏的linux文档 https://www.kernel.org/doc/html/v4.11/dev-tools/sparse.html告诉我们,gcc 忽略这些属性:
有了 gcc,所有“__bitwise”/“__force 的东西”都消失了,最终看起来就像 gcc 的整数一样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)