forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#120973 - RalfJung:static_mut_ref, r=compiler-errors allow static_mut_ref in some tests that specifically test mutable statics The lint just distracts from what these tests are about.
- Loading branch information
Showing
15 changed files
with
30 additions
and
212 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,10 @@ | ||
#![allow(static_mut_ref)] | ||
|
||
const C1: &'static mut [usize] = &mut []; | ||
//~^ ERROR: mutable references are not allowed | ||
|
||
static mut S: usize = 3; | ||
const C2: &'static mut usize = unsafe { &mut S }; | ||
//~^ ERROR: referencing statics in constants | ||
//~| WARN mutable reference of mutable static is discouraged [static_mut_ref] | ||
|
||
fn main() {} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,8 @@ | ||
// build-pass (FIXME(62277): could be check-pass?) | ||
#![allow(static_mut_ref)] | ||
|
||
static mut STDERR_BUFFER_SPACE: [u8; 42] = [0u8; 42]; | ||
|
||
pub static mut STDERR_BUFFER: *mut [u8] = unsafe { &mut STDERR_BUFFER_SPACE }; | ||
//~^ WARN mutable reference of mutable static is discouraged [static_mut_ref] | ||
|
||
fn main() {} |
This file was deleted.
Oops, something went wrong.
17 changes: 1 addition & 16 deletions
17
tests/ui/consts/static_mut_containing_mut_ref2.mut_refs.stderr
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,9 @@ | ||
warning: mutable reference of mutable static is discouraged | ||
--> $DIR/static_mut_containing_mut_ref2.rs:8:6 | ||
| | ||
LL | *(&mut STDERR_BUFFER_SPACE) = 42; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ mutable reference of mutable static | ||
| | ||
= note: for more information, see issue #114447 <https://github.com/rust-lang/rust/issues/114447> | ||
= note: reference of mutable static is a hard error from 2024 edition | ||
= note: mutable statics can be written to by multiple threads: aliasing violations or data races will cause undefined behavior | ||
= note: `#[warn(static_mut_ref)]` on by default | ||
help: mutable references are dangerous since if there's any other pointer or reference used for that static while the reference lives, that's UB; use `addr_of_mut!` instead to create a raw pointer | ||
| | ||
LL | *addr_of_mut!(STDERR_BUFFER_SPACE) = 42; | ||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
error[E0080]: could not evaluate static initializer | ||
--> $DIR/static_mut_containing_mut_ref2.rs:8:5 | ||
| | ||
LL | *(&mut STDERR_BUFFER_SPACE) = 42; | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ modifying a static's initial value from another static's initializer | ||
|
||
error: aborting due to 1 previous error; 1 warning emitted | ||
error: aborting due to 1 previous error | ||
|
||
For more information about this error, try `rustc --explain E0080`. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.