mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-31 04:57:19 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			23 lines
		
	
	
		
			480 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			480 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| // New test for #53818: modifying static memory at compile-time is not allowed.
 | |
| // The test should never compile successfully
 | |
| 
 | |
| #![feature(const_mut_refs)]
 | |
| 
 | |
| use std::cell::UnsafeCell;
 | |
| 
 | |
| struct Foo(UnsafeCell<u32>);
 | |
| 
 | |
| unsafe impl Send for Foo {}
 | |
| unsafe impl Sync for Foo {}
 | |
| 
 | |
| static FOO: Foo = Foo(UnsafeCell::new(42));
 | |
| 
 | |
| static BAR: () = unsafe {
 | |
|     *FOO.0.get() = 5;
 | |
|     //~^ ERROR could not evaluate static initializer
 | |
| };
 | |
| 
 | |
| fn main() {
 | |
|     println!("{}", unsafe { *FOO.0.get() });
 | |
| }
 | 
