Hi Patrick! On 2023-10-20T13:36:30-0400, Patrick Palka <ppa...@redhat.com> wrote: > Built on x86_64-pc-linux-gnu, pushed to trunk as obvious (hopefully). > > -- >8 -- > > This patch removes stray NON_DEPENDENT_EXPR checks following the removal > of this tree code from the C++ FE. (Since this restores the build I > supppose it means the Rust FE never creates NON_DEPENDENT_EXPR trees in > the first place, so no further analysis is needed.)
ACK, thanks! For context: indeed, a non-trivial amount of C++ front end 'constexpr' code was copied into the Rust front end, for implementing related Rust functionality, mostly as part of the 2022 GSoC project "Support for Constant Folding in Rust Frontend" (Faisal Abbas), <https://gcc.gnu.org/wiki/SummerOfCode#A2022>. Yes, this should eventually be cleaned up (and merged with the original C++ front end code, as much as feasible -- which I don't know whether or to which extent it is). Grüße Thomas > PR rust/111899 > > gcc/rust/ChangeLog: > > * backend/rust-constexpr.cc (potential_constant_expression_1): > Remove NON_DEPENDENT_EXPR handling. > * backend/rust-tree.cc (mark_exp_read): Likewise. > (mark_use): Likewise. > (lvalue_kind): Likewise. > --- > gcc/rust/backend/rust-constexpr.cc | 1 - > gcc/rust/backend/rust-tree.cc | 3 --- > 2 files changed, 4 deletions(-) > > diff --git a/gcc/rust/backend/rust-constexpr.cc > b/gcc/rust/backend/rust-constexpr.cc > index b28fa27b2d0..a7ae4166ea0 100644 > --- a/gcc/rust/backend/rust-constexpr.cc > +++ b/gcc/rust/backend/rust-constexpr.cc > @@ -6151,7 +6151,6 @@ potential_constant_expression_1 (tree t, bool > want_rval, bool strict, bool now, > case CLEANUP_POINT_EXPR: > case EXPR_STMT: > case PAREN_EXPR: > - case NON_DEPENDENT_EXPR: > /* For convenience. */ > case LOOP_EXPR: > case EXIT_EXPR: > diff --git a/gcc/rust/backend/rust-tree.cc b/gcc/rust/backend/rust-tree.cc > index 66e859cd70c..7040c75f825 100644 > --- a/gcc/rust/backend/rust-tree.cc > +++ b/gcc/rust/backend/rust-tree.cc > @@ -72,7 +72,6 @@ mark_exp_read (tree exp) > case ADDR_EXPR: > case INDIRECT_REF: > case FLOAT_EXPR: > - case NON_DEPENDENT_EXPR: > case VIEW_CONVERT_EXPR: > mark_exp_read (TREE_OPERAND (exp, 0)); > break; > @@ -128,7 +127,6 @@ mark_use (tree expr, bool rvalue_p, bool read_p, > switch (TREE_CODE (expr)) > { > case COMPONENT_REF: > - case NON_DEPENDENT_EXPR: > recurse_op[0] = true; > break; > case COMPOUND_EXPR: > @@ -4520,7 +4518,6 @@ lvalue_kind (const_tree ref) > lvalues. */ > return (DECL_NONSTATIC_MEMBER_FUNCTION_P (ref) ? clk_none : > clk_ordinary); > > - case NON_DEPENDENT_EXPR: > case PAREN_EXPR: > return lvalue_kind (TREE_OPERAND (ref, 0)); > > -- > 2.42.0.411.g813d9a9188 ----------------- Siemens Electronic Design Automation GmbH; Anschrift: Arnulfstraße 201, 80634 München; Gesellschaft mit beschränkter Haftung; Geschäftsführer: Thomas Heurung, Frank Thürauf; Sitz der Gesellschaft: München; Registergericht München, HRB 106955