X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fust-utils.h;h=e60cdbe3b1a490934945d2c74ae93f86a0934384;hb=f04f60a5f613b5a850dbe0ee4e983f21803db1ed;hp=25b8c7fdb835d55c9f815278c4c2aa1386c1a648;hpb=62eb004ccbd4b3d759bda96f7a0c6d072b23ffa9;p=lttng-ust.git diff --git a/include/lttng/ust-utils.h b/include/lttng/ust-utils.h index 25b8c7fd..e60cdbe3 100644 --- a/include/lttng/ust-utils.h +++ b/include/lttng/ust-utils.h @@ -62,13 +62,16 @@ * lttng_ust_is_pointer_type - check if type is a pointer * * Returns true if the type of @type is a pointer. + * + * Note: The C implementation of lttng_ust_is_pointer_type uses pointer + * arithmetic, which does not work on opaque pointer types. */ #if defined(__cplusplus) #define lttng_ust_is_pointer_type(type) (std::is_pointer::value) #else /* The difference between two pointers is an integer. */ #define lttng_ust_is_pointer_type(type) \ - (lttng_ust_is_integer_type(typeof(((type)0 - (type)0))) && !lttng_ust_is_integer_type(type)) + (lttng_ust_is_integer_type(typeof(((type)1 - (type)1))) && !lttng_ust_is_integer_type(type)) #endif