On 1/16/26 4:01 AM, Marek Polacek wrote:
Not pushing as obvious in case you want to resolve the first two TODOs
differently.
Tested x86_64-pc-linux-gnu. Ok?
-- >8 --
These TODOs already work fine so let's enable more testing.
gcc/testsuite/ChangeLog:
* g++.dg/reflect/member15.C: Enable commented-out test.
* g++.dg/reflect/splice5.C: Likewise.
---
gcc/testsuite/g++.dg/reflect/member15.C | 8 --------
gcc/testsuite/g++.dg/reflect/splice5.C | 5 ++---
2 files changed, 2 insertions(+), 11 deletions(-)
diff --git a/gcc/testsuite/g++.dg/reflect/member15.C
b/gcc/testsuite/g++.dg/reflect/member15.C
index 36f12d8b539..8646eb209fd 100644
--- a/gcc/testsuite/g++.dg/reflect/member15.C
+++ b/gcc/testsuite/g++.dg/reflect/member15.C
@@ -117,12 +117,8 @@ qux ()
if (ta != 64 || tb != 45 || tc != 56)
__builtin_abort ();
U u = { U::F, U::I };
-#if 0
- // TODO: This doesn't work yet:
u.[:nonstatic_data_members_of (^^C, uctx)[0]:] = u.[:^^C::E::G:];
-#else
u.[:nonstatic_data_members_of (^^C, uctx)[0]:] = u.[:^^C::G:];
-#endif
u.[:nonstatic_data_members_of (^^C, uctx)[1]:] = u.[:^^C::H:];
if (u.j != U::G || u.k != U::E::H)
__builtin_abort ();
@@ -151,12 +147,8 @@ fred ()
if (ta != 64 || tb != 45 || tc != 56)
__builtin_abort ();
C u = { U::F, U::I };
-#if 0
- // TODO: This doesn't work yet:
u.[:nonstatic_data_members_of (^^C, uctx)[0]:] = u.[:^^C::E::G:];
-#else
u.[:nonstatic_data_members_of (^^C, uctx)[0]:] = u.[:^^C::G:];
-#endif
u.[:nonstatic_data_members_of (^^C, uctx)[1]:] = u.[:^^C::H:];
if (u.j != U::G || u.k != U::E::H)
__builtin_abort ();
diff --git a/gcc/testsuite/g++.dg/reflect/splice5.C
b/gcc/testsuite/g++.dg/reflect/splice5.C
index f06e2270785..030845b7b9b 100644
--- a/gcc/testsuite/g++.dg/reflect/splice5.C
+++ b/gcc/testsuite/g++.dg/reflect/splice5.C
@@ -26,10 +26,9 @@ qux (S &s)
// TODO: We don't reject this one.
template [: N == 0 ? ^^foo : ^^:: :] (0); // { dg-error "reflection 'foo' not usable in
a template splice" "" { xfail *-*-* } }
template [: N == 0 ? ^^bar : ^^:: :] (0); // { dg-message "only function templates are
allowed here" "" { xfail *-*-* } .-1 }
- // TODO: The first one should be rejected, the second one accepted.
- // We emit nonsensical unrelated errors.
+ // TODO: This one should be rejected.
// s.template [: N == 0 ? ^^S::foo : ^^:: :] (0);
This should be uncommented and xfailed. OK with that adjustment.
- // s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
+ s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
}
void
base-commit: 166a776b590eeed1282e65ce0b4b489d780ee0be