Skip to content

Commit 53644c8

Browse files
committed
Fix error of untracked in-eachs at top-level
Signed-off-by: Jonatan Waern <jonatan.waern@intel.com>
1 parent 2674f08 commit 53644c8

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
see [USAGE.md](USAGE.md) for instructions on how to use it
1414
- Disabled the invariant check for the parameter 'size' to be set on register
1515
objects. Will be re-enabled when constant-folding is added to the DLS.
16+
- Fixed issue where statements under top-level in-eachs were not correctly tracked.
1617

1718
## 0.9.12
1819
- Added 'simics\_util\_vect' as a known provisional (with no DLS semantics)

src/analysis/structure/toplevel.rs

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -659,8 +659,20 @@ impl TopLevel {
659659
|stmnt|ObjectDecl::always(stmnt)).collect();
660660
let mut errors = statements.errors.iter().map(
661661
|stmnt|ObjectDecl::always(stmnt)).collect();
662-
let mut ineachs = statements.ineachs.iter().map(
663-
|stmnt|ObjectDecl::always(stmnt)).collect();
662+
let mut ineachs = vec![];
663+
664+
for ineach in &statements.ineachs {
665+
let spec = flatten_hashif_branch(StatementContext::Object,
666+
&ineach.statements,
667+
vec![], report);
668+
ineachs.push(
669+
ObjectDecl {
670+
cond: ExistCondition::Always,
671+
obj: ineach.clone(),
672+
spec,
673+
});
674+
}
675+
664676
let mut templates = vec![];
665677
let mut loggroups = vec![];
666678
let mut constants = vec![];

0 commit comments

Comments
 (0)