aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/linear/bitfield-store.c
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-06-26 13:14:44 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2018-07-23 13:11:20 +0200
commitde13e2c39b95fe234f86b932e1784512b0ee694c (patch)
treeff0fbfb95d8bed3ccabad8bc5450508939044a35 /validation/linear/bitfield-store.c
parent90cc2706010c1d2eb8cedf0765c95cbb2d5bd38b (diff)
downloadsparse-dev-de13e2c39b95fe234f86b932e1784512b0ee694c.tar.gz
add testcases for casts & bitfield insertion/extraction
There is several difficulties some related to unclear semantic of our IR instructions and/or type evaluation. Add testcases trying to cover this area. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/linear/bitfield-store.c')
-rw-r--r--validation/linear/bitfield-store.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/validation/linear/bitfield-store.c b/validation/linear/bitfield-store.c
new file mode 100644
index 00000000..3d952c8d
--- /dev/null
+++ b/validation/linear/bitfield-store.c
@@ -0,0 +1,22 @@
+int foo(void)
+{
+ struct {
+ int a:8;
+ int b:16;
+ int c:8;
+ } s = { 0xff, 0x0000, 0xff };
+
+ return s.b = 0x56781234;
+}
+
+/*
+ * check-name: bitfield-store
+ * check-command: test-linearize -Wno-decl $file
+ *
+ * check-output-ignore
+ * check-output-contains: ret\\..*\\$0x1234
+ *
+ * check-error-start
+linear/bitfield-store.c:9:22: warning: cast truncates bits from constant value (56781234 becomes 1234)
+ * check-error-end
+ */