File tree Expand file tree Collapse file tree 5 files changed +27
-84
lines changed Expand file tree Collapse file tree 5 files changed +27
-84
lines changed Original file line number Diff line number Diff line change 3
3
--cover mcdc
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
- ^\[main.coverage.1 \] file main.c line 14 function main MC/DC independence condition `C && D && !E && A && !B.*: SATISFIED$
7
- ^\[main.coverage.2 \] file main.c line 14 function main MC/DC independence condition `C && !D && E && A && !B.*: SATISFIED$
8
- ^\[main.coverage.3 \] file main.c line 14 function main MC/DC independence condition `!C && D && E && A && !B.*: SATISFIED$
9
- ^\[main.coverage.4 \] file main.c line 14 function main MC/DC independence condition `C && D && E && A && !B.*: SATISFIED$
10
- ^\[main.coverage.5 \] file main.c line 14 function main MC/DC independence condition `C && D && E && !A && B.*: SATISFIED$
11
- ^\[main.coverage.6 \] file main.c line 14 function main MC/DC independence condition `C && D && E && !A && !B.*: SATISFIED$
6
+ ^\[main.coverage.\d+ \] file main.c line 14 function main MC/DC independence condition `C && D && !E && A && !B.*: SATISFIED$
7
+ ^\[main.coverage.\d+ \] file main.c line 14 function main MC/DC independence condition `C && !D && E && A && !B.*: SATISFIED$
8
+ ^\[main.coverage.\d+ \] file main.c line 14 function main MC/DC independence condition `!C && D && E && A && !B.*: SATISFIED$
9
+ ^\[main.coverage.\d+ \] file main.c line 14 function main MC/DC independence condition `C && D && E && A && !B.*: SATISFIED$
10
+ ^\[main.coverage.\d+ \] file main.c line 14 function main MC/DC independence condition `C && D && E && !A && B.*: SATISFIED$
11
+ ^\[main.coverage.\d+ \] file main.c line 14 function main MC/DC independence condition `C && D && E && !A && !B.*: SATISFIED$
12
12
^\*\* .* of .* covered \(100.0%\)$
13
13
--
14
14
^warning: ignoring
Original file line number Diff line number Diff line change 3
3
--cover mcdc
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
- ^\[main.coverage.1 \] file main.c line 10 function main MC/DC independence condition `A && !B && !C.*: SATISFIED$
7
- ^\[main.coverage.2 \] file main.c line 10 function main MC/DC independence condition `!A && B && !C.*: SATISFIED$
8
- ^\[main.coverage.3 \] file main.c line 10 function main MC/DC independence condition `!A && !B && C.*: SATISFIED$
9
- ^\[main.coverage.4 \] file main.c line 10 function main MC/DC independence condition `!A && !B && !C.*: SATISFIED$
6
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `A && !B && !C.*: SATISFIED$
7
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!A && B && !C.*: SATISFIED$
8
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!A && !B && C.*: SATISFIED$
9
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!A && !B && !C.*: SATISFIED$
10
10
^\*\* .* of .* covered \(100.0%\)$
11
11
--
12
12
^warning: ignoring
Original file line number Diff line number Diff line change 3
3
--cover mcdc
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
- ^\[main.coverage.1 \] file main.c line 11 function main MC/DC independence condition `A && B && C && !D.*: SATISFIED$
7
- ^\[main.coverage.2 \] file main.c line 11 function main MC/DC independence condition `A && !B && C && D.*: SATISFIED$
8
- ^\[main.coverage.3 \] file main.c line 11 function main MC/DC independence condition `A && !B && C && !D.*: SATISFIED$
9
- ^\[main.coverage.4 \] file main.c line 11 function main MC/DC independence condition `!C && D && A && !B.*: SATISFIED$
10
- ^\[main.coverage.5 \] file main.c line 11 function main MC/DC independence condition `!A && B && C && !D.*: SATISFIED$
6
+ ^\[main.coverage.\d+ \] file main.c line 11 function main MC/DC independence condition `A && B && C && !D.*: SATISFIED$
7
+ ^\[main.coverage.\d+ \] file main.c line 11 function main MC/DC independence condition `A && !B && C && D.*: SATISFIED$
8
+ ^\[main.coverage.\d+ \] file main.c line 11 function main MC/DC independence condition `A && !B && C && !D.*: SATISFIED$
9
+ ^\[main.coverage.\d+ \] file main.c line 11 function main MC/DC independence condition `!C && D && A && !B.*: SATISFIED$
10
+ ^\[main.coverage.\d+ \] file main.c line 11 function main MC/DC independence condition `!A && B && C && !D.*: SATISFIED$
11
11
^\*\* .* of .* covered \(100.0%\)$
12
12
--
13
13
^warning: ignoring
Original file line number Diff line number Diff line change 3
3
--cover mcdc
4
4
^EXIT=0$
5
5
^SIGNAL=0$
6
- ^\[main.coverage.1 \] file main.c line 10 function main MC/DC independence condition `A && !B && C && !D.*: SATISFIED$
7
- ^\[main.coverage.2 \] file main.c line 10 function main MC/DC independence condition `!C && D && A && !B.*: SATISFIED$
8
- ^\[main.coverage.3 \] file main.c line 10 function main MC/DC independence condition `!C && !D && A && !B.*: SATISFIED$
9
- ^\[main.coverage.4 \] file main.c line 10 function main MC/DC independence condition `!A && B && C && !D.*: SATISFIED$
10
- ^\[main.coverage.5 \] file main.c line 10 function main MC/DC independence condition `!A && !B && C && !D.*: SATISFIED$
6
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `A && !B && C && !D.*: SATISFIED$
7
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!C && D && A && !B.*: SATISFIED$
8
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!C && !D && A && !B.*: SATISFIED$
9
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!A && B && C && !D.*: SATISFIED$
10
+ ^\[main.coverage.\d+ \] file main.c line 10 function main MC/DC independence condition `!A && !B && C && !D.*: SATISFIED$
11
11
^\*\* .* of .* covered \(100.0%\)$
12
12
--
13
13
^warning: ignoring
Original file line number Diff line number Diff line change @@ -48,36 +48,11 @@ std::set<exprt> collect_conditions(const exprt &src)
48
48
49
49
std::set<exprt> collect_conditions (const goto_programt::const_targett t)
50
50
{
51
- switch (t->type )
52
- {
53
- case GOTO:
54
- case ASSERT:
55
- return collect_conditions (t->guard );
56
-
57
- case ASSIGN:
58
- case FUNCTION_CALL:
59
- return collect_conditions (t->code );
60
-
61
- case CATCH:
62
- case THROW:
63
- case DEAD:
64
- case DECL:
65
- case RETURN:
66
- case ATOMIC_BEGIN:
67
- case ATOMIC_END:
68
- case START_THREAD:
69
- case END_THREAD:
70
- case END_FUNCTION:
71
- case LOCATION:
72
- case OTHER:
73
- case SKIP:
74
- case ASSUME:
75
- case INCOMPLETE_GOTO:
76
- case NO_INSTRUCTION_TYPE:
77
- break ;
78
- }
51
+ std::set<exprt> result;
52
+
53
+ t->apply ([&result](const exprt &e) { collect_conditions_rec (e, result); });
79
54
80
- return std::set<exprt>() ;
55
+ return result ;
81
56
}
82
57
83
58
void collect_operands (const exprt &src, std::vector<exprt> &dest)
@@ -120,43 +95,11 @@ void collect_decisions_rec(const exprt &src, std::set<exprt> &dest)
120
95
}
121
96
}
122
97
123
- std::set<exprt> collect_decisions (const exprt &src )
98
+ std::set<exprt> collect_decisions (const goto_programt::const_targett t )
124
99
{
125
100
std::set<exprt> result;
126
- collect_decisions_rec (src, result);
127
- return result;
128
- }
129
101
130
- std::set<exprt> collect_decisions (const goto_programt::const_targett t)
131
- {
132
- switch (t->type )
133
- {
134
- case GOTO:
135
- case ASSERT:
136
- return collect_decisions (t->guard );
137
-
138
- case ASSIGN:
139
- case FUNCTION_CALL:
140
- return collect_decisions (t->code );
141
-
142
- case CATCH:
143
- case THROW:
144
- case DEAD:
145
- case DECL:
146
- case RETURN:
147
- case ATOMIC_BEGIN:
148
- case ATOMIC_END:
149
- case START_THREAD:
150
- case END_THREAD:
151
- case END_FUNCTION:
152
- case LOCATION:
153
- case OTHER:
154
- case SKIP:
155
- case ASSUME:
156
- case INCOMPLETE_GOTO:
157
- case NO_INSTRUCTION_TYPE:
158
- break ;
159
- }
102
+ t->apply ([&result](const exprt &e) { collect_decisions_rec (e, result); });
160
103
161
- return std::set<exprt>() ;
104
+ return result ;
162
105
}
You can’t perform that action at this time.
0 commit comments