[PATCH wwwdocs] gcc-14/changes: Add Rust section to New languages

2024-05-14 Thread Arthur Cohen
--- htdocs/gcc-14/changes.html | 13 + 1 file changed, 13 insertions(+) diff --git a/htdocs/gcc-14/changes.html b/htdocs/gcc-14/changes.html index 924e045a..dd3fea8d 100644 --- a/htdocs/gcc-14/changes.html +++ b/htdocs/gcc-14/changes.html @@ -626,6 +626,19 @@ You may also want to

Re: [PATCH] rust: Add rust.install-dvi and rust.install-html rules

2024-05-02 Thread Arthur Cohen
On 4/29/24 15:30, Christophe Lyon wrote: On Mon, 29 Apr 2024 at 15:24, Arthur Cohen wrote: Thanks Christophe! I've added your patch as part of a documentation pull-request I'm adding to our dev repo: https://github.com/Rust-GCC/gccrs/pull/2966 It'll be upstreamed with the next batch

Re: [PATCH] rust: Add rust.install-dvi and rust.install-html rules

2024-04-29 Thread Arthur Cohen
Thanks Christophe! I've added your patch as part of a documentation pull-request I'm adding to our dev repo: https://github.com/Rust-GCC/gccrs/pull/2966 It'll be upstreamed with the next batch of commits we send, as soon as trunk reopens fully for 15.1. Best, Arthur On 4/4/24 18:27,

Re: [PATCH] Add rvalue::get_name method (and its C equivalent)

2024-04-22 Thread Arthur Cohen
Hey Guillaume :) On 4/20/24 01:05, Guillaume Gomez wrote: Hi, I just encountered the need to retrieve the name of an `rvalue` (if there is one) while working on the Rust GCC backend. This patch adds a getter to retrieve the information. Cordially. virtual bool get_wide_int (wide_int *)

[PATCH] rust: Do not link with libdl and libpthread unconditionally

2024-04-19 Thread Arthur Cohen
Hi everyone, This patch checks for the presence of dlopen and pthread_create in libc. If that is not the case, we check for the existence of -ldl and -lpthread, as these libraries are required to link the Rust runtime to our Rust frontend. If these libs are not present on the system, then we

Re: [PATCH] build: Check for cargo when building rust language

2024-04-17 Thread Arthur Cohen
Hi Rainer! On 4/17/24 10:13, Rainer Orth wrote: Andrew Pinski writes: On Mon, Apr 8, 2024 at 9:39 AM wrote: From: Pierre-Emmanuel Patry Hello, The rust frontend requires cargo to build some of it's components, it's presence was not checked during configuration. WHY did this go in

Re: [gcc r14-7544] gccrs: libproc_macro: Build statically

2024-04-16 Thread Arthur Cohen
Morning Thomas, On 4/15/24 13:07, Thomas Schwinge wrote: Hi! On 2024-01-16T17:43:10+, Arthur Cohen via Gcc-cvs wrote: https://gcc.gnu.org/g:71180a9eed367667e7b2c3f6aea1ee1bba15e9b3 commit r14-7544-g71180a9eed367667e7b2c3f6aea1ee1bba15e9b3 Author: Pierre-Emmanuel Patry Date: Wed Apr

Re: build: Use of cargo not yet supported here in Canadian cross configurations

2024-04-16 Thread Arthur Cohen
Hi Thomas, On 4/15/24 14:44, Thomas Schwinge wrote: Hi! On 2024-04-15T13:14:42+0200, I wrote: On 2024-04-08T18:33:38+0200, pierre-emmanuel.pa...@embecosm.com wrote: The rust frontend requires cargo to build some of it's components, In GCC upstream still: 's%requires%is going to require'.

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
Hi Andrew, On 4/9/24 16:12, Andrew Pinski wrote: On Mon, Apr 8, 2024 at 9:39 AM wrote: From: Pierre-Emmanuel Patry Hello, The rust frontend requires cargo to build some of it's components, it's presence was not checked during configuration. NOTE cargo itself is a huge security hole. If

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
On 4/9/24 12:09, Iain Sandoe wrote: Hi Arthur, On 9 Apr 2024, at 13:01, Arthur Cohen wrote: On 4/9/24 10:55, Iain Sandoe wrote: Hi Arthur, On 9 Apr 2024, at 11:40, Arthur Cohen wrote: On 4/9/24 09:47, John Paul Adrian Glaubitz wrote: Hello, On Mon, 2024-04-08 at 18:33 +0200, pierre

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
Hi Iain! On 4/9/24 10:55, Iain Sandoe wrote: Hi Arthur, On 9 Apr 2024, at 11:40, Arthur Cohen wrote: On 4/9/24 09:47, John Paul Adrian Glaubitz wrote: Hello, On Mon, 2024-04-08 at 18:33 +0200, pierre-emmanuel.pa...@embecosm.com wrote: The rust frontend requires cargo to build some

