File tree Expand file tree Collapse file tree 3 files changed +34
-3
lines changed Expand file tree Collapse file tree 3 files changed +34
-3
lines changed Original file line number Diff line number Diff line change
1
+ int main ()
2
+ {
3
+ __CPROVER_bool a , b , c , d ;
4
+ __CPROVER_assume (a );
5
+ __CPROVER_assume (b );
6
+ __CPROVER_assert (c || d , "some property" );
7
+ }
Original file line number Diff line number Diff line change
1
+ CORE
2
+ main.c
3
+ --show-vcc
4
+ ^EXIT=0$
5
+ ^SIGNAL=0$
6
+ ^some property$
7
+ ^\{-.*\} a!0@1#1$
8
+ ^\{-.*\} b!0@1#1$
9
+ ^\{1\} c!0@1#1$
10
+ ^\{2\} d!0@1#1$
11
+ --
Original file line number Diff line number Diff line change @@ -83,9 +83,22 @@ void show_vcc_plain(
83
83
out << u8" \u2500 " ;
84
84
out << ' \n ' ;
85
85
86
- std::string string_value =
87
- from_expr (ns, s_it->source .pc ->function , s_it->cond_expr );
88
- out << " {" << 1 << " } " << string_value << " \n " ;
86
+ // split property into multiple disjunts, if applicable
87
+ exprt::operandst disjuncts;
88
+
89
+ if (s_it->cond_expr .id () == ID_or)
90
+ disjuncts = to_or_expr (s_it->cond_expr ).operands ();
91
+ else
92
+ disjuncts.push_back (s_it->cond_expr );
93
+
94
+ std::size_t count = 1 ;
95
+ for (const auto &disjunct : disjuncts)
96
+ {
97
+ std::string string_value =
98
+ from_expr (ns, s_it->source .pc ->function , disjunct);
99
+ out << " {" << count << " } " << string_value << " \n " ;
100
+ count++;
101
+ }
89
102
}
90
103
}
91
104
You can’t perform that action at this time.
0 commit comments