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