https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77629
Markus Trippelsdorf <trippels at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |NEW Last reconfirmed| |2016-09-18 CC| |jason at gcc dot gnu.org Resolution|DUPLICATE |--- Ever confirmed|0 |1 --- Comment #2 from Markus Trippelsdorf <trippels at gcc dot gnu.org> --- Started with r238696: commit 44d0a5f893a449013cf4d64127dcac7b51c0a8e8 Author: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Sun Jul 24 23:40:05 2016 +0000 PR c++/71515 - typename in partial specialization * pt.c (resolve_typename_type): Try to avoid calling currently_open_class. Testcase: template <bool> struct A; template <bool _Cond> using enable_if_t = typename A<_Cond>::type; template <typename, int, typename, typename> struct B; template <int> struct C; template <typename> struct D; template <typename Scalar_, int Size_, typename Derived> struct B<Scalar_, Size_, Derived, enable_if_t<C<Size_>::peel>> { using Base = D<Scalar_>; // typedef D<Scalar_> Base; // OK using typename Base::Scalar; Scalar a; }; See: PR69481 for a similar issue.