稀疏的Linux工具C属性

时间:2015-06-13 18:11:38

标签: gcc

我找不到关于Sparse Linux工具C属性的文档?有四个 - 地址空间,按位,强制和上下文。你能告诉我他们的用途和做法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

man sparse中有一些文档。它并不多,但它是一个好的开始。内核源代码中还有一点,请参阅Documentation/sparse.txt。那里也不多。

我很确定我在网上某处看到了更多关于稀疏属性的文档 - 但我不记得在哪里。但是,我碰巧知道一个体面的,如果奇怪的文档来源:GCC Bugzilla。这里要求使用许多稀疏功能,并且这些错误包含了不错的文档 - 通常是在原始请求中,但有时会在随后的讨论中详细说明。

  • The bug requesting address_space。这也涵盖了force。这允许您为指针指定地址空间,并防止您将指针混合到不同的地址空间。内核使用它来强制执行有关指向进程空间的指针。 force为您提供了一种避免警告的方法,并且还允许您避免来自其他一些稀疏属性的警告。

  • The bug requesting nocast。 (不是你要求的,但你有。)这可以指定一个类型不应该进行隐式转换。

  • The bug requesting bitwise。这让你可以说一个整数类型必须被“按位”处理 - 对它的数学运算,而不是逻辑运算,没有明确定义。例如,如果您正在处理“错误的结尾”值,这很方便。

  • The bug requesting context。这是最复杂的属性。它用于自动检查某些锁定不变量。