aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/mem2reg/broken-phi03.c
diff options
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\\.
+ */