-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Open
Labels
A-boxArea: Our favorite opsem complicationArea: Our favorite opsem complicationA-codegenArea: Code generationArea: Code generationC-bugCategory: This is a bug.Category: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
I tried this code:
struct Foo {
x: i32
}
#[inline(never)]
fn function2() { println!("foo"); }
#[inline(never)]
fn function1() -> Box<Foo> { Box::new(Foo { x: 4}) }
pub fn foo() {
let foo: Box<_> = function1();
let value1 = foo.x;
function2();
let value2 = foo.x;
assert_eq!(value1, value2);
}
I expect the assert_eq! to be compiled away. However, this only happens with -C panic=abort
.
I'm using rustc 1.61.0-nightly (c84f39e 2022-03-20)
Metadata
Metadata
Assignees
Labels
A-boxArea: Our favorite opsem complicationArea: Our favorite opsem complicationA-codegenArea: Code generationArea: Code generationC-bugCategory: This is a bug.Category: This is a bug.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.