From: Marc Poulhiès <[email protected]>
Hello,
This series contains changes from Nov 4th to Nov 10th:
- better derive CoercePointee support
- more intrinsic work
- internal Path refactoring
- bug fixes
Tested on x86_64-linux, bootstrapped on recent and old gcc 5.
OK for master?
Marc
Arthur Cohen (3):
gccrs: coerce-pointee: Make field count check correct
gccrs: intrinsics: Add basic support for nontemporal_store
gccrs: intrinsics: Add ptr_offset_from<T>
Ata Borla (1):
gccrs: changing NULL to nullptr
Owen Avery (1):
gccrs: Fix linemap filename lifetimes
Pierre-Emmanuel Patry (7):
gccrs: Add a path class to group path specific components
gccrs: Remove PathUtil class
gccrs: Make HIR PathPattern inherit from RawPath
gccrs: Use RawPath with PathInExpression
gccrs: Use RawPath for TypePath
gccrs: Use RawPath for ResolutionPath input
gccrs: Move rust-raw-path to utils directory
Utkarsh Bahuguna (7):
gccrs: Don't crash on error types during type checking
gccrs: Fix projections to generic associated types
gccrs: Number asm! operands the way gcc expects
gccrs: Hold the parent predicate by pointer in TypeBoundPredicateItem
gccrs: Reuse an impl's self type when probing methods
gccrs: Add a test that diffs the diagnostics of compiling core
gccrs: Check exhaustiveness of unit variant patterns
Wesley Lewis (3):
gccrs: Validate repr(transparent) for derive CoercePointee
gccrs: validation check for minimum number of fields for struct with
derive CoercePointee
gccrs: validation check for CoercePointee structs to have atleast one
non-generic typed field
Yap Zhi Heng (1):
gccrs: Declare Rust::Compile::handlers::inner functions as static
gcc/rust/ast/rust-ast-builder.cc | 2 +-
gcc/rust/ast/rust-ast-collector.cc | 4 +-
gcc/rust/ast/rust-ast.h | 41 +-----
gcc/rust/ast/rust-item.h | 6 +
gcc/rust/ast/rust-path.cc | 12 +-
gcc/rust/ast/rust-path.h | 96 ++++---------
gcc/rust/backend/rust-compile-intrinsic.cc | 2 +
.../backend/rust-compile-struct-field-expr.cc | 4 +-
gcc/rust/backend/rust-intrinsic-handlers.cc | 103 ++++++++++++--
gcc/rust/backend/rust-intrinsic-handlers.h | 26 +---
.../errors/rust-hir-pattern-analysis.cc | 26 +++-
gcc/rust/expand/rust-derive-clone.cc | 10 +-
gcc/rust/expand/rust-derive-coerce-pointee.cc | 129 +++++++++++++++++-
gcc/rust/expand/rust-derive-coerce-pointee.h | 15 +-
gcc/rust/expand/rust-macro-builtins-asm.cc | 62 ++++++++-
.../expand/rust-macro-builtins-include.cc | 3 +-
gcc/rust/hir/rust-ast-lower-expr.cc | 7 +-
gcc/rust/hir/rust-ast-lower-type.cc | 8 +-
gcc/rust/hir/rust-ast-lower.cc | 15 +-
gcc/rust/hir/rust-hir-dump.cc | 4 +-
gcc/rust/hir/tree/rust-hir-path.cc | 37 ++---
gcc/rust/hir/tree/rust-hir-path.h | 66 ++++-----
gcc/rust/hir/tree/rust-hir.cc | 6 +-
gcc/rust/lex/rust-lex.cc | 4 +-
.../resolve/rust-early-name-resolver-2.0.cc | 9 +-
.../resolve/rust-early-name-resolver-2.0.h | 12 +-
gcc/rust/resolve/rust-forever-stack.h | 51 ++++---
gcc/rust/resolve/rust-forever-stack.hxx | 9 +-
.../resolve/rust-late-name-resolver-2.0.cc | 5 +-
.../resolve/rust-name-resolution-context.h | 62 ++-------
.../resolve/rust-name-resolution-context.hxx | 14 +-
gcc/rust/rust-error-codes.def | 3 +-
gcc/rust/rust-linemap.cc | 6 +-
gcc/rust/rust-session-manager.h | 13 --
gcc/rust/typecheck/rust-hir-dot-operator.cc | 12 +-
gcc/rust/typecheck/rust-hir-dot-operator.h | 2 +
.../typecheck/rust-hir-path-probe-expr.cc | 2 +-
gcc/rust/typecheck/rust-hir-trait-resolve.cc | 8 ++
.../typecheck/rust-hir-type-check-expr.cc | 30 +++-
.../rust-hir-type-check-intrinsic.cc | 8 ++
.../typecheck/rust-hir-type-check-item.cc | 35 +++--
.../typecheck/rust-hir-type-check-struct.cc | 4 +-
.../typecheck/rust-hir-type-check-type.cc | 8 +-
gcc/rust/typecheck/rust-type-util.cc | 12 +-
gcc/rust/typecheck/rust-tyty-bounds.cc | 32 ++---
gcc/rust/typecheck/rust-tyty.h | 10 +-
gcc/rust/util/rust-attribute-values.h | 1 +
gcc/rust/util/rust-intrinsic-values.h | 4 +
gcc/rust/util/rust-raw-path.h | 64 +++++++++
gcc/rust/util/rust-util-path.h | 45 ------
.../rust/compile/derive-coerce-pointee1.rs | 1 +
.../rust/compile/derive-coerce-pointee2.rs | 1 +
.../rust/compile/derive-coerce-pointee3.rs | 1 +
.../rust/compile/derive-coerce-pointee4.rs | 17 +++
.../rust/compile/derive-coerce-pointee5.rs | 23 ++++
.../rust/compile/derive-coerce-pointee6.rs | 41 ++++++
.../rust/compile/derive-coerce-pointee7.rs | 27 ++++
.../rust/compile/exhaustiveness10.rs | 24 ++++
gcc/testsuite/rust/compile/exhaustiveness9.rs | 70 ++++++++++
gcc/testsuite/rust/compile/issues/3726.rs | 4 +-
gcc/testsuite/rust/compile/issues/4165.rs | 1 -
.../rust/compile/issues/issue-2311.rs | 19 +++
.../rust/compile/issues/issue-5022-2.rs | 57 ++++++++
.../rust/compile/issues/issue-5022.rs | 51 +++++++
.../rust/compile/issues/issue-5039-2.rs | 14 ++
.../rust/compile/issues/issue-5039.rs | 25 ++++
.../rust/compile/issues/issue-5057-2.rs | 19 +++
.../rust/compile/nontemporal_store.rs | 19 +++
gcc/testsuite/rust/core/core-1.49.expected | 10 ++
gcc/testsuite/rust/core/core-diagnostics.exp | 71 ++++++++++
.../rust/execute/torture/issue-5022.rs | 30 ++++
.../rust/execute/torture/issue-5057.rs | 27 ++++
.../rust/execute/torture/ptr_offset_from.rs | 30 ++++
73 files changed, 1257 insertions(+), 474 deletions(-)
create mode 100644 gcc/rust/util/rust-raw-path.h
delete mode 100644 gcc/rust/util/rust-util-path.h
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee4.rs
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee5.rs
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee6.rs
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee7.rs
create mode 100644 gcc/testsuite/rust/compile/exhaustiveness10.rs
create mode 100644 gcc/testsuite/rust/compile/exhaustiveness9.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-2311.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-5022-2.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-5022.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-5039-2.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-5039.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-5057-2.rs
create mode 100644 gcc/testsuite/rust/compile/nontemporal_store.rs
create mode 100644 gcc/testsuite/rust/core/core-1.49.expected
create mode 100644 gcc/testsuite/rust/core/core-diagnostics.exp
create mode 100644 gcc/testsuite/rust/execute/torture/issue-5022.rs
create mode 100644 gcc/testsuite/rust/execute/torture/issue-5057.rs
create mode 100644 gcc/testsuite/rust/execute/torture/ptr_offset_from.rs
base-commit: 2104f1a937eb8c7a701fb7338bee9bfb5f72f902
--
2.55.0