Hello,

This series contains the changes from Oct 14 to Oct 21.

- Early support for #[used] attribute
- Early support for trait alias
- Initial support towards rust 1.55
- Better handling of match guards
- Test building the alloc crate until typecheck
- Add many float intrinsics
- Few bug fixes

Ok for trunk?
Marc

Arthur Cohen (6):
  gccrs: attr: Allow `#[used]` attribute and its argument variant.
  gccrs: backend: Add proper handling for #[used] attribute.
  gccrs: builtins: Improve lookup interface
  gccrs: backend: Properly implement remainder operation for f32 and f64
  gccrs: intrinsics: Add impl for fadd_fast, fsub_fast, fmul_fast,
    fdiv_fast and frem_fast
  gccrs: intrinsics: Add float_to_int_unchecked

Enes Cevik (1):
  gccrs: alloc: Test until typecheck

Owen Avery (4):
  gccrs: Handle 1.55 rustc_feature
  gccrs: Add trait alias AST support
  gccrs: Remove extended_key_value_attributes
  gccrs: Move derive_coerce_pointee to rfl features

Utkarsh Bahuguna (4):
  gccrs: Implement match arm guards
  gccrs: Evaluate call arguments from left to right
  gccrs: Reject type param defaults using later params
  gccrs: Fix ICE with nested patterns in multi-field constructors

Wesley Lewis (1):
  gccrs: check for curly/square braces in an attribute

