aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/mem2reg/broken-phi03.c
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-09-11 12:25:36 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-11-13 14:16:51 +0100
commit6e3ab84b12b2a0c783799f21f4413b610a5f2093 (patch)
treeae417c5dece4c3aa2e40a4e6ef01c53a81c47734 /validation/mem2reg/broken-phi03.c
parent22eaf158a163d38f724df20efdf8a5e5ee68c58e (diff)
downloadsparse-dev-6e3ab84b12b2a0c783799f21f4413b610a5f2093.tar.gz
add testcase for mem2reg/SSA conversion
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/mem2reg/broken-phi03.c')
-rw-r--r--validation/mem2reg/broken-phi03.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/validation/mem2reg/broken-phi03.c b/validation/mem2reg/broken-phi03.c
new file mode 100644
index 00000000..58b47979
--- /dev/null
+++ b/validation/mem2reg/broken-phi03.c
@@ -0,0 +1,29 @@
+int foo(int a, int b)
+{
+ int x;
+ int i;
+
+ switch (a) {
+ case 0: i = 0; break;
+ case 1: i = 1; break;
+ default: i = -1; break;
+ }
+
+ x = 0;
+ if (b)
+ x = i;
+ return x;
+}
+
+/*
+ * check-name: broken-phi03
+ * check-description:
+ * This is an indirect test to check correctness of phi-node placement.
+ * The misplaced phi-node for 'i' (not at the meet point but where 'i'
+ * is used) causes a missed select-conversion at later stage.
+ *
+ * check-command: test-linearize -Wno-decl $file
+ * check-known-to-fail
+ * check-output-ignore
+ * check-output-contains: select\\.
+ */