# Extra Clang Tools 21.1.6 documentation

## clang-tidy - linuxkernel-must-check-errs

# linuxkernel-must-check-errs

Checks Linux kernel code to see if it uses the results from the functions in `linux/err.h`. Also checks to see if code uses the results from functions that directly return a value from one of these error functions.

This is important in the Linux kernel because `ERR_PTR`, `PTR_ERR`, `IS_ERR`, `IS_ERR_OR_NULL`, `ERR_CAST`, and `PTR_ERR_OR_ZERO` return values must be checked, since positive pointers and negative error codes are being used in the same context. These functions are marked with `__attribute__((warn_unused_result))`, but some kernel versions do not have this warning enabled for clang.

Examples:

    /* 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();