linuxkernel-must-check-errs

检查 Linux 内核代码是否使用了 linux/err.h 中函数的返回值。同时检查代码是否使用了直接从这些错误函数返回结果的函数。

这在 Linux 内核中非常重要,因为 ERR_PTRPTR_ERRIS_ERRIS_ERR_OR_NULLERR_CASTPTR_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();