Skip to content

Commit 053ae9c

Browse files
authored
Merge pull request #2132 from tautschnig/extend-simplifier
Improvements to goto-analyzer's constant propagator and simplifier [blocks: #2522]
2 parents a94389d + 2359689 commit 053ae9c

File tree

22 files changed

+219
-121
lines changed

22 files changed

+219
-121
lines changed
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 2, assigns: 6, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 2, assigns: 6, function calls: 0$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 6, function calls: 0$
77
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
88
--
99
^warning: ignoring
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^\[main.assertion.1\] file main.c line 12 function main, assertion j != 3: FAILURE \(if reachable\)$
6+
^\[main.assertion.1\] line 11 assertion j != 3: FAILURE \(if reachable\)$
77
--
88
^warning: ignoring
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 4, assigns: 10, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 10, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 11, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 9, function calls: 2$
88
--
99
^warning: ignoring
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
FUTURE
1+
CORE
22
main.c
3-
--constants --simplify out.gb
3+
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 3, assigns: 4, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 11, function calls: 2$
6+
^\[main.assertion.1\] line 9 assertion a\[(\(signed( long)? long int\))?0\] == 0: FAILURE \(if reachable\)$
87
--
98
^warning: ignoring
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^\[main.assertion.1\] file main.c line 10 function main, assertion a\[(\(signed( long)? long int\))?0\] == 2: FAILURE$
6+
^\[main.assertion.1\] line 10 assertion a\[(\(signed( long)? long int\))?0\] == 2: FAILURE \(if reachable\)$
77
--
88
^warning: ignoring
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
FUTURE
1+
CORE
22
main.c
3-
--constants --simplify out.gb
3+
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 0, assigns: 0, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 0, assigns: 0, function calls: 0$
6+
^\[main.assertion.1\] line 9 assertion a\[(\(signed( long)? long int\))?0\] == 1: SUCCESS$
87
--
98
^warning: ignoring
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --simplify out.gb
44
^EXIT=0$
55
^SIGNAL=0$
6-
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 4, function calls: 0$
7-
^Unmodified: assert: 0, assume: 0, goto: 2, assigns: 11, function calls: 2$
6+
^Simplified: assert: 1, assume: 0, goto: 1, assigns: 5, function calls: 0$
7+
^Unmodified: assert: 0, assume: 0, goto: 1, assigns: 10, function calls: 2$
88
--
99
^warning: ignoring
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^\[main.assertion.1\] file main.c line 9 function main, assertion y == 0: FAILURE \(if reachable\)$
6+
^\[main.assertion.1\] line 9 assertion y == 0: FAILURE \(if reachable\)$
77
--
88
^warning: ignoring
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^\[main.assertion.1\] file main.c line 11 function main, assertion tmp_if_expr: SUCCESS$
7-
^\[main.assertion.2\] file main.c line 12 function main, assertion tmp_if_expr\$1: FAILURE$
6+
^\[main.assertion.1\] line 11 assertion tmp_if_expr: SUCCESS$
7+
^\[main.assertion.2\] line 12 assertion tmp_if_expr\$0: FAILURE \(if reachable\)$
88
--
99
^warning: ignoring
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
FUTURE
1+
CORE
22
main.c
33
--constants --verify
44
^EXIT=0$
55
^SIGNAL=0$
6-
^\[main.assertion.1\] file main.c line 9 function main, assertion a\[(\(signed( long)? long int\))?0\] == 2: FAILURE$
6+
^\[main.assertion.1\] line 9 assertion a\[(\(signed( long)? long int\))?0\] == 2: FAILURE \(if reachable\)$
77
--
88
^warning: ignoring
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#include <assert.h>
2+
3+
int main()
4+
{
5+
int i = 1;
6+
int *p = &i;
7+
assert(*p == 1);
8+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
main.c
3+
--constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^\[main.assertion.1\] line 7 assertion \*p == 1: SUCCESS$
7+
--
8+
^warning: ignoring
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#include <assert.h>
2+
3+
int main()
4+
{
5+
int x;
6+
int *p = &x;
7+
*p = 42;
8+
assert(x == 42);
9+
return 0;
10+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
main.c
3+
--constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^\[main.assertion.1\] line 8 assertion x == 42: SUCCESS$
7+
--
8+
^warning: ignoring
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
#include <assert.h>
2+
3+
int main()
4+
{
5+
int x;
6+
if(x == 0)
7+
{
8+
assert(!x);
9+
}
10+
return 0;
11+
}
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
CORE
2+
main.c
3+
--constants --verify
4+
^EXIT=0$
5+
^SIGNAL=0$
6+
^\[main.assertion.1\] line 8 assertion !x: SUCCESS$
7+
--
8+
^warning: ignoring

regression/goto-analyzer/sensitivity-function-call-recursive/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
FUTURE
22
main.c
33
--variable --pointers --arrays --structs --verify
44
^EXIT=0$

regression/goto-analyzer/sensitivity-test-constants-pointer-to-constants-struct/test.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
FUTURE
22
sensitivity_test_constants_pointer_to_constants_struct.c
33
--variable --pointers --structs --verify
44
^EXIT=0$

0 commit comments

Comments
 (0)