about summary refs log tree commit diff
diff options
context:
space:
mode:
authorWesley Wiser <wwiser@gmail.com>2019-05-15 06:06:33 -0400
committerWesley Wiser <wwiser@gmail.com>2019-05-15 06:07:06 -0400
commitb17066dd5eaf3dabd403bd4caccfca193c7184db (patch)
tree40c79de1dd470a63c59f4d263c4f5d96227040ba
parent45214edf9e46459010d9853fe370c9c1e2cd4f35 (diff)
downloadrust-b17066dd5eaf3dabd403bd4caccfca193c7184db.tar.gz
rust-b17066dd5eaf3dabd403bd4caccfca193c7184db.zip
Add test to ensure const-prop fails gracefully
-rw-r--r--src/test/mir-opt/const_prop/const_prop_fails_gracefully.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/test/mir-opt/const_prop/const_prop_fails_gracefully.rs b/src/test/mir-opt/const_prop/const_prop_fails_gracefully.rs
new file mode 100644
index 00000000000..97d3abdcc6c
--- /dev/null
+++ b/src/test/mir-opt/const_prop/const_prop_fails_gracefully.rs
@@ -0,0 +1,34 @@
+#[inline(never)]
+fn read(_: usize) { }
+
+fn main() {
+    const FOO: &i32 = &1;
+    let x = FOO as *const i32 as usize;
+    read(x);
+}
+
+// END RUST SOURCE
+// START rustc.main.ConstProp.before.mir
+//  bb0: {
+//      ...
+//      _3 = _4;
+//      _2 = move _3 as *const i32 (Misc);
+//      ...
+//      _1 = move _2 as usize (Misc);
+//      ...
+//      _6 = _1;
+//      _5 = const read(move _6) -> bb1;
+//  }
+// END rustc.main.ConstProp.before.mir
+// START rustc.main.ConstProp.after.mir
+//  bb0: {
+//      ...
+//      _3 = _4;
+//      _2 = move _3 as *const i32 (Misc);
+//      ...
+//      _1 = move _2 as usize (Misc);
+//      ...
+//      _6 = _1;
+//      _5 = const read(move _6) -> bb1;
+//  }
+// END rustc.main.ConstProp.after.mir