mirror of
https://github.com/torvalds/linux.git
synced 2026-05-27 00:22:00 +02:00
xfs: use static_assert to check struct sizes and offsets
Use the compiler-provided static_assert built-in from C11 instead of the kernel-specific BUILD_BUG_ON_MSG for the structure size and offset checks in xfs_ondisk. This not only gives slightly nicer error messages in case things go south, but can also be trivially used as-is in userspace. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org> Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com> Signed-off-by: Chandan Babu R <chandanbabu@kernel.org>
This commit is contained in:
parent
fd45ddb9dd
commit
c12c50393c
|
|
@ -7,16 +7,16 @@
|
|||
#define __XFS_ONDISK_H
|
||||
|
||||
#define XFS_CHECK_STRUCT_SIZE(structname, size) \
|
||||
BUILD_BUG_ON_MSG(sizeof(structname) != (size), "XFS: sizeof(" \
|
||||
#structname ") is wrong, expected " #size)
|
||||
static_assert(sizeof(structname) == (size), \
|
||||
"XFS: sizeof(" #structname ") is wrong, expected " #size)
|
||||
|
||||
#define XFS_CHECK_OFFSET(structname, member, off) \
|
||||
BUILD_BUG_ON_MSG(offsetof(structname, member) != (off), \
|
||||
static_assert(offsetof(structname, member) == (off), \
|
||||
"XFS: offsetof(" #structname ", " #member ") is wrong, " \
|
||||
"expected " #off)
|
||||
|
||||
#define XFS_CHECK_VALUE(value, expected) \
|
||||
BUILD_BUG_ON_MSG((value) != (expected), \
|
||||
static_assert((value) == (expected), \
|
||||
"XFS: value of " #value " is wrong, expected " #expected)
|
||||
|
||||
static inline void __init
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user