Yap Zhi Heng (1):
  gccrs: Initial implementation of hotpatching rustc-lib

 gcc/rust/ast/rust-ast-collector.cc            |  29 +++
 gcc/rust/ast/rust-ast-collector.h             |   1 +
 gcc/rust/ast/rust-ast-visitor.cc              |  13 ++
 gcc/rust/ast/rust-ast-visitor.h               |   2 +
 gcc/rust/ast/rust-ast.cc                      |  59 +++++
 gcc/rust/ast/rust-ast.h                       |   1 +
 gcc/rust/ast/rust-item.h                      | 129 +++++++++++
 gcc/rust/backend/rust-builtins.cc             |  35 ++-
 gcc/rust/backend/rust-builtins.h              |  58 ++++-
 gcc/rust/backend/rust-compile-expr.cc         |  23 ++
 gcc/rust/backend/rust-compile-extern.h        |  25 +-
 gcc/rust/backend/rust-compile-intrinsic.cc    | 127 +++++-----
 gcc/rust/backend/rust-compile-item.cc         |  48 ++++
 gcc/rust/backend/rust-intrinsic-handlers.cc   | 219 +++++++++++++-----
 gcc/rust/backend/rust-intrinsic-handlers.h    |   8 +
 .../checks/errors/feature/contrib/Makefile    |   3 +-
 .../errors/feature/contrib/copyright-stub.h   |   2 +-
 .../checks/errors/feature/contrib/parse.y     |  30 ++-
 gcc/rust/checks/errors/feature/contrib/scan.l |  40 +++-
 .../errors/feature/rust-feature-collector.cc  |   5 -
 .../errors/feature/rust-feature-defs-rfl.h    |   9 +-
 .../checks/errors/feature/rust-feature-defs.h |   4 -
 .../errors/feature/rust-feature-gate.cc       |  26 +++
 .../checks/errors/feature/rust-feature-gate.h |   3 +
 .../checks/errors/rust-attribute-checker.cc   |  26 ++-
 .../errors/rust-builtin-attribute-checker.cc  |  48 +++-
 gcc/rust/checks/errors/rust-const-checker.cc  |   6 +-
 .../errors/rust-hir-pattern-analysis.cc       |  11 +-
 gcc/rust/checks/errors/rust-unsafe-checker.cc |   6 +-
 gcc/rust/expand/rust-derive.h                 |   1 +
 gcc/rust/hir/rust-ast-lower-base.cc           |   3 +
 gcc/rust/hir/rust-ast-lower-base.h            |   1 +
 gcc/rust/hir/rust-ast-lower-item.cc           |   6 +
 gcc/rust/hir/rust-ast-lower-item.h            |   1 +
 gcc/rust/parse/rust-parse-impl-attribute.hxx  |  10 -
 gcc/rust/parse/rust-parse-impl.hxx            |  37 ++-
 gcc/rust/parse/rust-parse.h                   |   4 +-
 gcc/rust/resolve/rust-default-resolver.cc     |  15 ++
 gcc/rust/resolve/rust-default-resolver.h      |   1 +
 gcc/rust/resolve/rust-forever-stack.h         |  18 +-
 .../resolve/rust-late-name-resolver-2.0.cc    |  10 +-
 .../rust-toplevel-name-resolver-2.0.cc        |   9 +
 .../resolve/rust-toplevel-name-resolver-2.0.h |   1 +
 gcc/rust/rust-gcc.cc                          | 132 +++++++++--
 .../typecheck/rust-hir-type-check-expr.cc     |  16 ++
 .../rust-hir-type-check-intrinsic.cc          |  19 ++
 gcc/rust/util/rust-attribute-values.h         |   1 +
 gcc/rust/util/rust-attributes.cc              |   3 +-
 gcc/rust/util/rust-intrinsic-values.h         |   8 +
 gcc/testsuite/rust/alloc/alloc.exp            |   2 +-
 gcc/testsuite/rust/compile/doc_macro.rs       |   1 -
 .../compile/early_feature_gate_in_macro.rs    |  29 ---
 gcc/testsuite/rust/compile/exhaustiveness5.rs |  34 +++
 gcc/testsuite/rust/compile/float-rem.rs       |  19 ++
 .../rust/compile/fop_fast_intrinsics.rs       |  27 +++
 gcc/testsuite/rust/compile/issue-3764.rs      |   7 +
 gcc/testsuite/rust/compile/issues/3661.rs     |   1 -
 .../rust/compile/issues/issue-4973.rs         |  39 ++++
 .../rust/compile/match-guard-exhaustive.rs    |  18 ++
 .../rust/compile/match-guard-type.rs          |   9 +
 .../rust/compile/match-guard-unsafe.rs        |  13 ++
 .../rust/compile/parse_time_feature_gate.rs   |  18 --
 .../rust/compile/trait-alias-gate.rs          |   6 +
 .../rust/compile/trait-alias-lowering.rs      |   7 +
 gcc/testsuite/rust/compile/used-attr1.rs      |   5 +
 gcc/testsuite/rust/compile/used-attr2.rs      |  11 +
 gcc/testsuite/rust/compile/used-attr3.rs      |  15 ++
 gcc/testsuite/rust/compile/used-attr4.rs      |  16 ++
 gcc/testsuite/rust/compile/used-attr5.rs      |   5 +
 .../rust/compile/wrong_meta_list_delims.rs    |  12 +
 .../execute/torture/eval-order-call-args.rs   |  66 ++++++
 .../execute/torture/float_to_int_unchecked.rs |  22 ++
 .../rust/execute/torture/match-guard.rs       |  91 ++++++++
 libgrust/rustc-lib-patches/README.md          |  23 ++
 .../patches/0001-core-ffi-c-str.for-rfl-patch |  55 +++++
 .../0002-alloc-vec-extract-if.for-rfl-patch   | 150 ++++++++++++
 libgrust/rustc-lib-patches/rustc-lib-patch.py | 193 +++++++++++++++
 77 files changed, 1893 insertions(+), 293 deletions(-)
 delete mode 100644 gcc/testsuite/rust/compile/early_feature_gate_in_macro.rs
 create mode 100644 gcc/testsuite/rust/compile/exhaustiveness5.rs
 create mode 100644 gcc/testsuite/rust/compile/float-rem.rs
 create mode 100644 gcc/testsuite/rust/compile/fop_fast_intrinsics.rs
 create mode 100644 gcc/testsuite/rust/compile/issue-3764.rs
 create mode 100644 gcc/testsuite/rust/compile/issues/issue-4973.rs
 create mode 100644 gcc/testsuite/rust/compile/match-guard-exhaustive.rs
 create mode 100644 gcc/testsuite/rust/compile/match-guard-type.rs
 create mode 100644 gcc/testsuite/rust/compile/match-guard-unsafe.rs
 delete mode 100644 gcc/testsuite/rust/compile/parse_time_feature_gate.rs
 create mode 100644 gcc/testsuite/rust/compile/trait-alias-gate.rs
 create mode 100644 gcc/testsuite/rust/compile/trait-alias-lowering.rs
 create mode 100644 gcc/testsuite/rust/compile/used-attr1.rs
 create mode 100644 gcc/testsuite/rust/compile/used-attr2.rs
 create mode 100644 gcc/testsuite/rust/compile/used-attr3.rs
 create mode 100644 gcc/testsuite/rust/compile/used-attr4.rs
 create mode 100644 gcc/testsuite/rust/compile/used-attr5.rs
 create mode 100644 gcc/testsuite/rust/compile/wrong_meta_list_delims.rs
 create mode 100644 gcc/testsuite/rust/execute/torture/eval-order-call-args.rs
 create mode 100644 gcc/testsuite/rust/execute/torture/float_to_int_unchecked.rs
 create mode 100644 gcc/testsuite/rust/execute/torture/match-guard.rs
 create mode 100644 libgrust/rustc-lib-patches/README.md
 create mode 100644 
libgrust/rustc-lib-patches/patches/0001-core-ffi-c-str.for-rfl-patch
 create mode 100644 
libgrust/rustc-lib-patches/patches/0002-alloc-vec-extract-if.for-rfl-patch
 create mode 100755 libgrust/rustc-lib-patches/rustc-lib-patch.py


base-commit: 152e0cc2130c686846094cd742ade5c333a56bde
-- 
2.55.0

Reply via email to