aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/backend
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-03-10 23:29:24 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-11-17 10:04:37 +0100
commit922389c710ce361ca963d187aa3f7698343e9bdf (patch)
tree7a9264c2eeaa2875e3deff453160bbf0281a7349 /validation/backend
parentb6eb6410bc6f0cc388d89443f26bfce071b2eaa6 (diff)
downloadsparse-dev-922389c710ce361ca963d187aa3f7698343e9bdf.tar.gz
llvm: add test cases for pointers passed as argument
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/backend')
-rw-r--r--validation/backend/pointer-param.c43
1 files changed, 43 insertions, 0 deletions
diff --git a/validation/backend/pointer-param.c b/validation/backend/pointer-param.c
new file mode 100644
index 00000000..745d069f
--- /dev/null
+++ b/validation/backend/pointer-param.c
@@ -0,0 +1,43 @@
+extern int gfun(int);
+static int sfun(int a) { return a; }
+
+void usei(int *);
+void usef(int (*)(int));
+void usev(void *);
+
+void foo(int *p, int a[5], int (*pfun)(int));
+void foo(int *p, int a[5], int (*pfun)(int))
+{
+ extern int valg[5], valh[5], vali[5];
+ static int vals[5], valt[5], valr[5];
+ int vala[5], valb[5], valc[5];
+
+ usei(p);
+ usei(valg);
+ usei(&valh[0]);
+ usei(&vali[1]);
+ usei(vals);
+ usei(&valt[0]);
+ usei(&valr[1]);
+ usei(vala);
+ usei(&valb[0]);
+ usei(&valc[1]);
+
+ usef(pfun);
+ usef(gfun);
+ usef(&gfun);
+ usef(sfun);
+ usef(&sfun);
+
+ usev(pfun);
+ usev(gfun);
+ usev(&gfun);
+ usev(sfun);
+ usev(&sfun);
+}
+
+/*
+ * check-name: pointer-param
+ * check-command: ./sparsec -c $file -o tmp.o
+ * check-known-to-fail
+ */