From 680dfd41240b56dc44404c8d73b42c1661226a59 Mon Sep 17 00:00:00 2001 From: chriseth Date: Thu, 20 Apr 2023 23:06:52 +0200 Subject: [PATCH] Warn about duplicate labels (in riscv). --- src/riscv/parser.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/riscv/parser.rs b/src/riscv/parser.rs index 438a4058f..8e6a98db2 100644 --- a/src/riscv/parser.rs +++ b/src/riscv/parser.rs @@ -110,7 +110,12 @@ pub fn extract_label_offsets(statements: &[Statement]) -> BTreeMap<&str, usize> Statement::Label(l) => Some((l.as_str(), i)), Statement::Directive(_, _) | Statement::Instruction(_, _) => None, }) - .collect() + .fold(BTreeMap::new(), |mut acc, (n, i)| { + if acc.insert(n, i).is_some() { + panic!("Duplicate label: {n}") + } + acc + }) } pub fn referenced_labels(statement: &Statement) -> BTreeSet<&str> {