[gcc r14-12639] Revert "c++: constexpr nested empty objects [PR125315]"
Jason Merrill
jason@gcc.gnu.org
Mon Jun 8 06:58:47 GMT 2026
https://gcc.gnu.org/g:95f8b83be752aed9469d832aafff717012be3f36
commit r14-12639-g95f8b83be752aed9469d832aafff717012be3f36
Author: Jason Merrill <jason@redhat.com>
Date: Mon Jun 8 02:58:33 2026 -0400
Revert "c++: constexpr nested empty objects [PR125315]"
This reverts commit 53d01c24a921ae9b6edd21d2f07dd28565944c2b.
Diff:
---
gcc/cp/constexpr.cc | 7 +------
gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C | 10 ----------
2 files changed, 1 insertion(+), 16 deletions(-)
diff --git a/gcc/cp/constexpr.cc b/gcc/cp/constexpr.cc
index 7ab9e7383009..55086b930e73 100644
--- a/gcc/cp/constexpr.cc
+++ b/gcc/cp/constexpr.cc
@@ -5292,12 +5292,7 @@ init_subob_ctx (const constexpr_ctx *ctx, constexpr_ctx &new_ctx,
else if (ctx->object)
ctxtype = TREE_TYPE (ctx->object);
else
- {
- /* This can happen if the enclosing object is also an empty subobject
- (c++/125315). */
- gcc_checking_assert (is_empty_class (type));
- return;
- }
+ gcc_unreachable ();
if (VECTOR_TYPE_P (type)
&& VECTOR_TYPE_P (ctxtype)
diff --git a/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C b/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C
deleted file mode 100644
index 22c0b699f926..000000000000
--- a/gcc/testsuite/g++.dg/cpp2a/no_unique_address16.C
+++ /dev/null
@@ -1,10 +0,0 @@
-// PR c++/125315
-// { dg-do compile { target c++20 } }
-// { dg-prune-output "used but never defined" }
-
-struct S{~S(){}};
-constexpr S& f(S& t);
-struct W{[[no_unique_address]]S v;};
-struct R:W{};
-S s;
-auto x=R{{f(s)}};
More information about the Gcc-cvs
mailing list