solidity/test/libyul/yulOptimizerTests/rematerialiser/for_continue.yul

43 lines
661 B
Plaintext
Raw Normal View History

{
let a
let b
let i := 0
for { }
lt(i, 10)
{ i := add(a, b) } // `b` is always known to be caller() but `a` may be origin() or caller().
{
a := origin()
b := origin()
b := caller()
if callvalue() { continue }
a := caller()
}
mstore(a, b)
}
2019-04-01 14:33:46 +00:00
// ====
// step: rematerialiser
// ----
// {
// let a
// let b
// let i := 0
// for {
// }
// lt(i, 10)
// {
// i := add(a, caller())
// }
// {
// a := origin()
// b := origin()
// b := caller()
// if callvalue()
// {
// continue
// }
// a := caller()
// }
// mstore(a, b)
// }