Logo
Explore Help
Register Sign In
rust-lang/rust
1
0
Fork 0
You've already forked rust
Code Issues Pull Requests Actions 1 Packages Projects Releases Wiki Activity
Files
51b51b51d7931da85280382a81c4dd80c73ca754
rust/tests/ui/consts/promoted-storage.rs

21 lines
354 B
Rust
Raw Normal View History

Reset qualifs when a storage of a local ends to ensure that the local qualifs are affected by the state from previous loop iterations only if the local is kept alive. The change should be forward compatible with a stricter handling of indirect assignments, since storage dead invalidates all existing pointers to the local.
2021-10-22 00:00:00 +00:00
// Check that storage statements reset local qualification.
[AUTO-GENERATED] Migrate ui tests from `//` to `//@` directives
2024-02-16 20:02:50 +00:00
//@ check-pass
Reset qualifs when a storage of a local ends to ensure that the local qualifs are affected by the state from previous loop iterations only if the local is kept alive. The change should be forward compatible with a stricter handling of indirect assignments, since storage dead invalidates all existing pointers to the local.
2021-10-22 00:00:00 +00:00
use std::cell::Cell;
const C: Option<Cell<u32>> = {
let mut c = None;
let mut i = 0;
while i == 0 {
let mut x = None;
c = x;
x = Some(Cell::new(0));
let _ = x;
i += 1;
}
c
};
fn main() {
let _: &'static _ = &C;
}
Reference in New Issue Copy Permalink
Powered by Gitea Version: 1.24.6 Page: 1519ms Template: 4ms
English
Bahasa Indonesia Deutsch English Español Français Gaeilge Italiano Latviešu Magyar nyelv Nederlands Polski Português de Portugal Português do Brasil Suomi Svenska Türkçe Čeština Ελληνικά Български Русский Українська فارسی മലയാളം 日本語 简体中文 繁體中文(台灣) 繁體中文(香港) 한국어
Licenses API