aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-19 22:06:53 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2020-05-19 22:06:53 +0200
commit80e2b2a0fc0f39e92873c8462ec795b991f84ca7 (patch)
tree051a33f2fc61af03db7de1a134de448ffec94df5
parent146e6a63e715e0c3e08aacbcaa79ff8930289297 (diff)
downloadsparse-80e2b2a0fc0f39e92873c8462ec795b991f84ca7.tar.gz
testsuite: add a few testcases for nested functions
Sparse doesn't really support nested functions but is able to parse them correctly. Add some testcases with them so that it continue to catch possible errors concerning them. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--validation/nested-functions.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/validation/nested-functions.c b/validation/nested-functions.c
new file mode 100644
index 00000000..349edb5a
--- /dev/null
+++ b/validation/nested-functions.c
@@ -0,0 +1,43 @@
+static int test_ok(int a, int b)
+{
+ int nested_ok(int i)
+ {
+ return i * 2;
+ }
+ return nested_ok(b);
+}
+
+static int test_ko(int a, int b)
+{
+ int nested_ko(int i)
+ {
+ return i * 2 + a;
+ }
+ return nested_ko(b);
+}
+
+static int test_inline(int a, int b)
+{
+ inline int nested(int i)
+ {
+ return i * 2;
+ }
+ return nested(b);
+}
+
+static int test_inline_ko(int a, int b)
+{
+ inline int nested(int i)
+ {
+ return i * 2 + a;
+ }
+ return nested(b);
+}
+
+/*
+ * check-name: nested-functions
+ *
+ * check-error-start
+nested-functions.c:32:32: warning: unreplaced symbol 'a'
+ * check-error-end
+ */