diff options
| author | riastradh <riastradh@NetBSD.org> | 2021-12-19 11:10:48 +0000 |
|---|---|---|
| committer | riastradh <riastradh@NetBSD.org> | 2021-12-19 11:10:48 +0000 |
| commit | 34a2ccd3a4d63f7e100e8dafc27243bd8d970e77 (patch) | |
| tree | 26e353efe7137641ce2912deb5ce85bf99f6fcb6 /sys/external/bsd/common/include/linux | |
| parent | 3a761e05c4c86c6ccebd0db5f7f3b0f38418b511 (diff) | |
linux: Simplify build_bug.h and add static_assert.
Diffstat (limited to 'sys/external/bsd/common/include/linux')
| -rw-r--r-- | sys/external/bsd/common/include/linux/build_bug.h | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/sys/external/bsd/common/include/linux/build_bug.h b/sys/external/bsd/common/include/linux/build_bug.h index cf6df82c376..9149582caf6 100644 --- a/sys/external/bsd/common/include/linux/build_bug.h +++ b/sys/external/bsd/common/include/linux/build_bug.h @@ -1,4 +1,4 @@ -/* $NetBSD: build_bug.h,v 1.1 2021/12/19 11:10:41 riastradh Exp $ */ +/* $NetBSD: build_bug.h,v 1.2 2021/12/19 11:10:48 riastradh Exp $ */ /*- * Copyright (c) 2020 The NetBSD Foundation, Inc. @@ -31,17 +31,15 @@ #include <lib/libkern/libkern.h> -/* - * static_assert is violated with runtime-only compiler semantics in a few - * places. Instead of breaking the build, stop asserting these corner cases. - */ +/* Required to be false _or_ nonconstant. */ +#define BUILD_BUG_ON(EXPR) \ + CTASSERT(__builtin_choose_expr(__builtin_constant_p(EXPR), !(EXPR), 1)) -#define DRMCTASSERT(x) CTASSERT((__builtin_choose_expr( \ - __builtin_constant_p(x), (x), 1))) +/* Required to be constant _and_ true. XXX Should take optional message. */ +#define static_assert(EXPR) CTASSERT(EXPR) -#define BUILD_BUG() do {} while (0) -#define BUILD_BUG_ON(CONDITION) DRMCTASSERT(!(CONDITION)) -#define BUILD_BUG_ON_MSG(CONDITION,MSG) DRMCTASSERT(!(CONDITION)) +#define BUILD_BUG() do {} while (0) +#define BUILD_BUG_ON_MSG(EXPR,MSG) BUILD_BUG_ON(EXPR) #define BUILD_BUG_ON_INVALID(EXPR) ((void)sizeof((long)(EXPR))) #endif /* _LINUX_BUILD_BUG_H_ */ |