Re: [PATCH] build: Check for cargo when building rust language

2024-04-09 Thread Arthur Cohen
Morning all, On 4/9/24 09:47, John Paul Adrian Glaubitz wrote: Hello, On Mon, 2024-04-08 at 18:33 +0200, pierre-emmanuel.pa...@embecosm.com wrote: The rust frontend requires cargo to build some of it's components, it's presence was not checked during configuration. Isn't this creating a

Re: Frontend access to target features (was Re: [PATCH] libgccjit: Add ability to get CPU features)

2024-03-19 Thread Arthur Cohen
Hi, On 3/5/24 16:09, David Malcolm wrote: On Thu, 2023-11-09 at 19:33 -0500, Antoni Boucher wrote: Hi. See answers below. On Thu, 2023-11-09 at 18:04 -0500, David Malcolm wrote: On Thu, 2023-11-09 at 17:27 -0500, Antoni Boucher wrote: Hi. This patch adds support for getting the CPU features

[COMMITTED 4/9] gccrs: expand: Fix formatting for "macro not found" error

2024-02-21 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * expand/rust-macro-expand.h (struct MacroExpander): Nitpick: fix formatting of emitted error. --- gcc/rust/expand/rust-macro-expand.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gcc/rust/expand/rust-macro

[COMMITTED 9/9] Update copyright years.

2024-02-21 Thread arthur . cohen
From: Sahil Yeole Signed-off-by: Sahil Yeole --- gcc/rust/ast/rust-ast-builder.cc | 2 +- gcc/rust/ast/rust-ast-builder.h | 2 +- gcc/rust/ast/rust-ast-collector.cc| 2 +- gcc/rust/ast/rust-ast-collector.h

[COMMITTED 5/9] gccrs: Add testcase for #[rustc_const_stable]

2024-02-21 Thread arthur . cohen
From: Arthur Cohen To ensure we don't introduce regressions back to issue #2314 gcc/testsuite/ChangeLog: * rust/compile/rustc_const_stable.rs: New test. --- gcc/testsuite/rust/compile/rustc_const_stable.rs | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 gcc/testsuite/rust

[COMMITTED 7/9] gccrs: Fix lookup of TuplePattern sub-pattern types

2024-02-21 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * backend/rust-compile-pattern.cc (CompilePatternLet::visit): Lookup type of sub-pattern, not tuple pattern itself. gcc/testsuite/ChangeLog: * rust/compile/issue-2847-b.rs: New test. Signed-off-by: Owen Avery ---

[COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance

2024-02-21 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-implitem.h: Fix typo in field (region_costraints -> region_constraints). --- gcc/rust/typecheck/rust-hir-type-check-implitem.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/r

[COMMITTED 8/9] gccrs: Add variadic check on function params

2024-02-21 Thread arthur . cohen
From: 0xn4utilus gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add variadic check on all parameters. gcc/testsuite/ChangeLog: * rust/compile/issue-2850.rs: New test. Signed-off-by: 0xn4utilus ---

[COMMITTED 6/9] gccrs: add powi intrinsics

2024-02-21 Thread arthur . cohen
From: Marc Poulhiès gcc/rust/ChangeLog: * backend/rust-builtins.cc (BuiltinsContext::register_rust_mappings): Add powi and reformat. * backend/rust-builtins.h: Add missing copyright header. gcc/testsuite/ChangeLog: * rust/compile/torture/intrinsics-math.rs:

[COMMITTED 3/9] gccrs: Fix rebinding imports

2024-02-21 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * resolve/rust-ast-resolve-item.cc (flatten_glob): Use Import class. (flatten_rebind): Likewise. (flatten_list): Likewise. (flatten): Likewise. (flatten_use_dec_to_paths): Likewise.

[COMMITTED 2/9] gccrs: Add testcase for matches!() macro

2024-02-21 Thread arthur . cohen
From: Arthur Cohen This adds a testcase for issue #2129. gcc/testsuite/ChangeLog: * rust/execute/torture/matches_macro.rs: New test. --- .../rust/execute/torture/matches_macro.rs | 30 +++ 1 file changed, 30 insertions(+) create mode 100644 gcc/testsuite/rust

[PATCHSET] Update Rust frontend 21/02/2024

2024-02-21 Thread arthur . cohen
Hey everyone, Here is the latest patchset of the Rust frontend, taken directly from our development branch. The patches have been built, tested and bootstrapped on x86-64. [COMMITTED 1/9] gccrs: Fix typo in RegionConstraints instance [COMMITTED 2/9] gccrs: Add testcase for matches!() macro

Re: [PATCH] gccrs: Avoid *.bak suffixed tests - use dg-skip-if instead

2024-02-15 Thread Arthur Cohen
Hi Jakub, On 2/15/24 10:10, Jakub Jelinek wrote: On Fri, Feb 09, 2024 at 11:03:38AM +0100, Jakub Jelinek wrote: On Wed, Feb 07, 2024 at 12:43:59PM +0100, arthur.co...@embecosm.com wrote: From: Philip Herron This patch introduces one regression because generics are getting better understood

Re: [COMMITTED 07/25] gccrs: TyTy: Store region constraints

2024-02-07 Thread Arthur Cohen
On 2/7/24 16:26, Bernhard Reutner-Fischer wrote: On Wed, 7 Feb 2024 12:43:53 +0100 arthur.co...@embecosm.com wrote: diff --git a/gcc/rust/typecheck/rust-hir-type-check-implitem.h b/gcc/rust/typecheck/rust-hir-type-check-implitem.h index 067465ec77a..4d178440775 100644 ---

[COMMITTED 23/25] gccrs: Parse trait functions as `AST::Function`.

2024-02-07 Thread arthur . cohen
From: Kushal Pal To use AST::Function for trait functions, we can parse trait functions using available parse_function(). gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_trait_item): Use parse_function() to parse trait functions. Signed-off-by: Kushal Pal ---

