mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Tests
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
{
|
||||
function a() { b() }
|
||||
function b() { c() }
|
||||
function c() { b() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// b: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// c: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
@@ -0,0 +1,8 @@
|
||||
{
|
||||
function a() { b() }
|
||||
function b() { a() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// b: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
@@ -0,0 +1,4 @@
|
||||
{
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
sstore(0, 1)
|
||||
}
|
||||
// ----
|
||||
// : invalidatesStorage
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
function a() {
|
||||
b()
|
||||
}
|
||||
function b() {
|
||||
sstore(0, 1)
|
||||
b()
|
||||
}
|
||||
function c() {
|
||||
mstore(0, 1)
|
||||
a()
|
||||
d()
|
||||
}
|
||||
function d() {
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: invalidatesStorage
|
||||
// b: invalidatesStorage
|
||||
// c: invalidatesStorage, invalidatesMemory
|
||||
// d: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
@@ -0,0 +1,6 @@
|
||||
{
|
||||
function a() { a() }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
function a() {}
|
||||
function f() { mstore(0, 1) }
|
||||
function g() { sstore(0, 1) }
|
||||
function h() { let x := msize() }
|
||||
function i() { let z := mload(0) }
|
||||
}
|
||||
// ----
|
||||
// : movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// a: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// f: invalidatesMemory
|
||||
// g: invalidatesStorage
|
||||
// h: sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// i: sideEffectFreeIfNoMSize
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
if calldataload(0)
|
||||
{
|
||||
f()
|
||||
}
|
||||
g()
|
||||
|
||||
function f() {
|
||||
pop(mload(0))
|
||||
}
|
||||
function g() {
|
||||
if sload(0)
|
||||
{
|
||||
h()
|
||||
}
|
||||
}
|
||||
function h() {
|
||||
switch t()
|
||||
case 1 {
|
||||
i()
|
||||
}
|
||||
}
|
||||
function t() -> x {
|
||||
mstore(0, 1)
|
||||
}
|
||||
function i() {
|
||||
sstore(0, 1)
|
||||
}
|
||||
function r(a) -> b {
|
||||
b := mul(a, 2)
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// : invalidatesStorage, invalidatesMemory
|
||||
// f: sideEffectFreeIfNoMSize
|
||||
// g: invalidatesStorage, invalidatesMemory
|
||||
// h: invalidatesStorage, invalidatesMemory
|
||||
// i: invalidatesStorage
|
||||
// r: movable, sideEffectFree, sideEffectFreeIfNoMSize
|
||||
// t: invalidatesMemory
|
||||
Reference in New Issue
Block a user