How does the `typecheck_fn` macro in the Linux kernel actually check the function type? The file include/linux/typecheck.h of the Linux kernel contains this code: