From 64d98f8ee037282c35007b64c2649055c56af1db Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:03 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- tests/ui/mir/ssa-analysis-regression-50041.rs | 36 +++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 tests/ui/mir/ssa-analysis-regression-50041.rs (limited to 'tests/ui/mir/ssa-analysis-regression-50041.rs') diff --git a/tests/ui/mir/ssa-analysis-regression-50041.rs b/tests/ui/mir/ssa-analysis-regression-50041.rs new file mode 100644 index 000000000..ebc3e2f8c --- /dev/null +++ b/tests/ui/mir/ssa-analysis-regression-50041.rs @@ -0,0 +1,36 @@ +// build-pass +// compile-flags: -Z mir-opt-level=4 + +#![crate_type = "lib"] +#![feature(lang_items)] +#![no_std] + +struct NonNull(*const T); + +struct Unique(NonNull); + +#[lang = "owned_box"] +pub struct Box(Unique); + +impl Drop for Box { + fn drop(&mut self) {} +} + +#[lang = "box_free"] +#[inline(always)] +unsafe fn box_free(ptr: Unique) { + dealloc(ptr.0.0) +} + +#[inline(never)] +fn dealloc(_: *const T) {} + +pub struct Foo(T); + +pub fn foo(a: Option>>) -> usize { + let f = match a { + None => Foo(0), + Some(vec) => *vec, + }; + f.0 +} -- cgit v1.2.3