diff --git a/configure.ac b/configure.ac index ec8736c..108b2f1 100644 --- a/configure.ac +++ b/configure.ac @@ -601,7 +601,6 @@ WARNLIST=" suggest-attribute=format property-attribute-mismatch strict-prototypes - pointer-arith write-strings cast-align bad-function-cast diff --git a/include/qb/qblist.h b/include/qb/qblist.h index e3ae3f1..8064c87 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