aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-22 02:49:31 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-27 21:10:59 +0200
commitf7679db159d05701ecd4a858622c611d79482571 (patch)
tree0aaeea329cdd2132881ae9bff56e38ae4d87581e
parent3fa54adf79940efa0515ab9946d1f48cff095cf0 (diff)
downloadsparse-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.c28
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
+ */