record perm vars only while resident stack frame is still up
This commit is contained in:
@@ -592,13 +592,14 @@ impl MachineState {
|
|||||||
{
|
{
|
||||||
for (var, var_data) in alloc_locs {
|
for (var, var_data) in alloc_locs {
|
||||||
match var_data {
|
match var_data {
|
||||||
&VarData::Perm(p) if p > 0 => {
|
&VarData::Perm(p) if p > 0 =>
|
||||||
let e = self.e;
|
if !heap_locs.contains_key(var) {
|
||||||
let r = var_data.as_reg_type().reg_num();
|
let e = self.e;
|
||||||
let addr = self.and_stack[e][r].clone();
|
let r = var_data.as_reg_type().reg_num(); // crashes here.
|
||||||
|
let addr = self.and_stack[e][r].clone();
|
||||||
|
|
||||||
heap_locs.insert(var.clone(), addr);
|
heap_locs.insert(var.clone(), addr);
|
||||||
},
|
},
|
||||||
&VarData::Temp(cn, _, _) if cn == chunk_num => {
|
&VarData::Temp(cn, _, _) if cn == chunk_num => {
|
||||||
let r = var_data.as_reg_type();
|
let r = var_data.as_reg_type();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user