Fix: disable array/sequence compile-time type check in C
[lttng-ust.git] / include / lttng / ust-utils.h
index 25b8c7fdb835d55c9f815278c4c2aa1386c1a648..e60cdbe3b1a490934945d2c74ae93f86a0934384 100644 (file)
  * 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<type>::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
 
 
This page took 0.033369 seconds and 4 git commands to generate.