linuxkernel-must-check-errs¶
检查 Linux 内核代码是否使用了 linux/err.h 中函数的返回值。同时检查代码是否使用了直接从这些错误函数返回结果的函数。
这在 Linux 内核中非常重要,因为 ERR_PTR、PTR_ERR、IS_ERR、IS_ERR_OR_NULL、ERR_CAST 和 PTR_ERR_OR_ZERO 返回值必须进行检查,因为正指针和负错误代码在同一个上下文中使用。这些函数使用 __attribute__((warn_unused_result)) 标记,但某些内核版本没有为 clang 启用此警告。
示例
/* Trivial unused call to an ERR function */
PTR_ERR_OR_ZERO(some_function_call());
/* A function that returns ERR_PTR. */
void *fn() { ERR_PTR(-EINVAL); }
/* An invalid use of fn. */
fn();