mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Refactor SideEffects struct
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
function c() { b() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a:
|
||||
// b:
|
||||
// c:
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: movable apart from effects, can loop
|
||||
// b: movable apart from effects, can loop
|
||||
// c: movable apart from effects, can loop
|
||||
|
||||
@@ -3,6 +3,6 @@
|
||||
function b() { a() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a:
|
||||
// b:
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: movable apart from effects, can loop
|
||||
// b: movable apart from effects, can loop
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
sstore(0, 1)
|
||||
}
|
||||
// ----
|
||||
// : invalidatesStorage
|
||||
// : writes storage
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
function i() { pop(msize()) }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: invalidatesMemory
|
||||
// f: invalidatesMemory
|
||||
// g: invalidatesStorage
|
||||
// h: sideEffectFreeIfNoMSize
|
||||
// i: sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: writes memory
|
||||
// f: writes memory
|
||||
// g: writes storage
|
||||
// h: movable apart from effects, can be removed if no msize, reads memory
|
||||
// i: can be removed, can be removed if no msize, reads memory
|
||||
|
||||
@@ -7,5 +7,5 @@
|
||||
sstore(0, mload(0))
|
||||
}
|
||||
// ----
|
||||
// : invalidatesStorage, invalidatesMemory
|
||||
// foo: invalidatesMemory
|
||||
// : can loop, writes storage, writes memory
|
||||
// foo: can loop, writes memory
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: invalidatesStorage
|
||||
// b: invalidatesStorage
|
||||
// c: invalidatesStorage, invalidatesMemory
|
||||
// d: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: can loop, writes storage
|
||||
// b: can loop, writes storage
|
||||
// c: can loop, writes storage, writes memory
|
||||
// d: movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
function h() { invalid() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// f: sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: can be removed, can be removed if no msize
|
||||
// f: can be removed, can be removed if no msize
|
||||
// g:
|
||||
// h:
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
function a() { a() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a:
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: movable apart from effects, can loop
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
function i() { let z := mload(0) }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// f: invalidatesMemory
|
||||
// g: invalidatesStorage
|
||||
// h: sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// i: sideEffectFreeIfNoMSize
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// f: writes memory
|
||||
// g: writes storage
|
||||
// h: can be removed, can be removed if no msize, reads memory
|
||||
// i: movable apart from effects, can be removed if no msize, reads memory
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
function g() { sstore(0, 1) }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: invalidatesStorage, invalidatesMemory
|
||||
// f: invalidatesStorage, invalidatesMemory
|
||||
// g: invalidatesStorage
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: writes other state, writes storage, writes memory
|
||||
// f: writes other state, writes storage, writes memory
|
||||
// g: writes storage
|
||||
|
||||
@@ -5,8 +5,8 @@
|
||||
function h() { pop(sload(0))}
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: invalidatesStorage
|
||||
// f: invalidatesStorage
|
||||
// g: invalidatesStorage, invalidatesMemory
|
||||
// h: sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// : movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// a: writes storage
|
||||
// f: writes storage
|
||||
// g: writes other state, writes storage, writes memory
|
||||
// h: movable apart from effects, can be removed, can be removed if no msize, reads storage
|
||||
|
||||
@@ -31,10 +31,10 @@
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// : invalidatesStorage, invalidatesMemory
|
||||
// f: sideEffectFreeIfNoMSize
|
||||
// g: invalidatesStorage, invalidatesMemory
|
||||
// h: invalidatesStorage, invalidatesMemory
|
||||
// i: invalidatesStorage
|
||||
// r: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// t: invalidatesMemory
|
||||
// : writes storage, writes memory
|
||||
// f: movable apart from effects, can be removed if no msize, reads memory
|
||||
// g: writes storage, writes memory
|
||||
// h: writes storage, writes memory
|
||||
// i: writes storage
|
||||
// r: movable, movable apart from effects, can be removed, can be removed if no msize
|
||||
// t: writes memory
|
||||
|
||||
@@ -4,6 +4,6 @@
|
||||
pop(f())
|
||||
}
|
||||
// ----
|
||||
// :
|
||||
// f:
|
||||
// g:
|
||||
// : movable apart from effects, can loop
|
||||
// f: movable apart from effects, can loop
|
||||
// g: movable apart from effects, can loop
|
||||
|
||||
Reference in New Issue
Block a user