summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-10-01 21:44:46 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-11-30 14:05:03 +0100
commit600bc3b599fe3488e31a044f45939f9b52d7f7d3 (patch)
tree45b6e7c96e146d47c75208cec09a61f4e5be1221
parent9b2efc158c5c9700ffe355c59356879df7c9cc12 (diff)
downloadsparse-600bc3b599fe3488e31a044f45939f9b52d7f7d3.tar.gz
bitfield: add testcases for invalid bitfield width
Add some testcases before making related changes. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--validation/bitfield-sizes.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/validation/bitfield-sizes.c b/validation/bitfield-sizes.c
new file mode 100644
index 00000000..e30a3e4c
--- /dev/null
+++ b/validation/bitfield-sizes.c
@@ -0,0 +1,31 @@
+struct a {
+ int a:31;
+ int b:32;
+ long c:63;
+ long d:64;
+ int x:33; // KO
+ long y:65; // KO
+};
+static struct a a;
+
+struct b {
+ int m1:-1; // KO
+ int x1:2147483648; // KO
+ int :0;
+ int a0:0; // KO
+};
+static struct b b;
+
+/*
+ * check-name: bitfield-sizes
+ * check-command: sparse -m64 $file
+ * check-known-to-fail
+ *
+ * check-error-start
+bitfield-sizes.c:12:18: error: invalid bitfield width, -1.
+bitfield-sizes.c:13:26: error: invalid bitfield width, 2147483648.
+bitfield-sizes.c:15:17: error: invalid named zero-width bitfield `a0'
+bitfield-sizes.c:6:15: error: impossible field-width, 33, for this type
+bitfield-sizes.c:7:15: error: impossible field-width, 65, for this type
+ * check-error-end
+ */