[gcc/devel/rust/master] Make constexpr constructors type-checking more permissive

Thomas Schwinge tschwinge@gcc.gnu.org
Tue Sep 27 15:49:48 GMT 2022


https://gcc.gnu.org/g:3a24dde2e7adec97243b95c79ea7877698f17c19

commit 3a24dde2e7adec97243b95c79ea7877698f17c19
Author: Philip Herron <philip.herron@embecosm.com>
Date:   Tue Sep 27 11:36:35 2022 +0100

    Make constexpr constructors type-checking more permissive

Diff:
---
 gcc/rust/backend/rust-constexpr.cc | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/gcc/rust/backend/rust-constexpr.cc b/gcc/rust/backend/rust-constexpr.cc
index 203449ba906..790a8e966a0 100644
--- a/gcc/rust/backend/rust-constexpr.cc
+++ b/gcc/rust/backend/rust-constexpr.cc
@@ -2953,14 +2953,14 @@ eval_store_expression (const constexpr_ctx *ctx, tree t, bool lval,
       TREE_SIDE_EFFECTS (*valp) = TREE_SIDE_EFFECTS (init);
       CONSTRUCTOR_NO_CLEARING (*valp) = CONSTRUCTOR_NO_CLEARING (init);
     }
-  else if (TREE_CODE (init) == CONSTRUCTOR
-	   && !same_type_ignoring_top_level_qualifiers_p (TREE_TYPE (init),
-							  type))
-    {
-      /* See above on initialization of empty bases.  */
-      gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval);
-      return init;
-    }
+  // else if (TREE_CODE (init) == CONSTRUCTOR
+  //          && !same_type_ignoring_top_level_qualifiers_p (TREE_TYPE (init),
+  //       						  type))
+  //   {
+  //     /* See above on initialization of empty bases.  */
+  //     // gcc_assert (is_empty_class (TREE_TYPE (init)) && !lval);
+  //     return init;
+  //   }
   else
     *valp = init;


More information about the Gcc-cvs mailing list