Looks good to me, thank you Marc! Ok for master! Arthur
On 11/4/26 12:09 PM, Marc Poulhiès wrote:
From: Marc Poulhiès <[email protected]> Hello, This series contains the changes from Oct 29th to Nov 3rd: - More intrinsics support - Bug fixes Tested on x86_64-linux, bootstrapped on recent and old gcc 5. OK for master? Marc Arthur Cohen (2): gccrs: intrinsics: Fix typecheck info for prefered_align_of<T> gccrs: intrinsics: Add no-ops for prefetch_{read, write}_instruction Owen Avery (1): gccrs: Fix fnv128 calculation Pierre-Emmanuel Patry (7): gccrs: Emit extern prelude core path within builtin macros gccrs: Fix forever stack path string representation gccrs: Add opening_scope_resolution flag to most resolution functions gccrs: Replace additional segment vectors with UtilPath gccrs: Fix test canonical path gccrs: Throw an error when a global path starts with crate gccrs: Move UtilPath to Rust namespace Sriram Raghunathan (1): gccrs: Remove the function_defer_statement helper. Utkarsh Bahuguna (3): gccrs: Fix ICE with deep recursion in const fn gccrs: Fix ICE in path pattern refutability gccrs: Fix ICE on enum struct-variant patterns Wesley Lewis (1): gccrs: error when parsing only $ Yap Zhi Heng (6): gccrs: Implement rust-intrinsics atomic binary operators gccrs: Implement rust-intrinsics atomic compare-exchange built-ins gccrs: Implement rust-intrinsics atomic min/max builtins gccrs: Implement rust-intrinsics atomic_fence builtins gccrs: Intrinsically compile slice index referencing gccrs: GitHub issues clean-up gcc/rust/ast/rust-ast-builder.cc | 7 +- gcc/rust/ast/rust-ast-builder.h | 15 +- gcc/rust/ast/rust-ast.h | 7 + gcc/rust/ast/rust-path.h | 12 + gcc/rust/backend/rust-compile-expr.cc | 57 +- gcc/rust/backend/rust-compile-intrinsic.cc | 141 ++++- gcc/rust/backend/rust-constexpr.cc | 8 +- gcc/rust/backend/rust-intrinsic-handlers.cc | 492 +++++++++++++----- gcc/rust/backend/rust-intrinsic-handlers.h | 41 +- gcc/rust/expand/rust-derive-clone.cc | 1 + gcc/rust/expand/rust-derive-debug.cc | 10 +- gcc/rust/expand/rust-derive-default.cc | 4 +- gcc/rust/expand/rust-derive-eq.cc | 3 +- gcc/rust/expand/rust-derive-hash.cc | 7 +- gcc/rust/expand/rust-derive-ord.cc | 26 +- gcc/rust/expand/rust-expand-format-args.cc | 21 +- .../hir/tree/rust-hir-pattern-abstract.cc | 59 ++- gcc/rust/parse/rust-parse-impl-macro.hxx | 6 +- .../resolve/rust-early-name-resolver-2.0.cc | 9 +- .../resolve/rust-early-name-resolver-2.0.h | 11 +- gcc/rust/resolve/rust-forever-stack.h | 29 +- gcc/rust/resolve/rust-forever-stack.hxx | 10 +- .../resolve/rust-late-name-resolver-2.0.cc | 5 +- .../resolve/rust-name-resolution-context.h | 66 ++- .../resolve/rust-name-resolution-context.hxx | 10 +- gcc/rust/rust-backend.h | 7 - gcc/rust/rust-gcc.cc | 35 -- .../typecheck/rust-hir-type-check-expr.cc | 26 +- .../rust-hir-type-check-intrinsic.cc | 195 ++++++- gcc/rust/util/fnv-hash.h | 18 +- gcc/rust/util/rust-intrinsic-values.h | 92 ++++ gcc/rust/util/rust-util-path.h | 45 ++ gcc/testsuite/rust/compile/atomic_minmax.rs | 78 +++ .../compile/extern_prelude_crate_keyword.rs | 7 + .../irrefutable-path-single-variant.rs | 16 + .../compile/irrefutable-struct-variant.rs | 16 + .../compile/issues/{issue-1178.rs => 1178.rs} | 0 .../compile/issues/{issue-2757.rs => 2757.rs} | 0 gcc/testsuite/rust/compile/issues/2846.rs | 10 + gcc/testsuite/rust/compile/issues/3540.rs | 8 + gcc/testsuite/rust/compile/issues/3584.rs | 11 + gcc/testsuite/rust/compile/issues/3608.rs | 8 + gcc/testsuite/rust/compile/issues/3629.rs | 11 + gcc/testsuite/rust/compile/issues/3641.rs | 8 + gcc/testsuite/rust/compile/issues/3644.rs | 9 + gcc/testsuite/rust/compile/issues/3666.rs | 14 + gcc/testsuite/rust/compile/issues/3689.rs | 10 + .../compile/issues/{issue-3868.rs => 3868.rs} | 0 .../compile/issues/{issue-4152.rs => 4152.rs} | 0 .../compile/issues/{issue-4153.rs => 4153.rs} | 0 .../compile/issues/{issue-4668.rs => 4668.rs} | 0 .../compile/issues/{issue-4675.rs => 4675.rs} | 0 .../compile/issues/{issue-4709.rs => 4709.rs} | 0 .../compile/issues/{issue-4883.rs => 4883.rs} | 0 .../compile/issues/{issue-4885.rs => 4885.rs} | 0 .../compile/issues/{issue-4971.rs => 4971.rs} | 0 .../compile/issues/{issue-4973.rs => 4973.rs} | 0 .../rust/compile/issues/issue-3949.rs | 14 + .../rust/compile/issues/issue_4402_foo.rs | 2 +- gcc/testsuite/rust/compile/just_dollar.rs | 1 + gcc/testsuite/rust/compile/pref_align_of.rs | 2 +- gcc/testsuite/rust/compile/prefetch_all.rs | 25 + gcc/testsuite/rust/compile/refutable-path.rs | 25 +- .../rust/compile/refutable-struct.rs | 5 + .../rust/execute/torture/atomic_and.rs | 105 ++++ .../torture/atomic_compare_exchange.rs | 241 +++++++++ .../rust/execute/torture/atomic_load.rs | 3 + .../rust/execute/torture/atomic_minmax.rs | 226 ++++++++ .../rust/execute/torture/atomic_nand.rs | 105 ++++ .../rust/execute/torture/atomic_or.rs | 105 ++++ .../rust/execute/torture/atomic_store.rs | 3 + .../rust/execute/torture/atomic_xadd.rs | 95 ++++ .../rust/execute/torture/atomic_xor.rs | 105 ++++ .../rust/execute/torture/atomic_xsub.rs | 95 ++++ .../execute/torture/const-fn-recursion.rs | 24 + .../rust/execute/torture/issue-1133.rs | 5 +- .../rust/execute/torture/issue-1232.rs | 3 +- .../rust/execute/torture/partial-ord-5.rs | 2 +- 78 files changed, 2547 insertions(+), 325 deletions(-) create mode 100644 gcc/rust/util/rust-util-path.h create mode 100644 gcc/testsuite/rust/compile/atomic_minmax.rs create mode 100644 gcc/testsuite/rust/compile/extern_prelude_crate_keyword.rs create mode 100644 gcc/testsuite/rust/compile/irrefutable-path-single-variant.rs create mode 100644 gcc/testsuite/rust/compile/irrefutable-struct-variant.rs rename gcc/testsuite/rust/compile/issues/{issue-1178.rs => 1178.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-2757.rs => 2757.rs} (100%) create mode 100644 gcc/testsuite/rust/compile/issues/2846.rs create mode 100644 gcc/testsuite/rust/compile/issues/3540.rs create mode 100644 gcc/testsuite/rust/compile/issues/3584.rs create mode 100644 gcc/testsuite/rust/compile/issues/3608.rs create mode 100644 gcc/testsuite/rust/compile/issues/3629.rs create mode 100644 gcc/testsuite/rust/compile/issues/3641.rs create mode 100644 gcc/testsuite/rust/compile/issues/3644.rs create mode 100644 gcc/testsuite/rust/compile/issues/3666.rs create mode 100644 gcc/testsuite/rust/compile/issues/3689.rs rename gcc/testsuite/rust/compile/issues/{issue-3868.rs => 3868.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4152.rs => 4152.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4153.rs => 4153.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4668.rs => 4668.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4675.rs => 4675.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4709.rs => 4709.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4883.rs => 4883.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4885.rs => 4885.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4971.rs => 4971.rs} (100%) rename gcc/testsuite/rust/compile/issues/{issue-4973.rs => 4973.rs} (100%) create mode 100644 gcc/testsuite/rust/compile/issues/issue-3949.rs create mode 100644 gcc/testsuite/rust/compile/just_dollar.rs create mode 100644 gcc/testsuite/rust/compile/prefetch_all.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_and.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_compare_exchange.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_minmax.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_nand.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_or.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_xadd.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_xor.rs create mode 100644 gcc/testsuite/rust/execute/torture/atomic_xsub.rs create mode 100644 gcc/testsuite/rust/execute/torture/const-fn-recursion.rs base-commit: 04f042f50ed44c7360c840949f71fb805fc982b8
