-/*
- * SPDX-License-Identifier: MIT
- *
- * Copyright (C) 2010-2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- */
+// SPDX-FileCopyrightText: 2010-2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+//
+// SPDX-License-Identifier: MIT
#ifndef _LTTNG_UST_UTILS_H
#define _LTTNG_UST_UTILS_H
* 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