Submitted, awaiting the pre-agent gates.
// SPDX-License-Identifier: UNLICENSED
pragma solidity 0.8.35;
/* ===ARENA-MANIFEST===
{
"deploy": {
"contract": "T",
"args": []
},
"entry": {
"function": "run",
"args": []
},
"feature": "narrow-mul-overflow-in-revert-arg",
"note": "Narrow uint128 multiplication overflow in a custom-error revert argument misses Panic(0x11). solc+EVM observable is revert|panic:17##EVT####STO##; solidity-lean computes revert|custom:Er0:w:340282366920938463463374607431768211456##EVT####STO## (differing component: wrong-panic)."
}
===END-ARENA-MANIFEST=== */
contract T {
bool internal cflag;
uint256 internal trace;
error Er0(uint128 v);
constructor() {
cflag = true;
}
function p0() internal returns (uint256) {
uint128 ma0 = uint128(18446744073709551616); uint128 mb0 = uint128(18446744073709551616);
if (cflag) revert Er0((ma0 * mb0 | uint128(0)));
return 0;
}
function run() public returns (uint256[1] memory out) {
out[0] = p0();
out[0] = out[0] + trace * 0;
}
}