Kamil Śliwak
Kamil Śliwak
> Btw are you really sure you need -03? Not really. I would not be surprised if we do not. These settings go all the way back to the initial...
BTW, since the warning wasn't really spurious, I wonder why it did not appear with `-O2`. It's odd for optimization to affect analysis, but if anything, I'd expect the more...
@clonker Did you post the right results for the numerical ID branch? They are via IR but seem more in line with legacy timing.
One more thing, that I already mentioned on the call - we're missing docs for the `transient` modifier.
Also, I noticed that `TSTORE` and `TLOAD` are missing from `GasMeter::estimateMax()`, which means that functions accessing transient storage will get infinite estimate and e.g. won't be inlined. Which is out...
Slightly simplified repro: ```solidity contract C { uint128 u128; int8 a; int8 b; int8 c; bool x = (b = b >> 0) == int8(x ? 0 : 0); int8...
This seems no longer reproducible on 0.8.22+. It may have been fixed but not sure if it's just this case or the underlying issue - perhaps still worth investigating.
Simplified repro: ```solidity contract A { uint constant A = AB; uint constant BA = BB; uint constant CA = CB; uint constant DA = DB; uint constant EA =...
Smaller repro: ```solidity contract C { function f() public { string.concat({x: "abc"}); } } ``` Same effect with `bytes.concat()`. I checked a few other builtins, but they all seem to...
Array of `super` is still accepted as a type in some contexts and triggers and ICE in `abi.decode()`
Simplified repro: ```solidity contract C { function f() external { abi.decode("", (super[0])); } } ``` A related bug is that arrays of `super` seem to be recognized as a valid...