diff options
| author | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-03-29 00:37:31 -0700 |
|---|---|---|
| committer | Scott McMurray <scottmcm@users.noreply.github.com> | 2024-04-21 11:08:36 -0700 |
| commit | b76faff1b281fdf199e5abe8ff0c8d6d2e2e2a85 (patch) | |
| tree | ed69b137307d7803e0159ef2562aa5304c644d11 | |
| parent | 5800dc1faa391d878077cd79ac4820055ca6c0e4 (diff) | |
| download | rust-b76faff1b281fdf199e5abe8ff0c8d6d2e2e2a85.tar.gz rust-b76faff1b281fdf199e5abe8ff0c8d6d2e2e2a85.zip | |
Add a MIR pre-codegen test for Vec::deref
3 files changed, 41 insertions, 0 deletions
diff --git a/tests/mir-opt/pre-codegen/vec_deref.rs b/tests/mir-opt/pre-codegen/vec_deref.rs new file mode 100644 index 00000000000..3476e1760c0 --- /dev/null +++ b/tests/mir-opt/pre-codegen/vec_deref.rs @@ -0,0 +1,13 @@ +// skip-filecheck +//@ compile-flags: -O -Zmir-opt-level=2 -Cdebuginfo=2 +// EMIT_MIR_FOR_EACH_PANIC_STRATEGY + +#![crate_type = "lib"] + +// Added after it stopped inlining in a nightly; see +// <https://github.com/rust-lang/rust/issues/123174> + +// EMIT_MIR vec_deref.vec_deref_to_slice.PreCodegen.after.mir +pub fn vec_deref_to_slice(v: &Vec<u8>) -> &[u8] { + v +} diff --git a/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir new file mode 100644 index 00000000000..df8d5c3836f --- /dev/null +++ b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-abort.mir @@ -0,0 +1,14 @@ +// MIR for `vec_deref_to_slice` after PreCodegen + +fn vec_deref_to_slice(_1: &Vec<u8>) -> &[u8] { + debug v => _1; + let mut _0: &[u8]; + + bb0: { + _0 = <Vec<u8> as Deref>::deref(move _1) -> [return: bb1, unwind unreachable]; + } + + bb1: { + return; + } +} diff --git a/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir new file mode 100644 index 00000000000..d26afef4653 --- /dev/null +++ b/tests/mir-opt/pre-codegen/vec_deref.vec_deref_to_slice.PreCodegen.after.panic-unwind.mir @@ -0,0 +1,14 @@ +// MIR for `vec_deref_to_slice` after PreCodegen + +fn vec_deref_to_slice(_1: &Vec<u8>) -> &[u8] { + debug v => _1; + let mut _0: &[u8]; + + bb0: { + _0 = <Vec<u8> as Deref>::deref(move _1) -> [return: bb1, unwind continue]; + } + + bb1: { + return; + } +} |
