solidity/test/libsolidity/semanticTests/inlineAssembly/inline_assembly_embedded_function_call.sol

29 lines
615 B
Solidity

contract C {
function f() public {
assembly {
let d:= 0x10
function asmfun(a, b, c) -> x, y, z {
x := g(a)
function g(r) -> s {
s := mul(r, r)
}
y := g(b)
z := 7
}
let a1, b1, c1 := asmfun(1, 2, 3)
mstore(0x00, a1)
mstore(0x20, b1)
mstore(0x40, c1)
mstore(0x60, d)
return (0, 0x80)
}
}
}
// ====
// compileViaYul: also
// compileToEwasm: also
// ----
// f() -> 0x1, 0x4, 0x7, 0x10