Messages in this thread Patch in this message |  | | | From | Rusty Russell <> | | Date | Sat, 28 Mar 2009 23:53:44 +1030 | | Subject | [PATCH 3/5] module_param: add __same_type convenience wrapper for __builtin_types_compatible_p |
| |
Impact: new API
__builtin_types_compatible_p() is a little awkward to use: it takes two types rather than types or variables, and it's just damn long.
(typeof(type) == type, so this works on types as well as vars).
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> --- include/linux/compiler.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/include/linux/compiler.h b/include/linux/compiler.h --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -260,6 +260,11 @@ void ftrace_likely_update(struct ftrace_ # define __section(S) __attribute__ ((__section__(#S))) #endif +/* Are two types/vars the same type (ignoring qualifiers)? */ +#ifndef __same_type +# define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b)) +#endif + /* * Prevent the compiler from merging or refetching accesses. The compiler * is also forbidden from reordering successive instances of ACCESS_ONCE(),
|  |