diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-05-22 02:49:31 +0200 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-05-27 21:10:59 +0200 |
commit | f7679db159d05701ecd4a858622c611d79482571 (patch) | |
tree | 0aaeea329cdd2132881ae9bff56e38ae4d87581e | |
parent | 3fa54adf79940efa0515ab9946d1f48cff095cf0 (diff) | |
download | sparse-f7679db159d05701ecd4a858622c611d79482571.tar.gz |
testsuite: add testcase for duplicated local definitions
Sparse warn when a top-level object is initialized multiple
times but doesn't warn when it's a local object.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | validation/dup-defs-local.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/validation/dup-defs-local.c b/validation/dup-defs-local.c new file mode 100644 index 00000000..6d32b892 --- /dev/null +++ b/validation/dup-defs-local.c @@ -0,0 +1,28 @@ +extern int a, *ptr; + +int a = 0; +int a = 1; + +int *ptr = &a; +int *ptr = &a; + +static void foo(void) +{ + int a = 0; + int a = 1; + + int *ptr = &a; + int *ptr = &a; +} + +/* + * check-name: duplicated-defs + * check-known-to-fail + * + * check-error-start +dup-defs-local.c:4:5: error: symbol 'a' has multiple initializers (originally initialized at duplicated-defs.c:3) +dup-defs-local.c:7:5: error: symbol 'ptr' has multiple initializers (originally initialized at duplicated-defs.c:6) +dup-defs-local.c:12:13: error: symbol 'a' has multiple initializers (originally initialized at duplicated-defs.c:11) +dup-defs-local.c:15:13: error: symbol 'ptr' has multiple initializers (originally initialized at duplicated-defs.c:14) + * check-error-end + */ |