lttng-dev.lists.lttng.org archive mirror
 help / color / mirror / Atom feed
* [PATCH lttng-ust] Make bitfield.h C++-friendly
@ 2019-08-20  1:51 Simon Marchi
  0 siblings, 0 replies; 2+ messages in thread
From: Simon Marchi @ 2019-08-20  1:51 UTC (permalink / raw)
  To: lttng-dev; +Cc: Simon Marchi

This patch changes bitfield.h to be usable in C++11.

It will probably never be compiled as C++ in the context of
lttng-ust, but this is just to keep things sync'ed across projects.

Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
---
 include/lttng/bitfield.h | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/include/lttng/bitfield.h b/include/lttng/bitfield.h
index 5ed629381ac6..9386fade1b76 100644
--- a/include/lttng/bitfield.h
+++ b/include/lttng/bitfield.h
@@ -70,8 +70,12 @@
  * Produce a build-time error if the condition `cond` is non-zero.
  * Evaluates as a size_t expression.
  */
+#ifdef __cplusplus
+#define _BT_BUILD_ASSERT(cond) ([]{static_assert((cond), "");}, 0)
+#else
 #define _BT_BUILD_ASSERT(cond)					\
 	sizeof(struct { int f:(2 * !!(cond) - 1); })
+#endif
 
 /*
  * Cast value `v` to an unsigned integer of the same size as `v`.
@@ -377,7 +381,7 @@ do {									\
 do {									\
 	__typeof__(*(vptr)) *_vptr = (vptr);				\
 	__typeof__(*_vptr) _v;						\
-	type *_ptr = (void *) (ptr);					\
+	type *_ptr = (type *) (ptr);					\
 	unsigned long _start = (start), _length = (length);		\
 	type _mask, _cmask;						\
 	unsigned long _ts = sizeof(type) * CHAR_BIT; /* type size */	\
-- 
2.23.0

^ permalink raw reply related	[flat|nested] 2+ messages in thread
[parent not found: <20190820015106.22331-1-simon.marchi@efficios.com>]

end of thread, other threads:[~2019-08-20  2:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-08-20  1:51 [PATCH lttng-ust] Make bitfield.h C++-friendly Simon Marchi
     [not found] <20190820015106.22331-1-simon.marchi@efficios.com>
2019-08-20  2:02 ` Mathieu Desnoyers

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).