Messages in this thread Patch in this message | | | From | Ian Abbott <> | Subject | [PATCH] typecheck.h: Force a compilation error if typecheck(type,x) fails | Date | Thu, 3 Feb 2022 14:35:57 +0000 |
| |
Calling the `typecheck(type,x)` macro emits a compiler warning if the type of `x` is incompatible with type `type`. Change it to force a compilation error instead.
Signed-off-by: Ian Abbott <abbotti@mev.co.uk> --- include/linux/typecheck.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/include/linux/typecheck.h b/include/linux/typecheck.h index 46b15e2aaefb..c9125304f6ba 100644 --- a/include/linux/typecheck.h +++ b/include/linux/typecheck.h @@ -2,14 +2,15 @@ #ifndef TYPECHECK_H_INCLUDED #define TYPECHECK_H_INCLUDED +#include <linux/compiler_types.h> +#include <linux/build_bug.h> + /* * Check at compile time that something is of a particular type. * Always evaluates to 1 so you may use it easily in comparisons. */ #define typecheck(type,x) \ -({ type __dummy; \ - typeof(x) __dummy2; \ - (void)(&__dummy == &__dummy2); \ +({ BUILD_BUG_ON(!__same_type(type, (x))); \ 1; \ }) -- 2.34.1
| |