1{
2    function f(a, b) -> c {
3        sstore(0x01, 0x0101)
4        if lt(a,b) {
5            sstore(0x02, 0x0202)
6            leave
7            sstore(0x03, 0x0303)
8        }
9        sstore(0x04, 0x0404)
10    }
11
12    pop(f(0,1))
13}
14// ----
15// digraph CFG {
16// nodesep=0.7;
17// node[shape=box];
18//
19// Entry [label="Entry"];
20// Entry -> Block0;
21// Block0 [label="\
22// f: [ RET[f] 0x01 0x00 ] => [ TMP[f, 0] ]\l\
23// pop: [ TMP[f, 0] ] => [ ]\l\
24// "];
25// Block0Exit [label="MainExit"];
26// Block0 -> Block0Exit;
27//
28// FunctionEntry_f_1 [label="function f(a, b) -> c"];
29// FunctionEntry_f_1 -> Block1;
30// Block1 [label="\
31// sstore: [ 0x0101 0x01 ] => [ ]\l\
32// lt: [ b a ] => [ TMP[lt, 0] ]\l\
33// "];
34// Block1 -> Block1Exit;
35// Block1Exit [label="{ TMP[lt, 0]| { <0> Zero | <1> NonZero }}" shape=Mrecord];
36// Block1Exit:0 -> Block2;
37// Block1Exit:1 -> Block3;
38//
39// Block2 [label="\
40// sstore: [ 0x0404 0x04 ] => [ ]\l\
41// "];
42// Block2Exit [label="FunctionReturn[f]"];
43// Block2 -> Block2Exit;
44//
45// Block3 [label="\
46// sstore: [ 0x0202 0x02 ] => [ ]\l\
47// "];
48// Block3Exit [label="FunctionReturn[f]"];
49// Block3 -> Block3Exit;
50//
51// }
52