mirror of
https://github.com/rust-lang/rust.git
synced 2026-06-01 22:18:23 +03:00
Add a comment explaining the static "local" during deallocate_local
This commit is contained in:
+4
-1
@@ -414,7 +414,10 @@ pub fn deallocate_local(&mut self, local: Option<Value>) -> EvalResult<'tcx> {
|
||||
let ptr = ptr.to_ptr()?;
|
||||
self.memory.dump_alloc(ptr.alloc_id);
|
||||
match self.memory.get(ptr.alloc_id)?.kind {
|
||||
::memory::Kind::Static | ::memory::Kind::UninitializedStatic => {},
|
||||
// for a constant like `const FOO: &i32 = &1;` the local containing
|
||||
// the `1` is referred to by the global. We transitively marked everything
|
||||
// the global refers to as static itself, so we don't free it here
|
||||
::memory::Kind::Static => {}
|
||||
::memory::Kind::Stack => self.memory.deallocate(ptr, None, ::memory::Kind::Stack)?,
|
||||
other => bug!("local contained non-stack memory: {:?}", other),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user