[COMMITTED 25/25] gccrs: Fix macro parsing for trait items.

2024-02-07 Thread arthur . cohen
From: Kushal Pal gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_trait_item): Handle macros in trait items similar to how its handled for trait implementation items. Signed-off-by: Kushal Pal --- gcc/rust/parse/rust-parse-impl.h | 37

[COMMITTED 20/25] gccrs: Add checks for Trait functions

2024-02-07 Thread arthur . cohen
From: Kushal Pal Since we want to use AST::Function class for trait functions as well, we need to check against specific conditions in ASTValidation phase. gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add checks for Trait functions.

[COMMITTED 24/25] gccrs: Remove obsolete classes and functions.

2024-02-07 Thread arthur . cohen
From: Kushal Pal Trait functions now use AST::Function class, so classes AST::TraitItemFunc, AST::TraitItemMethod, AST::TraitFunctionDecl, AST::TraitMethodDecl and their related functions can be removed. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit):

[COMMITTED 19/25] gccrs: Use AssociatedItem in place of TraitItem

2024-02-07 Thread arthur . cohen
From: Kushal Pal gcc/rust/ChangeLog: * ast/rust-ast.h: Replace TraitItem with AssociatedItem. * ast/rust-item.h (class Trait): Likewise. * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Likewise. * parse/rust-parse-impl.h (Parser::parse_trait):

[COMMITTED 14/25] gccrs: remove similar hack in type paths as we had in path expressions

2024-02-07 Thread arthur . cohen
From: Philip Herron This keeps the resolution code in line with paths. Addresses #2723 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-type.cc: remove hack --- gcc/rust/typecheck/rust-hir-type-check-type.cc | 16 1 file changed, 16 deletions(-) diff --git

[COMMITTED 08/25] gccrs: TyTy: Store reference to type before any substitutions

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-tyty.cc (BaseType::BaseType): Store orig ref. (BaseType::get_orig_ref): Add getter. * typecheck/rust-tyty.h: Store orig ref. Signed-off-by: Jakub Dupak --- gcc/rust/typecheck/rust-tyty.cc | 10 --

[COMMITTED 13/25] gccrs: remove old generics hack to reuse generic symbols from previous seg

2024-02-07 Thread arthur . cohen
From: Philip Herron This patch introduces one regression because generics are getting better understood over time. The code here used to apply generics with the same symbol from previous segments which was a bit of a hack with out limited inference variable support. The regression looks like it

[COMMITTED 05/25] gccrs: HIR: Add mising getter

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * hir/tree/rust-hir-item.h: Add missing getter Signed-off-by: Jakub Dupak --- gcc/rust/hir/tree/rust-hir-item.h | 5 + 1 file changed, 5 insertions(+) diff --git a/gcc/rust/hir/tree/rust-hir-item.h b/gcc/rust/hir/tree/rust-hir-item.h index

