Skip to content

Commit 60da221

Browse files
Merge pull request #52 from lisa-analyzer/counting-update
Bugfix in bitwise operations, improvements on abstract memory domain
2 parents 19348e2 + 6ae74cd commit 60da221

File tree

89 files changed

+7721
-377557
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+7721
-377557
lines changed

.project

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,15 @@
2020
<nature>org.eclipse.jdt.core.javanature</nature>
2121
<nature>org.eclipse.buildship.core.gradleprojectnature</nature>
2222
</natures>
23+
<filteredResources>
24+
<filter>
25+
<id>1747228441545</id>
26+
<name></name>
27+
<type>30</type>
28+
<matcher>
29+
<id>org.eclipse.core.resources.regexFilterMatcher</id>
30+
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
31+
</matcher>
32+
</filter>
33+
</filteredResources>
2334
</projectDescription>

evm-testcases/cfs/div/div_eth.sol

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,14 @@ PUSH1 0x02
77
PUSH1 0x01
88
DIV
99
PUSH1 0x00
10+
EQ
11+
PUSH1 0x02
12+
PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffA
13+
DIV
14+
PUSH32 0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
15+
EQ
16+
PUSH1 0x02
17+
PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffA
18+
SDIV
19+
PUSH32 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd
1020
EQ

