From 7bf15bc466b428f5c402365d79222122f90f1447 Mon Sep 17 00:00:00 2001 From: Catherine Date: Tue, 31 Jan 2023 19:10:32 +0000 Subject: [PATCH] back.rtlil: do not add `src` attribute to cases if emit_src=False. Fixes #706. --- amaranth/back/rtlil.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/amaranth/back/rtlil.py b/amaranth/back/rtlil.py index c052c7b..ca0d0f6 100644 --- a/amaranth/back/rtlil.py +++ b/amaranth/back/rtlil.py @@ -779,8 +779,9 @@ class _StatementCompiler(xfrm.StatementVisitor): with self._case.switch(test_sigspec, src=_src(stmt.src_loc)) as switch: for values, stmts in stmt.cases.items(): case_attrs = {} + case_src = None if values in stmt.case_src_locs: - case_attrs["src"] = _src(stmt.case_src_locs[values]) + case_src = _src(stmt.case_src_locs[values]) if isinstance(stmt.test, ast.Signal) and stmt.test.decoder: decoded_values = [] for value in values: @@ -789,7 +790,7 @@ class _StatementCompiler(xfrm.StatementVisitor): else: decoded_values.append(stmt.test.decoder(int(value, 2))) case_attrs["amaranth.decoding"] = "|".join(decoded_values) - with self.case(switch, values, attrs=case_attrs): + with self.case(switch, values, attrs=case_attrs, src=case_src): self._wrap_assign = False self.on_statements(stmts) self._wrap_assign = True