[COMMITTED 10/25] gccrs: add testcase to prove issue has already been fixed

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #1483 gcc/testsuite/ChangeLog: * rust/compile/issue-1483.rs: New test. --- gcc/testsuite/rust/compile/issue-1483.rs | 28 1 file changed, 28 insertions(+) create mode 100644 gcc/testsuite/rust/compile/issue-1483.rs diff --git

[COMMITTED 16/25] gccrs: Move the Implementation of implitem lowering into its own file.

2024-02-07 Thread arthur . cohen
From: Nobel Singh This patch moves the implementation of the implitem lowering from rust-ast-lower-implitem.h into the rust-ast-lower-implitem.cc file. gcc/rust/ChangeLog: * Make-lang.in: Add rust-ast-lower-implitem.cc to list of objects. * hir/rust-ast-lower-implitem.h

[COMMITTED 22/25] gccrs: Fix inconsistent formatting.

2024-02-07 Thread arthur . cohen
From: Kushal Pal gcc/testsuite/ChangeLog: * rust/compile/issue-2040.rs: Enclose 'const' in single quotes. Signed-off-by: Kushal Pal --- gcc/testsuite/rust/compile/issue-2040.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git

[COMMITTED 21/25] gccrs: Add missing visitors for AST::Function.

2024-02-07 Thread arthur . cohen
From: Kushal Pal To use AST::Function instead of AST::TraitItemFunc and AST::TraitItemMethod, we need to provide similar visitors during lowering and resolving phase. gcc/rust/ChangeLog: * hir/rust-ast-lower-implitem.cc (ASTLowerTraitItem::visit): Provide visitor for

[COMMITTED 09/25] gccrs: Set the default ABI to C for extern blocks and extern functions

2024-02-07 Thread arthur . cohen
From: Nobel Singh Previously, the default ABI was set to Rust, which is not correct for extern blocks and extern functions. This patch changes the default ABI to C for these cases. gcc/rust/ChangeLog: * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_qualifiers): Change

[COMMITTED 18/25] gccrs: fix bug in pattern check for tuples

2024-02-07 Thread arthur . cohen
From: Philip Herron We can point to generic parent types which means we need to do the shallow resolve thing that rustc does. We have destructure which is similar to get what the parameter type points to. Fixes #2775 gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-pattern.cc

[COMMITTED 04/25] gccrs: TyTy: Region (lifetime) representation

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-tyty-region.h: New file. Signed-off-by: Jakub Dupak --- gcc/rust/typecheck/rust-tyty-region.h | 110 ++ 1 file changed, 110 insertions(+) create mode 100644 gcc/rust/typecheck/rust-tyty-region.h diff

[COMMITTED 15/25] gccrs: refactor inference variable computation into a seperate method

2024-02-07 Thread arthur . cohen
From: Philip Herron gcc/rust/ChangeLog: * typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): refactor * typecheck/rust-hir-type-check.h: new prototype * typecheck/rust-typecheck-context.cc (TypeCheckContext::compute_inference_variables): x ---

[COMMITTED 17/25] gccrs: Add testcase to show issue is already fixed

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #2782 gcc/testsuite/ChangeLog: * rust/compile/issue-2782.rs: New test. Signed-off-by: Philip Herron --- gcc/testsuite/rust/compile/issue-2782.rs | 12 1 file changed, 12 insertions(+) create mode 100644 gcc/testsuite/rust/compile/issue-2782.rs

[COMMITTED 11/25] gccrs: add test cases to prove type inference is working

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #2772 gcc/testsuite/ChangeLog: * rust/compile/issue-2772-1.rs: New test. * rust/compile/issue-2772-2.rs: New test. --- gcc/testsuite/rust/compile/issue-2772-1.rs | 20 gcc/testsuite/rust/compile/issue-2772-2.rs | 20

[COMMITTED 06/25] gccrs: Typecheck: add regions (lifetimes) to TyTy

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-hir-trait-resolve.cc: add regions * typecheck/rust-hir-type-check-base.cc (TypeCheckBase::resolve_literal): add regions, resolve generic lifetimes * typecheck/rust-hir-type-check-expr.cc

[COMMITTED 03/25] gccrs: Typecheck: lifetime interning and resolution tool

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-hir-type-check.h (class Lifetime): add interned lifetime class * typecheck/rust-typecheck-context.cc (TypeCheckContext::TypeCheckContext): add resolution tool (TypeCheckContext::intern_lifetime): add method

[COMMITTED 12/25] gccrs: Fix ICE accessing empty vector without check

2024-02-07 Thread arthur . cohen
From: Philip Herron Fixes #2747 gcc/rust/ChangeLog: * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_mappings_from_generic_args): fix gcc/testsuite/ChangeLog: * rust/compile/issue-2747.rs: New test. --- gcc/rust/typecheck/rust-tyty-subst.cc| 3 ++-

