diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-07-10 02:01:46 +0200 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-07-10 02:03:57 +0200 |
commit | c122e6540d537f2aa957631435a25d04ed58fef6 (patch) | |
tree | b402e748a816d49ad447227f74e8d6637043c65a | |
parent | efc5f66c4221f1cd7cd84da957f2557dd9c2241c (diff) | |
download | sparse-c122e6540d537f2aa957631435a25d04ed58fef6.tar.gz |
add testcase for missing warning for assignment to const
The problem is seems to be related with evaluate_dereference()
where all mods are dropped when the type is a node.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | validation/eval/array-quals-node.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/validation/eval/array-quals-node.c b/validation/eval/array-quals-node.c new file mode 100644 index 00000000..99a4db13 --- /dev/null +++ b/validation/eval/array-quals-node.c @@ -0,0 +1,29 @@ +struct s { + int a; + int b[3]; + int c[2][3]; +}; + +struct c { + const struct s s; +}; + +extern struct c v; + +void f(void) +{ + v.s.a = 0; + *v.s.b = 0; + **v.s.c = 0; +} + +/* + * check-name: array-quals-node + * check-known-to-fail + * + * check-error-start +eval/array-quals-node.c:15:14: error: assignment to const expression +eval/array-quals-node.c:16:14: error: assignment to const expression +eval/array-quals-node.c:17:14: error: assignment to const expression + * check-error-end + */ |