In UNALIGNED_MEMBER_PTR
cast through void
pointer
Suppress warnings shown even with `-Waddress-of-packed-member` disabled in gcc 11.
This commit is contained in:
parent
f0f2535c4d
commit
15328302dc
Notes:
git
2023-01-20 15:31:02 +00:00
@ -59,9 +59,19 @@ struct rb_objspace; /* in vm_core.h */
|
|||||||
COMPILER_WARNING_POP; \
|
COMPILER_WARNING_POP; \
|
||||||
unaligned_member_access_result; \
|
unaligned_member_access_result; \
|
||||||
})
|
})
|
||||||
|
|
||||||
|
# define UNALIGNED_MEMBER_PTR(ptr, mem) __extension__({ \
|
||||||
|
COMPILER_WARNING_PUSH; \
|
||||||
|
COMPILER_WARNING_IGNORED(-Waddress-of-packed-member); \
|
||||||
|
const volatile void *unaligned_member_ptr_result = &(ptr)->mem; \
|
||||||
|
COMPILER_WARNING_POP; \
|
||||||
|
(__typeof__((ptr)->mem) *)unaligned_member_ptr_result; \
|
||||||
|
})
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
|
#ifndef UNALIGNED_MEMBER_PTR
|
||||||
|
# define UNALIGNED_MEMBER_PTR(ptr, mem) UNALIGNED_MEMBER_ACCESS(&(ptr)->mem)
|
||||||
|
#endif
|
||||||
|
|
||||||
// We use SIZE_POOL_COUNT number of shape IDs for transitions out of different size pools
|
// We use SIZE_POOL_COUNT number of shape IDs for transitions out of different size pools
|
||||||
// The next available shapd ID will be the SPECIAL_CONST_SHAPE_ID
|
// The next available shapd ID will be the SPECIAL_CONST_SHAPE_ID
|
||||||
|
Loading…
x
Reference in New Issue
Block a user