File tree Expand file tree Collapse file tree 3 files changed +16
-6
lines changed
Expand file tree Collapse file tree 3 files changed +16
-6
lines changed Original file line number Diff line number Diff line change 33* Verilog: `elsif preprocessor directive
44* Verilog: fix for named generate blocks
55* Verilog: $onehot and $onehot0 are now elaboration-time constant
6+ * SystemVerilog: fix for #-# and #=# for empty matches
67* LTL/SVA to Buechi with --buechi
78
89# EBMC 5.6
Original file line number Diff line number Diff line change 1- KNOWNBUG
1+ CORE
22followed-by5.sv
33--bound 2
4- ^\[main\.p0\] \(1 \[\*0\]\) #=# main\.x == 0: PROVED$
4+ ^\[main\.p0\] \(1 \[\*0\]\) #=# main\.x == 0: PROVED up to bound 2 $
55^\[main\.p1\] \(1 \[\*0\]\) #-# 1: REFUTED$
66^EXIT=10$
77^SIGNAL=0$
88--
99^warning: ignoring
1010--
11- Empty LHS sequences are not implemented.
Original file line number Diff line number Diff line change @@ -644,7 +644,7 @@ static obligationst property_obligations_rec(
644644 // the result is a property expression.
645645 auto &followed_by = to_sva_followed_by_expr (property_expr);
646646
647- // get (proper) match points for LHS sequence
647+ // get match points for LHS sequence
648648 auto matches = instantiate_sequence (
649649 followed_by.antecedent (),
650650 sva_sequence_semanticst::STRONG,
@@ -656,10 +656,20 @@ static obligationst property_obligations_rec(
656656
657657 for (auto &match : matches)
658658 {
659+ bool overlapped = property_expr.id () == ID_sva_overlapped_followed_by;
660+
661+ // empty match?
662+ if (match.empty_match () && overlapped)
663+ {
664+ // won't yield a disjunct
665+ continue ;
666+ }
667+
659668 mp_integer property_start = match.end_time ;
660669
661- // #=# advances the clock by one from the sequence match point
662- if (property_expr.id () == ID_sva_nonoverlapped_followed_by)
670+ // #=# advances the clock by one from the sequence match point,
671+ // unless the LHS is an empty match.
672+ if (!match.empty_match () && !overlapped)
663673 property_start += 1 ;
664674
665675 // at the end?
You can’t perform that action at this time.
0 commit comments