aboutsummaryrefslogtreecommitdiff
path: root/test/load1.ssa
diff options
context:
space:
mode:
authorQuentin Carbonneaux <[email protected]>2019-02-18 13:47:33 +0100
committerQuentin Carbonneaux <[email protected]>2019-02-18 13:56:03 +0100
commitcde5f95591b6f38df235ac16ee7ee979ec19bd09 (patch)
tree84443f9ab1c20761b59c833e66a804144ae62235 /test/load1.ssa
parentd9b0d77cf20cb8340bc4a77b66aa8cb56c75b496 (diff)
mark phi arguments as escaping
Thanks to Michael Forney for spotting this oversight and providing the test case. Note: because esc() leaves ABot unchanged, the assertion "a->type == ABot" on line 122 remains valid.
Diffstat (limited to 'test/load1.ssa')
-rw-r--r--test/load1.ssa27
1 files changed, 27 insertions, 0 deletions
diff --git a/test/load1.ssa b/test/load1.ssa
new file mode 100644
index 0000000..a87fd2d
--- /dev/null
+++ b/test/load1.ssa
@@ -0,0 +1,27 @@
+# checks that phi arguments are correctly
+# handled in alias analysis
+
+export
+function w $f(w %cond) {
+@start
+ %x =l alloc4 4
+ %y =l alloc4 4
+ storew 0, %x
+ jnz %cond, @true, @false
+@true
+ jmp @end
+@false
+ jmp @end
+@end
+ %ptr =l phi @true %x, @false %y
+ storew 1, %ptr
+ %result =w loadsw %x
+ ret %result
+}
+
+# >>> driver
+# extern int f(int);
+# int main() {
+# return !(f(0) == 0 && f(1) == 1);
+# }
+# <<<