libqb/libqb-fix-list-handling-gcc10.patch

38 lines
1.2 KiB
Diff

From 4f0a30f4e05e140e1325784195e79c5ec62c689c Mon Sep 17 00:00:00 2001
From: Christine Caulfield <ccaulfie@redhat.com>
Date: Mon, 17 Feb 2020 16:28:57 +0000
Subject: [PATCH] list: fix list handling for gcc10
---
configure.ac | 1 -
include/qb/qblist.h | 4 ++--
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
index ec8736cb..108b2f18 100644
--- a/configure.ac
+++ b/configure.ac
@@ -558,7 +558,6 @@
suggest-attribute=noreturn
suggest-attribute=format
strict-prototypes
- pointer-arith
write-strings
cast-align
bad-function-cast
diff --git a/include/qb/qblist.h b/include/qb/qblist.h
index e3ae3f18..8064c874 100644
--- a/include/qb/qblist.h
+++ b/include/qb/qblist.h
@@ -193,8 +193,8 @@ static inline void qb_list_splice_tail(struct qb_list_head *list,
* @param type: the type of the struct this is embedded in.
* @param member: the name of the list_struct within the struct.
*/
-#define qb_list_entry(ptr,type,member)\
- ((type *)((char *)(ptr)-(char*)(&((type *)0)->member)))
+#define qb_list_entry(ptr,type,member) ({ \
+ ((type *)((void*)ptr - offsetof(type, member))); })
/**
* Get the first element from a list