Hello, This series contains the changes from Oct 16th to Oct 27th.
- many intrinsics enhancements - const support enhancement - better support of prelude - add more testing - few bug fixes Every commit has been regtested on x86_64-linux. The result has been regstraped on x86_64-linux with recent gcc and gcc5.x (see https://github.com/Rust-GCC/gccrs/pull/5033) (gcc5 pending). Ok for master (if gcc5 bootstrap test is OK)? Thanks, Marc Arthur Cohen (8): gccrs: intrinsics: Add wrapper class to compile intrinsic functions gccrs: intrinsics: Fix invalid error check after improvements to builtin lookup gccrs: intrinsics: Always warn on assert_zero_valid<T> gccrs: intrinsics: Add exact_div gccrs: intrinsics: Add assert_inhabited<T> gccrs: intrinsics: Add basic support for assert_uninit_valid<T> gccrs: intrinsics: Add basic implementation for breakpoint gccrs: intrinsics: Add sorry implementation for pref_align_of Pierre-Emmanuel Patry (12): gccrs: Add extern crate core library test gccrs: Do not re-export macros gccrs: Change crate injection API gccrs: Run minicore tests with rust 2018 edition gccrs: Add extern prelude and lang prelude to debug string gccrs: Output cursor position within forever stack debug gccrs: Assign node id to both prelude gccrs: Insert extern crates within extern prelude gccrs: Add test to highlight top core module collision gccrs: Remove map and add extern crate to glob containers gccrs: Document glob containers path gccrs: Add extern prelude crate tests Utkarsh Bahuguna (6): gccrs: Parse const blocks at the start of a statement gccrs: Fix ICE on rest patterns in enum tuple variants gccrs: Report an error when pub is not followed by an item gccrs: Resolve 2015 use paths from the crate root gccrs: Only add the requested auto trait when probing for a trait gccrs: Report non-exhaustive matches as E0004 Yap Zhi Heng (1): gccrs: Fix bitshift compound assignment type check gcc/rust/ast/rust-ast.cc | 11 +- gcc/rust/ast/rust-ast.h | 2 +- gcc/rust/backend/rust-compile-intrinsic.cc | 143 +- gcc/rust/backend/rust-compile-pattern.cc | 42 +- gcc/rust/backend/rust-intrinsic-handlers.cc | 1632 ++++++----------- gcc/rust/backend/rust-intrinsic-handlers.h | 211 ++- .../errors/rust-hir-pattern-analysis.cc | 2 +- gcc/rust/metadata/rust-export-metadata.cc | 3 - gcc/rust/parse/rust-parse-impl.hxx | 21 +- .../resolve/rust-early-name-resolver-2.0.cc | 26 +- .../resolve/rust-early-name-resolver-2.0.h | 16 +- gcc/rust/resolve/rust-forever-stack.h | 7 +- gcc/rust/resolve/rust-forever-stack.hxx | 20 +- .../resolve/rust-name-resolution-context.cc | 9 + .../resolve/rust-name-resolution-context.h | 5 + .../resolve/rust-name-resolution-context.hxx | 4 + .../rust-toplevel-name-resolver-2.0.cc | 19 +- .../typecheck/rust-hir-type-check-expr.cc | 27 +- .../rust-hir-type-check-intrinsic.cc | 14 + gcc/rust/typecheck/rust-tyty-bounds.cc | 5 +- gcc/rust/util/rust-intrinsic-values.h | 9 + .../rust/compile/assert_inhabited.rs | 30 + .../rust/compile/assert_zero_valid.rs | 4 +- .../compile/auto-trait-nested-negative.rs | 35 + gcc/testsuite/rust/compile/breakpoint.rs | 15 + .../rust/compile/const-items-in-block.rs | 11 + gcc/testsuite/rust/compile/exact_div.rs | 22 + gcc/testsuite/rust/compile/exhaustiveness6.rs | 18 + .../rust/compile/inline-const-bare.rs | 6 + .../rust/compile/inline-const-generic.rs | 10 + .../rust/compile/inline-const-stmt.rs | 19 + .../rust/compile/irrefutable-struct.rs | 7 +- gcc/testsuite/rust/compile/issue-4589.rs | 41 + gcc/testsuite/rust/compile/issue-4940.rs | 6 + gcc/testsuite/rust/compile/issues/4913.rs | 22 + .../rust/compile/issues/issue-4971.rs | 35 + gcc/testsuite/rust/compile/pref_align_of.rs | 21 + .../rust/compile/tuple-variant-rest.rs | 37 + .../rust/execute/torture/assert_inhabited1.rs | 33 + .../rust/execute/torture/assert_inhabited2.rs | 30 + .../execute/torture/assert_uninit_valid1.rs | 40 + .../execute/torture/assert_zero_valid1.rs | 40 + .../rust/execute/torture/inline-const-stmt.rs | 15 + .../execute/torture/tuple-variant-rest.rs | 77 + .../rust/minicore/extern_lang_items.rs | 11 + .../minicore/extern_lang_items_core/lib.rs | 25 + .../rust/minicore/extern_prelude_path.rs | 7 + .../minicore/extern_prelude_path_core/lib.rs | 4 + gcc/testsuite/rust/minicore/minicore.exp | 74 + .../rust/minicore/top_core_modules.rs | 4 + .../minicore/top_core_modules_core/lib.rs | 4 + 51 files changed, 1722 insertions(+), 1209 deletions(-) create mode 100644 gcc/testsuite/rust/compile/assert_inhabited.rs create mode 100644 gcc/testsuite/rust/compile/auto-trait-nested-negative.rs create mode 100644 gcc/testsuite/rust/compile/breakpoint.rs create mode 100644 gcc/testsuite/rust/compile/const-items-in-block.rs create mode 100644 gcc/testsuite/rust/compile/exact_div.rs create mode 100644 gcc/testsuite/rust/compile/exhaustiveness6.rs create mode 100644 gcc/testsuite/rust/compile/inline-const-bare.rs create mode 100644 gcc/testsuite/rust/compile/inline-const-generic.rs create mode 100644 gcc/testsuite/rust/compile/inline-const-stmt.rs create mode 100644 gcc/testsuite/rust/compile/issue-4589.rs create mode 100644 gcc/testsuite/rust/compile/issue-4940.rs create mode 100644 gcc/testsuite/rust/compile/issues/4913.rs create mode 100644 gcc/testsuite/rust/compile/issues/issue-4971.rs create mode 100644 gcc/testsuite/rust/compile/pref_align_of.rs create mode 100644 gcc/testsuite/rust/compile/tuple-variant-rest.rs create mode 100644 gcc/testsuite/rust/execute/torture/assert_inhabited1.rs create mode 100644 gcc/testsuite/rust/execute/torture/assert_inhabited2.rs create mode 100644 gcc/testsuite/rust/execute/torture/assert_uninit_valid1.rs create mode 100644 gcc/testsuite/rust/execute/torture/assert_zero_valid1.rs create mode 100644 gcc/testsuite/rust/execute/torture/inline-const-stmt.rs create mode 100644 gcc/testsuite/rust/execute/torture/tuple-variant-rest.rs create mode 100644 gcc/testsuite/rust/minicore/extern_lang_items.rs create mode 100644 gcc/testsuite/rust/minicore/extern_lang_items_core/lib.rs create mode 100644 gcc/testsuite/rust/minicore/extern_prelude_path.rs create mode 100644 gcc/testsuite/rust/minicore/extern_prelude_path_core/lib.rs create mode 100644 gcc/testsuite/rust/minicore/minicore.exp create mode 100644 gcc/testsuite/rust/minicore/top_core_modules.rs create mode 100644 gcc/testsuite/rust/minicore/top_core_modules_core/lib.rs base-commit: 8280b3ff920fc6b1c72fdbe44e6f388eb0955865 -- 2.55.0
