mirror of https://github.com/rust-lang/rust
33 lines
742 B
Rust
33 lines
742 B
Rust
// Regression test for issue 72154, where the use of AddressSanitizer enabled
|
|
// emission of lifetime markers during codegen, while at the same time asking
|
|
// always inliner pass not to insert them. This eventually lead to a
|
|
// miscompilation which was subsequently detected by AddressSanitizer as UB.
|
|
//
|
|
//@ needs-sanitizer-support
|
|
//@ needs-sanitizer-address
|
|
//@ ignore-cross-compile
|
|
//
|
|
//@ compile-flags: -Copt-level=0 -Zsanitizer=address
|
|
//@ run-pass
|
|
|
|
pub struct Wrap {
|
|
pub t: [usize; 1]
|
|
}
|
|
|
|
impl Wrap {
|
|
#[inline(always)]
|
|
pub fn new(t: [usize; 1]) -> Self {
|
|
Wrap { t }
|
|
}
|
|
}
|
|
|
|
#[inline(always)]
|
|
pub fn assume_init() -> [usize; 1] {
|
|
[1234]
|
|
}
|
|
|
|
fn main() {
|
|
let x: [usize; 1] = assume_init();
|
|
Wrap::new(x);
|
|
}
|