[COMMITTED 07/25] gccrs: TyTy: Store region constraints

2024-02-07 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-implitem.cc (TypeCheckTopLevelExternItem::visit): Add region constraints. (TypeCheckImplItem::visit): Add region constraints. * typecheck/rust-hir-type-check-implitem.h: Add region

[COMMITTED 02/25] gccrs: Implement quick-check for Unicode

2024-02-07 Thread arthur . cohen
From: Raiki Tamura gcc/rust/ChangeLog: * rust-lang.cc (run_rust_tests): Add test. * rust-system.h: Add . * util/make-rust-unicode.py: Output NFC_Quick_Check table. * util/rust-codepoint.h (struct Codepoint): Add is_supplementary method. *

[COMMITTED 01/25] gccrs: Parse normal functions with `self` parameter correctly

2024-02-07 Thread arthur . cohen
From: Kushal Pal Fixes #2812 gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_function): Skip token if its a COMMA. gcc/testsuite/ChangeLog: * rust/compile/issue-2812.rs: New test. Signed-off-by: Kushal Pal --- gcc/rust/parse/rust-parse-impl.h |

[COMMITTED 097/101] gccrs: AST: Fix for lifetime lowering

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * hir/rust-ast-lower-type.cc (ASTLoweringTypeBounds::visit): fix for lifetimes (ASTLowerWhereClauseItem::visit): fix for lifetimes Signed-off-by: Jakub Dupak --- gcc/rust/hir/rust-ast-lower-type.cc | 21 + 1 file

[COMMITTED 088/101] gccrs: Handle newlines during string parsing while lexing

2024-01-30 Thread arthur . cohen
From: Nirmal Patel If newline strings are encountered while lexing, the lexer now handles newline characters by incrementing current line number. This provides correct line number when displaying errors. If the lexer encounters end of file before string end, then it will use the start of the

[COMMITTED 090/101] gccrs: Fix inconsistent formatting

2024-01-30 Thread arthur . cohen
From: Kushal Pal gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Enclose const in single quotes. gcc/testsuite/ChangeLog: * rust/compile/const_trait_fn.rs: Enclose const in single quotes. Signed-off-by: Kushal Pal ---

[COMMITTED 089/101] gccrs: Handle `async` functions in traits

2024-01-30 Thread arthur . cohen
From: Kushal Pal Fixes #2785 gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Added check for `async` functions inside trait. * parse/rust-parse-impl.h (Parser::parse_trait_item): Added switch-case for ASYNC token.

[COMMITTED 081/101] gccrs: Generate error for `async` trait fucntions

2024-01-30 Thread arthur . cohen
From: Kushal Pal Fixes #2767 gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Added check for `async` function inside trait. gcc/testsuite/ChangeLog: * rust/compile/issue-2767.rs: New test. Signed-off-by: Kushal Pal ---

[COMMITTED 098/101] gccrs: Test: check implemented for lifetime handling

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/testsuite/ChangeLog: * rust/compile/for_lifetimes.rs: New test. Signed-off-by: Jakub Dupak --- gcc/testsuite/rust/compile/for_lifetimes.rs | 19 +++ 1 file changed, 19 insertions(+) create mode 100644 gcc/testsuite/rust/compile/for_lifetimes.rs

[COMMITTED 074/101] gccrs: BIR: Fix missed nodiscard

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * checks/errors/borrowck/rust-bir-builder-internal.h: Replace nodiscard. * checks/errors/borrowck/rust-bir-place.h: Replace nodiscard. Signed-off-by: Jakub Dupak --- gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h | 4 ++--

[COMMITTED 075/101] gccrs: TyTy: refactor to new API

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Refactor. Signed-off-by: Jakub Dupak --- gcc/rust/typecheck/rust-hir-type-check-type.cc | 11 +++ 1 file changed, 3 insertions(+), 8 deletions(-) diff --git

[COMMITTED 072/101] gccrs: HIR: add missing getters

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * hir/tree/rust-hir-item.h: Ad lifetime getter. * hir/tree/rust-hir-path.h: Make getter const ref. * hir/tree/rust-hir.h: Const ref and new getter. Signed-off-by: Jakub Dupak --- gcc/rust/hir/tree/rust-hir-item.h | 2 ++

[COMMITTED 085/101] gccrs: ast: Infer static lifetime for const and static items

2024-01-30 Thread arthur . cohen
From: Jakub Dupak (probably incomplete propagation) gcc/rust/ChangeLog: * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_lifetime): Propagate static requirement. * hir/rust-ast-lower-base.h: Propagate static requirement. * hir/rust-ast-lower-implitem.h:

