From f7679db159d05701ecd4a858622c611d79482571 Mon Sep 17 00:00:00 2001 From: Luc Van Oostenryck Date: Fri, 22 May 2020 02:49:31 +0200 Subject: 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 --- validation/dup-defs-local.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 validation/dup-defs-local.c 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 + */ -- cgit 1.2.3-korg