]> gcc.gnu.org Git - gcc.git/commitdiff
gccrs: Make constexpr constructors type-checking more permissive
authorPhilip Herron <philip.herron@embecosm.com>
Tue, 27 Sep 2022 10:36:35 +0000 (11:36 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 31 Jan 2023 13:16:52 +0000 (14:16 +0100)
gcc/rust/ChangeLog:

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

gcc/rust/backend/rust-constexpr.cc

index 8efb4301d0985134b6d2e77454663b9413d8dcce..8623816236c99ebe56f9b4cf74cf688d130151d7 100644 (file)
@@ -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;
 
This page took 0.070271 seconds and 5 git commands to generate.