mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-11-18 02:20:59 +03:00
This patch add a CTASSERT macro for compile time assertion.
This macro makes the compile to spit "mixed definition and code" warning, I can't find a way to avoid it. This patch lays some groundwork for the persistent l2arc feature. See https://www.illumos.org/issues/3525. Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #303
This commit is contained in:
parent
acf0ade362
commit
6c48cd8ac2
@ -145,4 +145,15 @@ do { \
|
|||||||
#define VERIFY(x) ASSERT(x)
|
#define VERIFY(x) ASSERT(x)
|
||||||
|
|
||||||
#endif /* NDEBUG */
|
#endif /* NDEBUG */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Compile-time assertion. The condition 'x' must be constant.
|
||||||
|
*/
|
||||||
|
#define CTASSERT_GLOBAL(x) _CTASSERT(x, __LINE__)
|
||||||
|
#define CTASSERT(x) { _CTASSERT(x, __LINE__); }
|
||||||
|
#define _CTASSERT(x, y) __CTASSERT(x, y)
|
||||||
|
#define __CTASSERT(x, y) \
|
||||||
|
typedef char __attribute__ ((unused)) \
|
||||||
|
__compile_time_assertion__ ## y[(x) ? 1 : -1]
|
||||||
|
|
||||||
#endif /* SPL_DEBUG_H */
|
#endif /* SPL_DEBUG_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user