https://gcc.gnu.org/g:0dfe0f263bd8215baa6b81c3e6bd6a5f97adb843

commit r16-6820-g0dfe0f263bd8215baa6b81c3e6bd6a5f97adb843
Author: Marek Polacek <[email protected]>
Date:   Thu Jan 15 14:57:13 2026 -0500

    c++/reflection: enable more testing
    
    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.  Add XFAIL.
    
    Reviewed-by: Jason Merrill <[email protected]>

Diff:
---
 gcc/testsuite/g++.dg/reflect/member15.C | 8 --------
 gcc/testsuite/g++.dg/reflect/splice5.C  | 6 ++----
 2 files changed, 2 insertions(+), 12 deletions(-)

diff --git a/gcc/testsuite/g++.dg/reflect/member15.C 
b/gcc/testsuite/g++.dg/reflect/member15.C
index 36f12d8b539e..8646eb209fdb 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 f06e22707859..781448633376 100644
--- a/gcc/testsuite/g++.dg/reflect/splice5.C
+++ b/gcc/testsuite/g++.dg/reflect/splice5.C
@@ -26,10 +26,8 @@ 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.
-  // s.template [: N == 0 ? ^^S::foo : ^^:: :] (0);
-  // s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
+  s.template [: N == 0 ? ^^S::foo : ^^:: :] (0); // { dg-error "reflection 
'foo' not usable in a template splice" "" { xfail *-*-* } }
+  s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
 }
 
 void

Reply via email to