solidity/test/libsolidity/semanticTests/viaYul/comparison_functions.sol
Alex Beregszaszi 159f50e189 Turn on semantic tests for the old codegen where possible
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.
2020-11-25 14:33:39 +00:00

33 lines
905 B
Solidity

contract C {
// If these two functions are identical, the optimiser
// on the old codegen path can deduplicate them, and breaking the test.
function internal1() internal pure returns (bool) {
return true;
}
function internal2() internal pure returns (bool) {
return false;
}
function equal() public pure returns (bool same, bool diff, bool inv) {
function() internal pure returns (bool) invalid;
delete invalid;
same = internal1 == internal1;
diff = internal1 == internal2;
inv = internal1 == invalid;
}
function unequal() public pure returns (bool same, bool diff, bool inv) {
function() internal pure returns (bool) invalid;
delete invalid;
same = internal1 != internal1;
diff = internal1 != internal2;
inv = internal1 != invalid;
}
}
// ====
// compileViaYul: also
// compileToEwasm: also
// ----
// equal() -> true, false, false
// unequal() -> false, true, true