cgen: add the __offsetof_ptr C macro
parent
5a231326d7
commit
144546543c
|
@ -103,9 +103,14 @@ static inline void __sort_ptr(uintptr_t a[], bool b[], int l)
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Use __offsetof_ptr instead of __offset_of, when you *do* have a valid pointer, to avoid UB:
|
||||||
|
#ifndef __offsetof_ptr
|
||||||
|
#define __offsetof_ptr(ptr,PTYPE,FIELDNAME) ((size_t)((byte *)&((PTYPE *)ptr)->FIELDNAME - (byte *)ptr))
|
||||||
|
#endif
|
||||||
|
|
||||||
// for __offset_of
|
// for __offset_of
|
||||||
#ifndef __offsetof
|
#ifndef __offsetof
|
||||||
#define __offsetof(s,memb) ((size_t)((char *)&((s *)0)->memb - (char *)0))
|
#define __offsetof(PTYPE,FIELDNAME) ((size_t)((char *)&((PTYPE *)0)->FIELDNAME - (char *)0))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define OPTION_CAST(x) (x)
|
#define OPTION_CAST(x) (x)
|
||||||
|
|
Loading…
Reference in New Issue