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

+4
View File
@@ -4,6 +4,10 @@
- Supported `polkadot-sdk` rev: `2603` - Supported `polkadot-sdk` rev: `2603`
## v1.2.0
- Supported `polkadot-sdk` rev: `2603`
### Changed ### Changed
- Updated `LLVM` from `21.1.8` to LLVM `22.1.4` - Updated `LLVM` from `21.1.8` to LLVM `22.1.4`
Generated
+11 -11
View File
@@ -5091,7 +5091,7 @@ checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0"
[[package]] [[package]]
name = "lld-sys" name = "lld-sys"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"cc", "cc",
"libc", "libc",
@@ -9347,7 +9347,7 @@ dependencies = [
[[package]] [[package]]
name = "resolc" name = "resolc"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
@@ -9389,11 +9389,11 @@ dependencies = [
[[package]] [[package]]
name = "revive-build-utils" name = "revive-build-utils"
version = "1.1.0" version = "1.2.0"
[[package]] [[package]]
name = "revive-builtins" name = "revive-builtins"
version = "1.0.0" version = "1.1.0"
dependencies = [ dependencies = [
"revive-build-utils", "revive-build-utils",
] ]
@@ -9425,7 +9425,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-integration" name = "revive-integration"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"alloy-primitives", "alloy-primitives",
"alloy-sol-types", "alloy-sol-types",
@@ -9453,7 +9453,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-llvm-builder" name = "revive-llvm-builder"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"assert_cmd", "assert_cmd",
@@ -9473,7 +9473,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-llvm-context" name = "revive-llvm-context"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"hex", "hex",
@@ -9494,7 +9494,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-runner" name = "revive-runner"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"alloy-primitives", "alloy-primitives",
"anyhow", "anyhow",
@@ -9514,7 +9514,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-runtime-api" name = "revive-runtime-api"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"inkwell", "inkwell",
@@ -9537,7 +9537,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-stdlib" name = "revive-stdlib"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"inkwell", "inkwell",
"revive-build-utils", "revive-build-utils",
@@ -9545,7 +9545,7 @@ dependencies = [
[[package]] [[package]]
name = "revive-yul" name = "revive-yul"
version = "1.1.0" version = "1.2.0"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"inkwell", "inkwell",
+9 -9
View File
@@ -14,21 +14,21 @@ repository = "https://github.com/paritytech/revive"
rust-version = "1.85.0" rust-version = "1.85.0"
[workspace.dependencies] [workspace.dependencies]
lld-sys = { version = "1.1.0", path = "crates/lld-sys" } lld-sys = { version = "1.2.0", path = "crates/lld-sys" }
resolc = { version = "1.1.0", path = "crates/resolc", default-features = false } resolc = { version = "1.2.0", path = "crates/resolc", default-features = false }
revive-benchmarks = { version = "1.0.0", path = "crates/benchmarks" } revive-benchmarks = { version = "1.0.0", path = "crates/benchmarks" }
revive-build-utils = { version = "1.1.0", path = "crates/build-utils" } revive-build-utils = { version = "1.2.0", path = "crates/build-utils" }
revive-builtins = { version = "1.0.0", path = "crates/builtins" } revive-builtins = { version = "1.1.0", path = "crates/builtins" }
revive-common = { version = "1.0.0", path = "crates/common" } revive-common = { version = "1.0.0", path = "crates/common" }
revive-differential = { version = "1.0.0", path = "crates/differential" } 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-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-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-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-stdlib = { version = "1.2.0", path = "crates/stdlib" }
revive-yul = { version = "1.1.0", path = "crates/yul" } revive-yul = { version = "1.2.0", path = "crates/yul" }
hex = "0.4.3" hex = "0.4.3"
cc = "1.2" cc = "1.2"
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-build-utils" name = "revive-build-utils"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-builtins" name = "revive-builtins"
version.workspace = true version = "1.1.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-integration" name = "revive-integration"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "lld-sys" name = "lld-sys"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -6,7 +6,7 @@ authors = [
"Anton Baliasnikov <aba@matterlabs.dev>", "Anton Baliasnikov <aba@matterlabs.dev>",
"Cyrill Leutwiler <cyrill@parity.io>", "Cyrill Leutwiler <cyrill@parity.io>",
] ]
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-llvm-context" name = "revive-llvm-context"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "resolc" name = "resolc"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-runner" name = "revive-runner"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-runtime-api" name = "revive-runtime-api"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,6 +1,6 @@
[package] [package]
name = "revive-stdlib" name = "revive-stdlib"
version = "1.1.0" version = "1.2.0"
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true
repository.workspace = true repository.workspace = true
+1 -1
View File
@@ -1,7 +1,7 @@
[package] [package]
name = "revive-yul" name = "revive-yul"
description = "The revive YUL parser library." description = "The revive YUL parser library."
version = "1.1.0" version = "1.2.0"
authors.workspace = true authors.workspace = true
license.workspace = true license.workspace = true
edition.workspace = true edition.workspace = true