blob: 7588094fe161da09d5aad9ae9b919eb4497e3b2a (
plain) (
blame)
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
{
// This is a test for an older version where
// inlining was performed on a function
// just being called. This is a problem
// because the statemenst of the original
// function might be in an invalid state.
function f(x) {
mstore(0, x)
mstore(7, h())
g(10)
mstore(1, x)
}
function g(x) {
f(1)
}
function h() -> t {
t := 2
}
{
f(100)
}
}
// ----
// fullInliner
// {
// {
// {
// let f_x_1 := 100
// mstore(0, f_x_1)
// let f_h_t
// f_h_t := 2
// mstore(7, f_h_t)
// let f__5 := 10
// let f_g_x_1 := f__5
// let f_g_f_x := 1
// let
// mstore()
// let f_g_f_ := h()
// let
// mstore()
// let
// g(f__5)
// mstore(1, f_g_f_x)
// mstore(1, f_x_1)
// }
// }
// function f(x)
// {
// mstore(0, x)
// let h_t
// h_t := 2
// mstore(7, h_t)
// let _5 := 10
// let g_x_1 := _5
// let g_f_x := 1
// let
// mstore()
// let g_f_ := h()
// let
// mstore()
// let
// g(_5)
// mstore(1, g_f_x)
// mstore(1, x)
// }
// function g(x_1)
// {
// let f_x := 1
// let
// mstore()
// let f_ := h()
// let
// mstore()
// let
// g(_5)
// mstore(1, f_x)
// }
// function h() -> t
// {
// t := 2
// }
// }
|