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 ();
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 ();
// 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