@@ -115,19 +115,18 @@ TEST(analysis, only_jumpdest)
115
115
ASSERT_EQ (analysis.jumpdest_offsets .size (), 1 );
116
116
ASSERT_EQ (analysis.jumpdest_targets .size (), 1 );
117
117
EXPECT_EQ (analysis.jumpdest_offsets [0 ], 0 );
118
- EXPECT_EQ (analysis.jumpdest_targets [0 ], 0 );
118
+ EXPECT_EQ (analysis.jumpdest_targets [0 ], 1 );
119
119
}
120
120
121
121
TEST (analysis, jumpi_at_the_end)
122
122
{
123
123
const auto code = bytecode{OP_JUMPI};
124
124
auto analysis = analyze (rev, code);
125
125
126
- ASSERT_EQ (analysis.instrs .size (), 4 );
126
+ ASSERT_EQ (analysis.instrs .size (), 3 );
127
127
EXPECT_EQ (analysis.instrs [0 ].fn , op_tbl[OPX_BEGINBLOCK].fn );
128
128
EXPECT_EQ (analysis.instrs [1 ].fn , op_tbl[OP_JUMPI].fn );
129
- EXPECT_EQ (analysis.instrs [2 ].fn , op_tbl[OPX_BEGINBLOCK].fn );
130
- EXPECT_EQ (analysis.instrs [3 ].fn , op_tbl[OP_STOP].fn );
129
+ EXPECT_EQ (analysis.instrs [2 ].fn , op_tbl[OP_STOP].fn );
131
130
}
132
131
133
132
TEST (analysis, terminated_last_block)
@@ -137,11 +136,10 @@ TEST(analysis, terminated_last_block)
137
136
const auto code = ret (0 , 0 );
138
137
auto analysis = analyze (rev, code);
139
138
140
- ASSERT_EQ (analysis.instrs .size (), 6 );
139
+ ASSERT_EQ (analysis.instrs .size (), 5 );
141
140
EXPECT_EQ (analysis.instrs [0 ].fn , op_tbl[OPX_BEGINBLOCK].fn );
142
141
EXPECT_EQ (analysis.instrs [3 ].fn , op_tbl[OP_RETURN].fn );
143
- EXPECT_EQ (analysis.instrs [4 ].fn , op_tbl[OPX_BEGINBLOCK].fn );
144
- EXPECT_EQ (analysis.instrs [5 ].fn , op_tbl[OP_STOP].fn );
142
+ EXPECT_EQ (analysis.instrs [4 ].fn , op_tbl[OP_STOP].fn );
145
143
}
146
144
147
145
TEST (analysis, jumpdests_groups)
@@ -150,33 +148,33 @@ TEST(analysis, jumpdests_groups)
150
148
auto analysis = analyze (rev, code);
151
149
152
150
ASSERT_EQ (analysis.instrs .size (), 11 );
153
- EXPECT_EQ (analysis.instrs [0 ].fn , op_tbl[OP_JUMPDEST ].fn );
151
+ EXPECT_EQ (analysis.instrs [0 ].fn , op_tbl[OPX_BEGINBLOCK ].fn );
154
152
EXPECT_EQ (analysis.instrs [1 ].fn , op_tbl[OP_JUMPDEST].fn );
155
153
EXPECT_EQ (analysis.instrs [2 ].fn , op_tbl[OP_JUMPDEST].fn );
156
- EXPECT_EQ (analysis.instrs [3 ].fn , op_tbl[OP_PUSH1 ].fn );
157
- EXPECT_EQ (analysis.instrs [4 ].fn , op_tbl[OP_JUMPDEST ].fn );
154
+ EXPECT_EQ (analysis.instrs [3 ].fn , op_tbl[OP_JUMPDEST ].fn );
155
+ EXPECT_EQ (analysis.instrs [4 ].fn , op_tbl[OP_PUSH1 ].fn );
158
156
EXPECT_EQ (analysis.instrs [5 ].fn , op_tbl[OP_JUMPDEST].fn );
159
157
EXPECT_EQ (analysis.instrs [6 ].fn , op_tbl[OP_JUMPDEST].fn );
160
- EXPECT_EQ (analysis.instrs [7 ].fn , op_tbl[OP_PUSH1 ].fn );
161
- EXPECT_EQ (analysis.instrs [8 ].fn , op_tbl[OP_JUMPI ].fn );
162
- EXPECT_EQ (analysis.instrs [9 ].fn , op_tbl[OPX_BEGINBLOCK ].fn );
158
+ EXPECT_EQ (analysis.instrs [7 ].fn , op_tbl[OP_JUMPDEST ].fn );
159
+ EXPECT_EQ (analysis.instrs [8 ].fn , op_tbl[OP_PUSH1 ].fn );
160
+ EXPECT_EQ (analysis.instrs [9 ].fn , op_tbl[OP_JUMPI ].fn );
163
161
EXPECT_EQ (analysis.instrs [10 ].fn , op_tbl[OP_STOP].fn );
164
162
165
163
166
164
ASSERT_EQ (analysis.jumpdest_offsets .size (), 6 );
167
165
ASSERT_EQ (analysis.jumpdest_targets .size (), 6 );
168
166
EXPECT_EQ (analysis.jumpdest_offsets [0 ], 0 );
169
- EXPECT_EQ (analysis.jumpdest_targets [0 ], 0 );
167
+ EXPECT_EQ (analysis.jumpdest_targets [0 ], 1 );
170
168
EXPECT_EQ (analysis.jumpdest_offsets [1 ], 1 );
171
- EXPECT_EQ (analysis.jumpdest_targets [1 ], 1 );
169
+ EXPECT_EQ (analysis.jumpdest_targets [1 ], 2 );
172
170
EXPECT_EQ (analysis.jumpdest_offsets [2 ], 2 );
173
- EXPECT_EQ (analysis.jumpdest_targets [2 ], 2 );
171
+ EXPECT_EQ (analysis.jumpdest_targets [2 ], 3 );
174
172
EXPECT_EQ (analysis.jumpdest_offsets [3 ], 5 );
175
- EXPECT_EQ (analysis.jumpdest_targets [3 ], 4 );
173
+ EXPECT_EQ (analysis.jumpdest_targets [3 ], 5 );
176
174
EXPECT_EQ (analysis.jumpdest_offsets [4 ], 6 );
177
- EXPECT_EQ (analysis.jumpdest_targets [4 ], 5 );
175
+ EXPECT_EQ (analysis.jumpdest_targets [4 ], 6 );
178
176
EXPECT_EQ (analysis.jumpdest_offsets [5 ], 7 );
179
- EXPECT_EQ (analysis.jumpdest_targets [5 ], 6 );
177
+ EXPECT_EQ (analysis.jumpdest_targets [5 ], 7 );
180
178
}
181
179
182
180
TEST (analysis, example1_eof1)
0 commit comments