mirror of
https://github.com/rust-lang/rust
synced 2024-11-05 20:45:15 +00:00
6d75f54310
Moves the sanitizer ui tests to the sanitizer directory and removes the sanitizer prefix from tests file names similarly to how the sanitizer codegen tests are organized.
32 lines
742 B
Rust
32 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);
|
|
}
|