mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
159f50e189
These were marked IR-only, but they do pass on the old codegen too. Also add old codegen version of semantictests/revertStrings/function_entry_checks.
41 lines
758 B
Solidity
41 lines
758 B
Solidity
contract C {
|
|
function f() public returns (uint x) {
|
|
x = 1;
|
|
for (uint a = 0; a < 10; a = a + 1) {
|
|
x = x + x;
|
|
}
|
|
}
|
|
function g() public returns (uint x) {
|
|
x = 1;
|
|
uint a = 0;
|
|
while (a < 10) {
|
|
x = x + x;
|
|
a = a + 1;
|
|
}
|
|
}
|
|
function h() public returns (uint x) {
|
|
x = 1;
|
|
do {
|
|
x = x + 1;
|
|
} while (false);
|
|
}
|
|
function i() public returns (uint x) {
|
|
x = 1;
|
|
do {
|
|
x = x + 1;
|
|
} while (x < 3);
|
|
}
|
|
function j() public {
|
|
for (;;) {break;}
|
|
}
|
|
}
|
|
// ====
|
|
// compileViaYul: also
|
|
// compileToEwasm: also
|
|
// ----
|
|
// f() -> 1024
|
|
// g() -> 1024
|
|
// h() -> 2
|
|
// i() -> 3
|
|
// j() ->
|