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);
-  // s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
+  s.template [: N == 0 ? ^^S::bar : ^^:: :] (0);
 }
 
 void

base-commit: 166a776b590eeed1282e65ce0b4b489d780ee0be
-- 
2.52.0

Reply via email to