[COMMITTED 096/101] gccrs: AST: Fix for lifetime parsing

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_where_clause): fix parsing (Parser::parse_where_clause_item): fix parsing (Parser::parse_type_bound_where_clause_item): fix parsing (Parser::parse_trait_bound): fix parsing *

[COMMITTED 063/101] gccrs: Add validation for functions without body

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Add checks in the ast validation pass to error out with functions (either free or associated) without a definition. gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add a validation check and emit an error depending

[COMMITTED 071/101] gccrs: refactor builtins initialization and attributes

2024-01-30 Thread arthur . cohen
From: Arthur Cohen This commit performs builtin initialization in a more "GCC-y" way, similarly to what the D frontend is doing. This way, we no longer have to worry about invalid attributes or types when initializing them by hand. Also add attributes suppo

[COMMITTED 093/101] gccrs: Unify storage of associated items in SingleASTNode

2024-01-30 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * ast/rust-ast-fragment.cc (Fragment::assert_single_fragment): Update. * ast/rust-ast.h (class TraitImplItem): Move definition before that of TraitItem. (class TraitItem): Inherit from TraitImplItem instead of

[COMMITTED 100/101] gccrs: Remove TraitImplItem

2024-01-30 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * ast/rust-ast-full-decls.h (class TraitImplItem): Remove forward declaration. (class AssociatedItem): Add forward declaration. * ast/rust-ast.h (class TraitImplItem): Remove. (class TraitItem): Inherit from

[COMMITTED 078/101] gccrs: BIR: Cleanup

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * checks/errors/borrowck/rust-bir-place.h: Cleanup. * checks/errors/borrowck/rust-borrow-checker.h: Cleanup. Signed-off-by: Jakub Dupak --- gcc/rust/checks/errors/borrowck/rust-bir-place.h | 2 +-

[COMMITTED 092/101] gccrs: Add improved error when a field is redefined in a struct constructor

2024-01-30 Thread arthur . cohen
From: Robert Goss Fixes #2381 If a struct type is initialized with one of it's fields repeated it will currently issue an error at the use site. However we would like to give the rust error code and (like rustc) show both the specifications for the field to help the user diagnose the issue.

[COMMITTED 057/101] gccrs: Make feature gate visitor inherit from default one

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry The feature gating behavior may be shortened and kept cleaner using the default visitor. This means less maintenance on visit functions as the traversal is shared by multiple visitors. gcc/rust/ChangeLog: * checks/errors/rust-feature-gate.cc

[COMMITTED 099/101] gccrs: Add improved error when no fields in initializer

2024-01-30 Thread arthur . cohen
From: Robert Goss If a struct type with a variant that has fields is initialized with some fields the expression HIR StructExprStructFields is checked that all the fields are assigned. However, if no fields are initialized the HIR StructExprStruct is generated. This doesn't check if the

[COMMITTED 087/101] gccrs: TyTy: Refactor FnType deprecated API

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * backend/rust-compile-expr.cc (CompileExpr::visit): Use new API. * typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Use new API. * typecheck/rust-tyty-cmp.h: Remove old API. * typecheck/rust-tyty.cc (FnPtr::is_equal):

[COMMITTED 070/101] gccrs: Change cfg stripper to use default visitor

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Cfg visitor used it's own visit patterns, this made the code longer than required. gcc/rust/ChangeLog: * expand/rust-cfg-strip.cc (CfgStrip::visit): Change calls from visitor to default visitor. (CfgStrip::go): Add call to visit crate.

[COMMITTED 051/101] gccrs: Split async and const function qualifiers

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry A function cannot be both async and const, however this should not be handled in the parser but rather at a later stage in the compiler. This commit change the AsyncConstStatus in the AST and the HIR to allows a function to be both async and const.

[COMMITTED 094/101] gccrs: Added newline to get more readable lexdump

2024-01-30 Thread arthur . cohen
From: Kushal Pal Fixes #2783 gcc/rust/ChangeLog: * lex/rust-lex.cc (Lexer::dump_and_skip): Changed " " to '\n' Signed-off-by: Kushal Pal --- gcc/rust/lex/rust-lex.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rust/lex/rust-lex.cc

[COMMITTED 086/101] gccrs: ast: Lower 'for' lifetimes

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * hir/rust-ast-lower-type.cc (ASTLoweringType::visit): For lifetimes. Signed-off-by: Jakub Dupak --- gcc/rust/hir/rust-ast-lower-type.cc | 7 +++ 1 file changed, 7 insertions(+) diff --git a/gcc/rust/hir/rust-ast-lower-type.cc