evm-testcases/cfs/div/report.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@
33
"files" : [ "report.json", "untyped_program.evm-testcases_cfs_div_div_eth.sol().json" ],
44
"info" : {
55
"cfgs" : "1",
6-
"duration" : "20ms",
7-
"end" : "2025-02-26T11:44:05.699+01:00",
8-
"expressions" : "6",
6+
"duration" : "13ms",
7+
"end" : "2025-05-13T12:59:48.586+02:00",
8+
"expressions" : "12",
99
"files" : "1",
1010
"globals" : "0",
1111
"members" : "1",
1212
"programs" : "1",
13-
"start" : "2025-02-26T11:44:05.679+01:00",
14-
"statements" : "10",
13+
"start" : "2025-05-13T12:59:48.573+02:00",
14+
"statements" : "20",
1515
"units" : "0",
1616
"version" : "0.1",
1717
"warnings" : "0"

evm-testcases/cfs/div/untyped_program.evm-testcases_cfs_div_div_eth.sol().json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

evm-testcases/cfs/if/report.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"files" : [ "report.json", "untyped_program.evm-testcases_cfs_if_if_eth.sol().json" ],
44
"info" : {
55
"cfgs" : "1",
6-
"duration" : "11ms",
7-
"end" : "2025-02-26T11:44:06.477+01:00",
6+
"duration" : "7ms",
7+
"end" : "2025-05-27T10:49:03.673+02:00",
88
"expressions" : "5",
99
"files" : "1",
1010
"globals" : "0",
1111
"members" : "1",
1212
"programs" : "1",
13-
"start" : "2025-02-26T11:44:06.466+01:00",
13+
"start" : "2025-05-27T10:49:03.666+02:00",
1414
"statements" : "8",
1515
"units" : "0",
1616
"version" : "0.1",
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"name":"untyped program::evm-testcases/cfs/if/if_eth.sol()","description":null,"nodes":[{"id":0,"subNodes":[1],"text":"PUSH1 0x01"},{"id":1,"text":"0x01"},{"id":2,"subNodes":[3],"text":"PUSH1 0x02"},{"id":3,"text":"0x02"},{"id":4,"text":"EQ"},{"id":5,"subNodes":[6],"text":"PUSH1 0x0A"},{"id":6,"text":"0x0A"},{"id":7,"text":"JUMPI"},{"id":8,"subNodes":[9],"text":"PUSH1 0x03"},{"id":9,"text":"0x03"},{"id":10,"text":"JUMPDEST"},{"id":11,"subNodes":[12],"text":"PUSH1 0x04"},{"id":12,"text":"0x04"}],"edges":[{"sourceId":0,"destId":2,"kind":"SequentialEdge"},{"sourceId":2,"destId":4,"kind":"SequentialEdge"},{"sourceId":4,"destId":5,"kind":"SequentialEdge"},{"sourceId":5,"destId":7,"kind":"SequentialEdge"},{"sourceId":7,"destId":8,"kind":"FalseEdge"},{"sourceId":7,"destId":10,"kind":"TrueEdge"},{"sourceId":8,"destId":10,"kind":"SequentialEdge"},{"sourceId":10,"destId":11,"kind":"SequentialEdge"}],"descriptions":[{"nodeId":0,"description":{"expressions":["push \"0x01\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 1]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":1,"description":{"expressions":["\"0x01\""],"state":"#TOP#"}},{"nodeId":2,"description":{"expressions":["push \"0x02\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 1, 2]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":3,"description":{"expressions":["\"0x02\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 1]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":4,"description":{"expressions":["eq 1"],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 0]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":5,"description":{"expressions":["push \"0x0A\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 0, 10]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":6,"description":{"expressions":["\"0x0A\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 0]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":7,"description":{"expressions":["jumpi ([],[[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]])"],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":8,"description":{"expressions":["push \"0x03\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":9,"description":{"expressions":["\"0x03\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":10,"description":{"expressions":["jumpdest 1"],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":11,"description":{"expressions":["push \"0x04\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3, 4]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":12,"description":{"expressions":["\"0x04\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3]], memory: EMPTY, storage: #TOP# }"}}}]}
1+
{"name":"untyped program::evm-testcases/cfs/if/if_eth.sol()","description":null,"nodes":[{"id":0,"subNodes":[1],"text":"PUSH1 0x01"},{"id":1,"text":"0x01"},{"id":2,"subNodes":[3],"text":"PUSH1 0x02"},{"id":3,"text":"0x02"},{"id":4,"text":"EQ"},{"id":5,"subNodes":[6],"text":"PUSH1 0x0A"},{"id":6,"text":"0x0A"},{"id":7,"text":"JUMPI"},{"id":8,"subNodes":[9],"text":"PUSH1 0x03"},{"id":9,"text":"0x03"},{"id":10,"text":"JUMPDEST"},{"id":11,"subNodes":[12],"text":"PUSH1 0x04"},{"id":12,"text":"0x04"}],"edges":[{"sourceId":0,"destId":2,"kind":"SequentialEdge"},{"sourceId":2,"destId":4,"kind":"SequentialEdge"},{"sourceId":4,"destId":5,"kind":"SequentialEdge"},{"sourceId":5,"destId":7,"kind":"SequentialEdge"},{"sourceId":7,"destId":8,"kind":"FalseEdge"},{"sourceId":7,"destId":10,"kind":"TrueEdge"},{"sourceId":8,"destId":10,"kind":"SequentialEdge"},{"sourceId":10,"destId":11,"kind":"SequentialEdge"}],"descriptions":[{"nodeId":0,"description":{"expressions":["push \"0x01\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 1]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":1,"description":{"expressions":["\"0x01\""],"state":"#TOP#"}},{"nodeId":2,"description":{"expressions":["push \"0x02\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 1, 2]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":3,"description":{"expressions":["\"0x02\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 1]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":4,"description":{"expressions":["eq 1"],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 0]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":5,"description":{"expressions":["push \"0x0A\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 0, 10]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":6,"description":{"expressions":["\"0x0A\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 0]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":7,"description":{"expressions":["jumpi 1"],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":8,"description":{"expressions":["push \"0x03\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":9,"description":{"expressions":["\"0x03\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":10,"description":{"expressions":["jumpdest 1"],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3], [_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":11,"description":{"expressions":["push \"0x04\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 4], [_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3, 4]], memory: EMPTY, storage: #TOP# }"}}},{"nodeId":12,"description":{"expressions":["\"0x04\""],"state":{"heap":"monolith","type":"#TOP#","value":"{ stacks: [[_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, 3], [_|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_, _|_]], memory: EMPTY, storage: #TOP# }"}}}]}

evm-testcases/cfs/if_else/report.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
"files" : [ "report.json", "untyped_program.evm-testcases_cfs_if_else_if_else_eth.sol().json" ],
44
"info" : {
55
"cfgs" : "1",
6-
"duration" : "7ms",
7-
"end" : "2025-02-26T11:44:06.704+01:00",
6+
"duration" : "4ms",
7+
"end" : "2025-05-27T10:49:04.133+02:00",
88
"expressions" : "7",
99
"files" : "1",
1010
"globals" : "0",
1111
"members" : "1",
1212
"programs" : "1",
13-
"start" : "2025-02-26T11:44:06.697+01:00",
13+
"start" : "2025-05-27T10:49:04.129+02:00",
1414
"statements" : "12",
1515
"units" : "0",
1616
"version" : "0.1",

0 commit comments

Comments
 (0)