release resolc v1.2.0 (#534)

Supported `polkadot-sdk` rev: `2603`

### Changed

- Updated `LLVM` from `21.1.8` to LLVM `22.1.4`

### Added

- Support for solc v0.8.35.

### Fixed

- A constant folding bug causing incorrect translation of a signed
remainder edge case. The affected pattern (Solidity % or Yul smod):
  - SREM over the two constant operands `type(int256).min` and `-1`.
- At least one of the two constants needs folding (i.e. not just
`type(int256).min % -1`),
and is written specifically such that solc doesn't fold but LLVM does,
resulting in UB (signed-overflow).
- Fix `mulmod` returning out-of-range result for large moduli.

---------

Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com>
This commit is contained in:
xermicus authored and GitHub committed 2026-05-28 23:20:11 +02:00
1 parent ae8033130b
commit b2c025faad
14 files changed
+35 -31

No files matched your search

+9 -9
View File
@@ -14,21 +14,21 @@ repository = "https://github.com/paritytech/revive"
rust-version = "1.85.0"
[workspace.dependencies]
lld-sys = { version = "1.1.0", path = "crates/lld-sys" }
resolc = { version = "1.1.0", path = "crates/resolc", default-features = false }
lld-sys = { version = "1.2.0", path = "crates/lld-sys" }
resolc = { version = "1.2.0", path = "crates/resolc", default-features = false }
revive-benchmarks = { version = "1.0.0", path = "crates/benchmarks" }
revive-build-utils = { version = "1.1.0", path = "crates/build-utils" }
revive-builtins = { version = "1.0.0", path = "crates/builtins" }
revive-build-utils = { version = "1.2.0", path = "crates/build-utils" }
revive-builtins = { version = "1.1.0", path = "crates/builtins" }
revive-common = { version = "1.0.0", path = "crates/common" }
revive-differential = { version = "1.0.0", path = "crates/differential" }
revive-integration = { version = "1.1.0", path = "crates/integration" }
revive-integration = { version = "1.2.0", path = "crates/integration" }
revive-linker = { version = "1.0.0", path = "crates/linker" }
revive-llvm-context = { version = "1.1.0", path = "crates/llvm-context" }
revive-llvm-context = { version = "1.2.0", path = "crates/llvm-context" }
revive-runner = { version = "1.1.0", path = "crates/runner" }
revive-runtime-api = { version = "1.1.0", path = "crates/runtime-api" }
revive-runtime-api = { version = "1.2.0", path = "crates/runtime-api" }
revive-solc-json-interface = { version = "1.0.0", path = "crates/solc-json-interface", default-features = false }
revive-stdlib = { version = "1.1.0", path = "crates/stdlib" }
revive-yul = { version = "1.1.0", path = "crates/yul" }
revive-stdlib = { version = "1.2.0", path = "crates/stdlib" }
revive-yul = { version = "1.2.0", path = "crates/yul" }
hex = "0.4.3"
cc = "1.2"