[COMMITTED 047/101] gccrs: Emit an error on unsafe modules

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry An error should be emitted on unsafe modules during the AST validation pass as the syntax allows those even though they're not alowed later down the line. gcc/rust/ChangeLog: * ast/rust-item.h: Add safety getter to modules. *

[COMMITTED 064/101] gccrs: Add a regression test for function body check

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Function body check emit an error message when a required function body is missing. gcc/testsuite/ChangeLog: * rust/compile/functions_without_body.rs: New test. Signed-off-by: Pierre-Emmanuel Patry --- .../rust/compile/functions_without_body.rs| 21

[COMMITTED 083/101] gccrs: ast: Unify explicitly and implicitly elided lifettimes

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * ast/rust-ast.h: Elided lifetime static constructor * ast/rust-type.h: Default lifetime to elided. * parse/rust-parse-impl.h (Parser::parse_lifetime_param): Use elided lifetime. (Parser::parse_lifetime): Use elided

[COMMITTED 076/101] gccrs: TyTy: Common interface for fucntion-like types

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-tyty.h (class ClosureType): Inherit interface. (class FnPtr): Inherit interface. (class FnType): Inherit interface. (class CallableTypeInterface): New interface. (BaseType::is): Detect interface

[COMMITTED 055/101] gccrs: Add AST validation check for const in trait

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Add a new check in AST validation pass that checks that no function declaration in traits are declared const. gcc/rust/ChangeLog: * checks/errors/rust-ast-validation.cc (ASTValidation::visit): Add const check. *

[COMMITTED 036/101] gccrs: nr2.0: Store mappings in NameResolutionContext

2024-01-30 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * resolve/rust-name-resolution-context.h: Store a reference to the mappings. * resolve/rust-name-resolution-context.cc (NameResolutionContext::NameResolutionContext): Likewise. --- gcc/rust/resolve/rust-name-resolution

[COMMITTED 101/101] gccrs: Fix output line ending patterns.

2024-01-30 Thread arthur . cohen
From: Arthur Cohen gcc/testsuite/ChangeLog: * rust/execute/torture/builtin_macros1.rs: Fix output pattern. * rust/execute/torture/coercion3.rs: Likewise. * rust/execute/torture/issue-2080.rs: Likewise. * rust/execute/torture/issue-2179.rs: Likewise

[COMMITTED 079/101] gccrs: split rust-mangle.cc into two files

2024-01-30 Thread arthur . cohen
From: Raiki Tamura gcc/rust/ChangeLog: * Make-lang.in: Add .o files * backend/rust-mangle.cc (struct V0Path): moved to splitted files (v0_path): Likewise. (legacy_mangle_name): Likewise. (legacy_mangle_canonical_path): Likewise. (legacy_hash):

[COMMITTED 077/101] gccrs: TyTy: SubstitutionRef cast specialization

2024-01-30 Thread arthur . cohen
From: Jakub Dupak Allows skipping parent check when casting. gcc/rust/ChangeLog: * typecheck/rust-tyty.h (BaseType::is): Cast API. (SubstitutionRef>): Cast API. (BaseType::as): Cast API. (BaseType::try_as): Cast API. Signed-off-by: Jakub Dupak ---

[COMMITTED 032/101] gccrs: Added support to Parse ASYNC function

2024-01-30 Thread arthur . cohen
From: M V V S Manoj Kumar Fixes issue #2650 The parser now parses ASYNC functions. Added ASYNC case to parse_item Added a new function parse_async_item which is called in parse_vis_item to handle the ASYNC case. Parse_async_item also checks the current Rust edition and generates an error if the

[COMMITTED 048/101] gccrs: Add a regression test for unsafe module validation

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Add a new test to check for unsafe modules during AST validation pass. gcc/testsuite/ChangeLog: * rust/compile/unsafe_module.rs: New test. Signed-off-by: Pierre-Emmanuel Patry --- gcc/testsuite/rust/compile/unsafe_module.rs | 2 ++ 1 file changed, 2

[COMMITTED 095/101] gccrs: Test: fix missing lifetime in a test

2024-01-30 Thread arthur . cohen
From: Jakub Dupak This test did not compile with rustc. gcc/testsuite/ChangeLog: * rust/compile/torture/utf8_identifiers.rs: add mising lifetime Signed-off-by: Jakub Dupak --- gcc/testsuite/rust/compile/torture/utf8_identifiers.rs | 2 +- 1 file changed, 1 insertion(+), 1

[COMMITTED 080/101] gccrs: Handle `async` qualifier inside trait

