aboutsummaryrefslogtreecommitdiff
path: root/lib/util.h
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2011-05-06 11:43:04 -0700
committerBen Pfaff <blp@nicira.com>2011-05-16 13:40:48 -0700
commit0b9275b2c7ed2f88491898345e03618dbfbf4b0f (patch)
tree9056e1634c9fb9dd58500c0945beb32e895f374c /lib/util.h
parentf4070db7e5ae7727876d6cc318fba10033dc2c85 (diff)
util: Suppress build assertions when building with sparse.
sparse simply doesn't like our build assertions on packed structures. It seems that its ideas about struct packing are different from GCC's: ../lib/cfm.h:50:1: error: invalid bitfield width, -1. ../lib/packets.h:206:1: error: invalid bitfield width, -1. ../lib/packets.h:213:1: error: invalid bitfield width, -1. ../lib/packets.h:367:1: error: invalid bitfield width, -1. sparse isn't generating code so we don't really care how it lays out structures. We might as well just skip the assertions, as done here.
Diffstat (limited to 'lib/util.h')
-rw-r--r--lib/util.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/util.h b/lib/util.h
index 4ed291ab..2be7a709 100644
--- a/lib/util.h
+++ b/lib/util.h
@@ -33,7 +33,10 @@
#endif
#endif
-#ifndef __cplusplus
+#ifdef __CHECKER__
+#define BUILD_ASSERT(EXPR) ((void) 0)
+#define BUILD_ASSERT_DECL(EXPR) extern int (*build_assert(void))[1]
+#elif !defined(__cplusplus)
/* Build-time assertion building block. */
#define BUILD_ASSERT__(EXPR) \
sizeof(struct { unsigned int build_assert_failed : (EXPR) ? 1 : -1; })