Skip to content

Make Cancun the default EVM version #14907

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Mar 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1469,6 +1469,9 @@ jobs:

# NOTE: This is expected to work without running `pnpm build` first.
cd hardhat/packages/hardhat-core
# TODO: temporarily set hardhat stack traces tests to use cancun hardfork
# Remove this when hardhat switch to cancun by default: https://github.com/NomicFoundation/hardhat/issues/4851
sed -i 's/hardfork: "shanghai",/hardfork: "cancun",/' test/internal/hardhat-network/stack-traces/execution.ts
pnpm test
- matrix_notify_failure_unless_pr

Expand Down
2 changes: 1 addition & 1 deletion .circleci/soltest_all.sh
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ DEFAULT_EVM_VALUES=(constantinople petersburg istanbul berlin london paris shang
# set EVM_VALUES to the default values.
IFS=" " read -ra EVM_VALUES <<< "${1:-${DEFAULT_EVM_VALUES[@]}}"

DEFAULT_EVM=shanghai
DEFAULT_EVM=cancun
OPTIMIZE_VALUES=(0 1)

# Run for ABI encoder v1, without SMTChecker tests.
Expand Down
1 change: 1 addition & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Language Features:
Compiler Features:
* Code Generator: Use ``MCOPY`` instead of ``MLOAD``/``MSTORE`` loop when copying byte arrays.
* Yul Analyzer: Emit transient storage warning only for the first occurrence of ``tstore``.
* EVM: Set default EVM version to ``cancun``.


Bugfixes:
Expand Down
8 changes: 4 additions & 4 deletions docs/using-the-compiler.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,9 +174,9 @@ at each version. Backward compatibility is not guaranteed between each version.
- The block's base fee (`EIP-3198 <https://eips.ethereum.org/EIPS/eip-3198>`_ and `EIP-1559 <https://eips.ethereum.org/EIPS/eip-1559>`_) can be accessed via the global ``block.basefee`` or ``basefee()`` in inline assembly.
- ``paris``
- Introduces ``prevrandao()`` and ``block.prevrandao``, and changes the semantics of the now deprecated ``block.difficulty``, disallowing ``difficulty()`` in inline assembly (see `EIP-4399 <https://eips.ethereum.org/EIPS/eip-4399>`_).
- ``shanghai`` (**default**)
- ``shanghai``
- Smaller code size and gas savings due to the introduction of ``push0`` (see `EIP-3855 <https://eips.ethereum.org/EIPS/eip-3855>`_).
- ``cancun``
- ``cancun`` (**default**)
- The block's blob base fee (`EIP-7516 <https://eips.ethereum.org/EIPS/eip-7516>`_ and `EIP-4844 <https://eips.ethereum.org/EIPS/eip-4844>`_) can be accessed via the global ``block.blobbasefee`` or ``blobbasefee()`` in inline assembly.
- Introduces ``blobhash()`` in inline assembly and a corresponding global function to retrieve versioned hashes of blobs associated with the transaction (see `EIP-4844 <https://eips.ethereum.org/EIPS/eip-4844>`_).
- Opcode ``mcopy`` is available in assembly (see `EIP-5656 <https://eips.ethereum.org/EIPS/eip-5656>`_).
Expand Down Expand Up @@ -344,8 +344,8 @@ Input Description
// Version of the EVM to compile for.
// Affects type checking and code generation. Can be homestead,
// tangerineWhistle, spuriousDragon, byzantium, constantinople,
// petersburg, istanbul, berlin, london, paris or shanghai (default)
"evmVersion": "shanghai",
// petersburg, istanbul, berlin, london, paris, shanghai or cancun (default)
"evmVersion": "cancun",
// Optional: Change compilation pipeline to go through the Yul intermediate representation.
// This is false by default.
"viaIR": true,
Expand Down
2 changes: 1 addition & 1 deletion liblangutil/EVMVersion.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ class EVMVersion:

EVMVersion(Version _version): m_version(_version) {}

Version m_version = Version::Shanghai;
Version m_version = Version::Cancun;
};

}
9 changes: 3 additions & 6 deletions libyul/AsmAnalysis.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -752,14 +752,11 @@ bool AsmAnalyzer::validateInstructions(evmasm::Instruction _instr, SourceLocatio
else if (_instr == evmasm::Instruction::BLOBBASEFEE && !m_evmVersion.hasBlobBaseFee())
errorForVM(6679_error, "only available for Cancun-compatible");
else if (_instr == evmasm::Instruction::BLOBHASH && !m_evmVersion.hasBlobHash())
// TODO: Change this assertion to an error, similar to the ones above, when Cancun becomes the default EVM version.
yulAssert(false);
errorForVM(8314_error, "only available for Cancun-compatible");
else if (_instr == evmasm::Instruction::MCOPY && !m_evmVersion.hasMcopy())
// TODO: Change this assertion to an error, similar to the ones above, when Cancun becomes the default EVM version.
yulAssert(false);
errorForVM(7755_error, "only available for Cancun-compatible");
else if ((_instr == evmasm::Instruction::TSTORE || _instr == evmasm::Instruction::TLOAD) && !m_evmVersion.supportsTransientStorage())
// TODO: Change this assertion to an error, similar to the ones above, when Cancun becomes the default EVM version.
yulAssert(false);
errorForVM(6243_error, "only available for Cancun-compatible");
else if (_instr == evmasm::Instruction::PC)
m_errorReporter.error(
2450_error,
Expand Down
1 change: 0 additions & 1 deletion scripts/error_codes.py
Original file line number Diff line number Diff line change
Expand Up @@ -202,7 +202,6 @@ def examine_id_coverage(top_dir, source_id_to_file_names, new_ids_only=False):
"4591", # "There are more than 256 warnings. Ignoring the rest."
# Due to 3805, the warning lists look different for different compiler builds.
"1834", # Unimplemented feature error, as we do not test it anymore via cmdLineTests
"6679", # blobbasefee being used in inline assembly for EVMVersion < cancun
"1180", # SMTChecker, covered by CL tests
"2339", # SMTChecker, covered by CL tests
"2961", # SMTChecker, covered by CL tests
Expand Down
2 changes: 1 addition & 1 deletion scripts/externalTests/common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ set -e

# Requires $REPO_ROOT to be defined and "${REPO_ROOT}/scripts/common.sh" to be included before.

CURRENT_EVM_VERSION=shanghai
CURRENT_EVM_VERSION=cancun

AVAILABLE_PRESETS=(
legacy-no-optimize
Expand Down
2 changes: 1 addition & 1 deletion scripts/externalTests/runners/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@
from test_helpers import settings_from_preset
from test_helpers import SettingsPreset

CURRENT_EVM_VERSION: str = "shanghai"
CURRENT_EVM_VERSION: str = "cancun"

@dataclass
class TestConfig:
Expand Down
2 changes: 1 addition & 1 deletion scripts/tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ do
for vm in $EVM_VERSIONS
do
FORCE_ABIV1_RUNS="no"
if [[ "$vm" == "shanghai" ]]
if [[ "$vm" == "cancun" ]]
then
FORCE_ABIV1_RUNS="no yes" # run both in paris
fi
Expand Down
22 changes: 7 additions & 15 deletions test/cmdlineTests/debug_info_in_yul_snippet_escaping/output
Original file line number Diff line number Diff line change
Expand Up @@ -181,11 +181,7 @@ object "D_27" {

function copy_memory_to_memory_with_cleanup(src, dst, length) {

let i := 0
for { } lt(i, length) { i := add(i, 32) }
{
mstore(add(dst, i), mload(add(src, i)))
}
mcopy(dst, src, length)
mstore(add(dst, length), 0)

}
Expand Down Expand Up @@ -470,8 +466,7 @@ object "D_27" {
}
mstore(_2, newFreePtr)
mstore(memPtr, 2)
let _6 := 32
mstore(add(memPtr, _6), "/*")
mstore(add(memPtr, 32), "/*")
let memPtr_1 := mload(_2)
let newFreePtr_1 := add(memPtr_1, 96)
if or(gt(newFreePtr_1, /** @src 0:446:491 "new /// @src 0:149:156 \"new C()\"..." */ _5), /** @src 0:279:599 "contract D /** @src 0:96:165 \"contract D {...\" *\/ {..." */ lt(newFreePtr_1, memPtr_1))
Expand All @@ -482,17 +477,14 @@ object "D_27" {
}
mstore(_2, newFreePtr_1)
mstore(memPtr_1, 39)
mstore(add(memPtr_1, _6), 0x2f2a2a204073726320303a39363a313635202022636f6e74726163742044207b)
let _6 := add(memPtr_1, 32)
mstore(_6, 0x2f2a2a204073726320303a39363a313635202022636f6e74726163742044207b)
mstore(add(memPtr_1, _2), shl(200, 0x2e2e2e22202a2f))
let memPos := mload(_2)
mstore(memPos, _6)
mstore(memPos, 32)
let length := mload(memPtr_1)
mstore(add(memPos, _6), length)
let i := 0
for { } lt(i, length) { i := add(i, _6) }
{
mstore(add(add(memPos, i), _2), mload(add(add(memPtr_1, i), _6)))
}
mstore(add(memPos, 32), length)
mcopy(add(memPos, _2), _6, length)
mstore(add(add(memPos, length), _2), 0)
return(memPos, add(sub(add(memPos, and(add(length, 31), not(31))), memPos), _2))
}
Expand Down
2 changes: 1 addition & 1 deletion test/cmdlineTests/metadata/output
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

======= metadata/input.sol:C =======
Metadata:
{"compiler":{"version": "<VERSION REMOVED>"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"metadata/input.sol":"C"},"evmVersion":"shanghai","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"metadata/input.sol":{"keccak256":"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0","license":"GPL-3.0","urls":["bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2","dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS"]}},"version":1}
{"compiler":{"version": "<VERSION REMOVED>"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"metadata/input.sol":"C"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":false,"runs":200},"remappings":[]},"sources":{"metadata/input.sol":{"keccak256":"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0","license":"GPL-3.0","urls":["bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2","dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS"]}},"version":1}
10 changes: 3 additions & 7 deletions test/cmdlineTests/name_simplifier/output
Original file line number Diff line number Diff line change
Expand Up @@ -98,21 +98,17 @@ object "C_59" {
}
mstore(_9, newFreePtr_2)
mstore(memPtr_1, 100)
mstore(add(memPtr_1, _3), "longstringlongstringlongstringlo")
let _11 := add(memPtr_1, _3)
mstore(_11, "longstringlongstringlongstringlo")
mstore(add(memPtr_1, _9), "ngstringlongstringlongstringlong")
let _11 := 96
mstore(add(memPtr_1, 96), "stringlongstringlongstringlongst")
mstore(add(memPtr_1, 128), "ring")
let memPos := mload(_9)
mstore(memPos, _10)
mstore(add(memPos, _3), _9)
let length := mload(memPtr_1)
mstore(add(memPos, _9), length)
let i := 0
for { } lt(i, length) { i := add(i, _3) }
{
mstore(add(add(memPos, i), _11), mload(add(add(memPtr_1, i), _3)))
}
mcopy(add(memPos, 96), _11, length)
mstore(add(add(memPos, length), 96), 0)
return(memPos, add(sub(add(memPos, and(add(length, 31), _8)), memPos), 96))
}
Expand Down
2 changes: 1 addition & 1 deletion test/cmdlineTests/standard_metadata/output.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
{
"C":
{
"metadata": "{\"compiler\":{\"version\":\"<VERSION REMOVED>\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"C\":\"C\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"C\":{\"keccak256\":\"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2\",\"dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS\"]}},\"version\":1}"
"metadata": "{\"compiler\":{\"version\":\"<VERSION REMOVED>\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"C\":\"C\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"C\":{\"keccak256\":\"0x5cf617b1707a484e3c4bd59643013dec76ab7d75900b46855214729ae3e0ceb0\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://ac418a02dfadf87234150d3568f33269e3f49460345cb39300e017a6d755eff2\",\"dweb:/ipfs/QmQq3owBu25x2WV46HB1WyKzJpxiAPecU7eMKqtXCF7eeS\"]}},\"version\":1}"
}
}
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"x()": "0c55699c"
}
},
"metadata": "{\"compiler\":{\"version\":\"<VERSION REMOVED>\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"C\":\"C\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"C\":{\"keccak256\":\"0x67a13ebd685e4c6f792e71eb747dac57edb99e94d04d841ee6c979ae517934ce\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://665b000da768823654f680d02686c1e59d682a0b3882e43a77fed9f80ce64ae8\",\"dweb:/ipfs/QmVnKvuidH6KiCdNQpoAQUtDbB8hXkafVLXWMNitUcxnqC\"]}},\"version\":1}",
"metadata": "{\"compiler\":{\"version\":\"<VERSION REMOVED>\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"x\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"C\":\"C\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"C\":{\"keccak256\":\"0x67a13ebd685e4c6f792e71eb747dac57edb99e94d04d841ee6c979ae517934ce\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://665b000da768823654f680d02686c1e59d682a0b3882e43a77fed9f80ce64ae8\",\"dweb:/ipfs/QmVnKvuidH6KiCdNQpoAQUtDbB8hXkafVLXWMNitUcxnqC\"]}},\"version\":1}",
"storageLayout":
{
"storage": [],
Expand Down
82 changes: 28 additions & 54 deletions test/cmdlineTests/viair_subobject_optimization/output
Original file line number Diff line number Diff line change
Expand Up @@ -117,77 +117,70 @@ sub_0: assembly {
tag_3:
jumpi(tag_7, callvalue)
jumpi(tag_7, slt(add(not(0x03), calldatasize), 0x00))
not(0x1f)
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dataSize(sub_0)
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
0x3f
swap1
not(0x1f)
swap1
dup2
0x3f
dup5
add
dup3
and
dup4
dup2
add
swap1
swap2
dup2
dup4
dup3
lt
0xffffffffffffffff
dup4
dup5
gt
or
tag_9
jumpi
swap3
swap1
0x40
swap1
0x40
swap3
dup4
mstore
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
dup4
dup3
mstore
0x20
dup3
add
swap4
dataOffset(sub_0)
0x20
dup5
add
dup6
codecopy
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
mload(0x40)
0x1f
dup4
mload
swap5
dup6
swap4
dup5
swap3
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
0x20
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
dup5
dup6
mstore
dup1
mload
swap3
dup4
dup1
swap2
dup2
/* "viair_subobject_optimization/input.sol":745:765 type(C).creationCode */
0x20
/* "viair_subobject_optimization/input.sol":669:772 contract D {... */
dup7
dup8
add
mstore
0x00
tag_11:
dup5
dup2
lt
tag_12
jumpi
dup6
0x40
dup2
dup10
0x1f
dup10
dup7
dup7
add
mcopy
0x00
dup6
dup3
Expand All @@ -203,25 +196,6 @@ sub_0: assembly {
add
swap1
return
tag_12:
dup3
dup2
add
dup5
add
mload
dup9
dup3
add
dup4
add
mstore
dup8
swap6
pop
dup4
add
jump(tag_11)
tag_9:
mstore(0x00, shl(0xe0, 0x4e487b71))
mstore(0x04, 0x41)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,4 @@ object "C_28" {
}

Metadata:
{"compiler":{"version": "<VERSION REMOVED>"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"foo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"yul_optimizer_steps_without_optimize_empty_sequence/input.sol":"C"},"evmVersion":"shanghai","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"details":{"constantOptimizer":false,"cse":false,"deduplicate":false,"inliner":false,"jumpdestRemover":true,"orderLiterals":false,"peephole":true,"simpleCounterForLoopUncheckedIncrement":true,"yul":false,"yulDetails":{"optimizerSteps":":"}},"runs":200},"remappings":[]},"sources":{"yul_optimizer_steps_without_optimize_empty_sequence/input.sol":{"keccak256":"0x3fc910e345ce1ee62bfa6b0f66931ee632c08265b25b6139cfbbfe4d2f8d5dd8","license":"GPL-3.0","urls":["bzz-raw://e557e9ad2c2e420a669c06ae456b0b790d77d2d6d492cd8540e6b244388a5140","dweb:/ipfs/QmaNiZmC2Mo3YxGiehs1n3dVTjZwD7FguX7EUtpeshMVuR"]}},"version":1}
{"compiler":{"version": "<VERSION REMOVED>"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"foo","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"compilationTarget":{"yul_optimizer_steps_without_optimize_empty_sequence/input.sol":"C"},"evmVersion":"cancun","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"details":{"constantOptimizer":false,"cse":false,"deduplicate":false,"inliner":false,"jumpdestRemover":true,"orderLiterals":false,"peephole":true,"simpleCounterForLoopUncheckedIncrement":true,"yul":false,"yulDetails":{"optimizerSteps":":"}},"runs":200},"remappings":[]},"sources":{"yul_optimizer_steps_without_optimize_empty_sequence/input.sol":{"keccak256":"0x3fc910e345ce1ee62bfa6b0f66931ee632c08265b25b6139cfbbfe4d2f8d5dd8","license":"GPL-3.0","urls":["bzz-raw://e557e9ad2c2e420a669c06ae456b0b790d77d2d6d492cd8540e6b244388a5140","dweb:/ipfs/QmaNiZmC2Mo3YxGiehs1n3dVTjZwD7FguX7EUtpeshMVuR"]}},"version":1}
6 changes: 1 addition & 5 deletions test/cmdlineTests/yul_string_format_ascii/output.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,7 @@ object \"C_11\" {

function copy_memory_to_memory_with_cleanup(src, dst, length) {

let i := 0
for { } lt(i, length) { i := add(i, 32) }
{
mstore(add(dst, i), mload(add(src, i)))
}
mcopy(dst, src, length)
mstore(add(dst, length), 0)

}
Expand Down
Loading