aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-12-09 21:45:35 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-12-09 21:45:35 +0100
commit82dee2e25887f26df7126d6789a419eaf14beb8c (patch)
tree6d7d985710ab0f0199b23c4a4f420da0aecfff36 /validation
parentfaa80ad61505517b48ed0afc86f39fd3ad021b7d (diff)
parent38dfaa85aef4f1f02f114dffeda02c818d87fe06 (diff)
downloadsparse-dev-82dee2e25887f26df7126d6789a419eaf14beb8c.tar.gz
Merge branch 'bitfield-size'
* improve diagnostic messages concerning bitfields
Diffstat (limited to 'validation')
-rw-r--r--validation/bitfield-sizes.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/validation/bitfield-sizes.c b/validation/bitfield-sizes.c
new file mode 100644
index 00000000..9f76d074
--- /dev/null
+++ b/validation/bitfield-sizes.c
@@ -0,0 +1,30 @@
+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-error-start
+bitfield-sizes.c:12:18: error: bitfield 'm1' has invalid width (-1)
+bitfield-sizes.c:13:26: error: bitfield 'x1' has invalid width (2147483648)
+bitfield-sizes.c:15:17: error: bitfield 'a0' has invalid width (0)
+bitfield-sizes.c:6:15: error: bitfield 'x' is wider (33) than its type (int)
+bitfield-sizes.c:7:15: error: bitfield 'y' is wider (65) than its type (long)
+ * check-error-end
+ */