about summary refs log tree commit diff
diff options
context:
space:
mode:
authorOliver Scherer <github35764891676564198441@oli-obk.de>2020-01-09 10:33:49 +0100
committerOliver Scherer <github35764891676564198441@oli-obk.de>2020-01-10 09:08:25 +0100
commit050146f7f0d6ba4c0241a6fd8fa5d3fd67766e45 (patch)
treebefc213c454489467c5aa52c156f192de4c31aab
parentecd5852194f43511443f134aebf0462b58c8e197 (diff)
downloadrust-050146f7f0d6ba4c0241a6fd8fa5d3fd67766e45.tar.gz
rust-050146f7f0d6ba4c0241a6fd8fa5d3fd67766e45.zip
Add regression tests for promotion mir expansion
-rw-r--r--src/test/mir-opt/const_prop/ref_deref.rs18
-rw-r--r--src/test/mir-opt/const_prop/ref_deref_project.rs41
2 files changed, 59 insertions, 0 deletions
diff --git a/src/test/mir-opt/const_prop/ref_deref.rs b/src/test/mir-opt/const_prop/ref_deref.rs
index 6b5101af5fc..8b48296a5d9 100644
--- a/src/test/mir-opt/const_prop/ref_deref.rs
+++ b/src/test/mir-opt/const_prop/ref_deref.rs
@@ -3,6 +3,24 @@ fn main() {
 }
 
 // END RUST SOURCE
+// START rustc.main.PromoteTemps.before.mir
+// bb0: {
+//     ...
+//     _3 = const 4i32;
+//     _2 = &_3;
+//     _1 = (*_2);
+//     ...
+//}
+// END rustc.main.PromoteTemps.before.mir
+// START rustc.main.PromoteTemps.after.mir
+// bb0: {
+//     ...
+//     _4 = const main::promoted[0];
+//     _2 = &(*_4);
+//     _1 = (*_2);
+//     ...
+//}
+// END rustc.main.PromoteTemps.after.mir
 // START rustc.main.ConstProp.before.mir
 // bb0: {
 //     ...
diff --git a/src/test/mir-opt/const_prop/ref_deref_project.rs b/src/test/mir-opt/const_prop/ref_deref_project.rs
new file mode 100644
index 00000000000..5808a8be176
--- /dev/null
+++ b/src/test/mir-opt/const_prop/ref_deref_project.rs
@@ -0,0 +1,41 @@
+fn main() {
+    *(&(4, 5).1);
+}
+
+// END RUST SOURCE
+// START rustc.main.PromoteTemps.before.mir
+// bb0: {
+//     ...
+//     _3 = (const 4i32, const 5i32);
+//     _2 = &(_3.1: i32);
+//     _1 = (*_2);
+//     ...
+//}
+// END rustc.main.PromoteTemps.before.mir
+// START rustc.main.PromoteTemps.after.mir
+// bb0: {
+//     ...
+//     _4 = const main::promoted[0];
+//     _2 = &((*_4).1: i32);
+//     _1 = (*_2);
+//     ...
+//}
+// END rustc.main.PromoteTemps.after.mir
+// START rustc.main.ConstProp.before.mir
+// bb0: {
+//     ...
+//     _4 = const main::promoted[0];
+//     _2 = &((*_4).1: i32);
+//     _1 = (*_2);
+//     ...
+//}
+// END rustc.main.ConstProp.before.mir
+// START rustc.main.ConstProp.after.mir
+// bb0: {
+//     ...
+//     _4 = const main::promoted[0];
+//     _2 = &((*_4).1: i32);
+//     _1 = const 5i32;
+//     ...
+// }
+// END rustc.main.ConstProp.after.mir