1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{
function a() {
if calldataload(0) {
revert(0, 0)
}
reg()
b()
}
function b() {
a()
return(0, 0)
}
function c() {
c()
revert(0, 0)
}
function d() {
switch calldataload(0)
case 0 { x() }
case 1 { y() reg() revert(0, 0) }
default { z() }
}
function x() { d() revert(0, 0) }
function y() { reg() x() }
function z() { y() }
function reg() {}
}
// ----
// a: can revert
// b: can revert
// c:
// d:
// x:
// y:
// z:
// reg: can continue