2024-01-30 Thread arthur . cohen
From: Kushal Pal Fixes #2778 gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_trait_impl_item): Handled `async` items Signed-off-by: Kushal Pal --- gcc/rust/parse/rust-parse-impl.h | 2 ++ 1 file changed, 2 insertions(+) diff --git

[COMMITTED 068/101] gccrs: Make default resolver inherit from default visitor

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry The default resolver put some scope in place but mostly has traversal functions similar to the default ast visitor, making it inherit from the default visitor allows us to avoid code duplication. gcc/rust/ChangeLog: * resolve/rust-default-resolver.cc

[COMMITTED 028/101] gccrs: Replace some keyword raw values

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Raw values cannot be understood easily by most tools. This commit replace some raw values with their variable counterpart. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Replace raw value with keyword call. *

[COMMITTED 043/101] gccrs: toplevel: Resolve `use` declarations

2024-01-30 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::insert_or_error_out): New functions. (TopLevel::handle_use_dec): New function. (flatten_rebind): Likewise. (flatten_list): Likewise. (flatten_glob

[COMMITTED 091/101] gccrs: Handle `async` keyword for regular implementations

2024-01-30 Thread arthur . cohen
From: Kushal Pal Fixes #2788 gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_inherent_impl_item): Added switch-case for ASYNC token. gcc/testsuite/ChangeLog: * rust/compile/issue-2788.rs: New test. Signed-off-by: Kushal Pal ---

[COMMITTED 073/101] gccrs: TyTy: Fix missed nodiscard

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * typecheck/rust-tyty.h: Fix nodiscard to warn unused. Signed-off-by: Jakub Dupak --- gcc/rust/typecheck/rust-tyty.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/rust/typecheck/rust-tyty.h

[COMMITTED 060/101] gccrs: Add multiple regression test in name resolution

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Local variables and functions or global variables have different resolution when binded to a variable. This was not covered before, even though it was handled by the new name resolution. This commit highlight this behavior from the new name resolution mechanism.

[COMMITTED 031/101] gccrs: Introduce a proper keyword list

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry The old "keyword" list was used for the lexer, and could therefore not be used with keyword spanning over multiple tokens as those tokens should remain lexed as is. Hence the introduction of a new list macro for keyword exclusive tasks. This also means we can no

[COMMITTED 044/101] gccrs: Create base class for TupleStructItems and TuplePatternItems

2024-01-30 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * hir/tree/rust-hir-pattern.h (class TupleItems): New. (class TupleStructItems): Inherit from TupleItems. (class TuplePatternItems): Likewise. Signed-off-by: Owen Avery --- gcc/rust/hir/tree/rust-hir-pattern.h | 47

[COMMITTED 084/101] gccrs: ast: Full lifetime elision handling

2024-01-30 Thread arthur . cohen
From: Jakub Dupak gcc/rust/ChangeLog: * parse/rust-parse-impl.h (Parser::parse_generic_param): Lifetime elision control. (Parser::parse_lifetime_where_clause_item): Lifetime elision control. (Parser::parse_type_param_bound): Lifetime elision control.

[COMMITTED 069/101] gccrs: Make expand visitor inherit from default visitor

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Many visit functions in the expand visitor simply visit their components like the default visitor. Making the expand visitor inherit from the default visitor allows us to keep all visitor in sync without having to change every visitor. gcc/rust/ChangeLog: *

[COMMITTED 050/101] gccrs: Remove class AST::InherentImplItem

2024-01-30 Thread arthur . cohen
From: Owen Avery gcc/rust/ChangeLog: * ast/rust-ast-full-decls.h (class InherentImplItem): Remove. * ast/rust-ast.h (class InherentImplItem): Remove. (class SingleASTNode): Store pointer to AssociatedItem instead of InherentImplItem. *

[COMMITTED 029/101] gccrs: Add a list of weak keyword

2024-01-30 Thread arthur . cohen
From: Pierre-Emmanuel Patry Retrieving a weak keyword value is done using raw values. Introducing a list of weak keywords means this could change. gcc/rust/ChangeLog: * util/rust-keyword-values.h (class WeakKeywords): Add new class with weak keyword constexpr. Signed-off-by:

[COMMITTED 041/101] gccrs: ast: Add NodeId to UseTree base class

2024-01-30 Thread arthur . cohen
From: Arthur Cohen gcc/rust/ChangeLog: * ast/rust-item.h (class UseTree): Add `node_id` member. --- gcc/rust/ast/rust-item.h | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gcc/rust/ast/rust-item.h b/gcc/rust/ast/rust-item.h index 2c0e45962ce..3480d126bc0

  1   2   3   4   5   6   >