diff options
author | Ben Bridle <ben@derelict.engineering> | 2025-03-25 11:03:03 +1300 |
---|---|---|
committer | Ben Bridle <ben@derelict.engineering> | 2025-03-25 11:03:03 +1300 |
commit | 448e6f93d4ac6ae4b592d2dc8c3f98230f196e6a (patch) | |
tree | c0122331765eb9f289b0dd3570182c9f9139ef49 | |
parent | 942c05cc232db905a0ea31b471edb824f0cc931c (diff) | |
download | bedrock-asm-448e6f93d4ac6ae4b592d2dc8c3f98230f196e6a.zip |
Fix label definition issue
Label definitions were being gathered in the bytecode stage, but then
were incorrectly dropped instead of being used.
-rw-r--r-- | src/stages/bytecode.rs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/stages/bytecode.rs b/src/stages/bytecode.rs index db6ff6d..4b50327 100644 --- a/src/stages/bytecode.rs +++ b/src/stages/bytecode.rs @@ -38,12 +38,14 @@ impl<'a> BytecodeGenerator<'a> { let mut labels = HashMap::new(); for (name, definition) in definitions { if let DefinitionKind::LabelDefinition = definition.kind { - labels.insert(name, LabelInformation { address: 0, slots: Vec::new() }); + let key = name.to_string(); + let value = LabelInformation { address: 0, slots: Vec::new() }; + labels.insert(key, value); } } Self { definitions, - labels: HashMap::new(), + labels, stack: Vec::new(), bytecode: Vec::new(), } |