mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
No into body.
This commit is contained in:
parent
5d6e983be3
commit
19ccdfb0b3
@ -31,7 +31,11 @@ void ForLoopConditionIntoBody::run(OptimiserStepContext& _context, Block& _ast)
|
||||
|
||||
void ForLoopConditionIntoBody::operator()(ForLoop& _forLoop)
|
||||
{
|
||||
if (m_dialect.booleanNegationFunction() && _forLoop.condition->type() != typeid(Literal))
|
||||
if (
|
||||
m_dialect.booleanNegationFunction() &&
|
||||
_forLoop.condition->type() != typeid(Literal) &&
|
||||
_forLoop.condition->type() != typeid(Identifier)
|
||||
)
|
||||
{
|
||||
langutil::SourceLocation loc = locationOf(*_forLoop.condition);
|
||||
_forLoop.body.statements.insert(
|
||||
|
@ -17,8 +17,8 @@
|
||||
// { }
|
||||
// for { } 0 { }
|
||||
// { }
|
||||
// for { } 1 { }
|
||||
// { if iszero(a) { break } }
|
||||
// for { } a { }
|
||||
// { }
|
||||
// for { } 1 { }
|
||||
// {
|
||||
// if iszero(add(a, a)) { break }
|
||||
|
@ -21,50 +21,10 @@
|
||||
// ----
|
||||
// {
|
||||
// {
|
||||
// let p := 0
|
||||
// let p_1 := p
|
||||
// let p_2 := p
|
||||
// let p_3 := p
|
||||
// let p_4 := p
|
||||
// let p_5 := p
|
||||
// let p_6 := p
|
||||
// let p_7 := p
|
||||
// let p_8 := p
|
||||
// let p_9 := p
|
||||
// let p_10 := p
|
||||
// let p_11 := mload(0x40)
|
||||
// mstore(0x40, add(p_11, 0x20))
|
||||
// mstore(0x40, add(p_11, 96))
|
||||
// mstore(add(p_11, 128), 2)
|
||||
// let _1 := 1
|
||||
// let p := mload(0x40)
|
||||
// mstore(0x40, add(p, 0x20))
|
||||
// mstore(0x40, add(p, 96))
|
||||
// mstore(add(p, 128), 2)
|
||||
// mstore(0x40, 0x20)
|
||||
// for { } iszero(p) { }
|
||||
// {
|
||||
// p := 0
|
||||
// if p_1 { break }
|
||||
// p_1 := p
|
||||
// if p_2 { break }
|
||||
// p_2 := p
|
||||
// if p_3 { break }
|
||||
// p_3 := p
|
||||
// if p_4 { break }
|
||||
// p_4 := p
|
||||
// if p_5 { break }
|
||||
// p_5 := p
|
||||
// if p_6 { break }
|
||||
// p_6 := p
|
||||
// if p_7 { break }
|
||||
// p_7 := p
|
||||
// if p_8 { break }
|
||||
// p_8 := p
|
||||
// if p_9 { break }
|
||||
// p_9 := p
|
||||
// if p_10 { break }
|
||||
// p_10 := p
|
||||
// if iszero(_1) { break }
|
||||
// if _1 { break }
|
||||
// _1 := p
|
||||
// mstore(128, 0x40)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
@ -31,7 +31,7 @@
|
||||
// let _4 := lt(or(1, add(pc(), _3)), 1)
|
||||
// let _5 := pc()
|
||||
// let _6 := pc()
|
||||
// pop(keccak256(pc(), or(gt(not(pc()), 1), 1)))
|
||||
// pop(or(keccak256(pc(), or(gt(not(pc()), 1), 1)), 1))
|
||||
// mstore(lt(or(gt(1, or(or(gt(or(or(or(gt(or(gt(_3, _6), 1), _5), _4), _2), 1), 1), _1), 1)), 1), 1), 1)
|
||||
// sstore(not(pc()), 1)
|
||||
// sstore(0, 0)
|
||||
|
Loading…
Reference in New Issue
Block a user