[COMMITTED] gccrs: Make constexpr constructors type-checking more permissive

Message ID 20230131132720.663907-1-arthur.cohen@embecosm.com
State Committed
Commit 9c60f0e1e5cd5a60d5a057193611aa0c38894cc7
Headers
Series [COMMITTED] gccrs: Make constexpr constructors type-checking more permissive |

Commit Message

Arthur Cohen Jan. 31, 2023, 1:27 p.m. UTC
  From: Philip Herron <philip.herron@embecosm.com>

gcc/rust/ChangeLog:

	* backend/rust-constexpr.cc (eval_store_expression): Remove invalid
	assertion on constexpr constructors.

Tested on x86_64-pc-linux-gnu, committed on master.

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

Patch

diff --git a/gcc/rust/backend/rust-constexpr.cc b/gcc/rust/backend/rust-constexpr.cc
index 8efb4301d09..8623816236c 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;