https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78986
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2018-09-24 CC| |msebor at gcc dot gnu.org Summary|template inner classes are |[7/8/9 Regression] template |not affected by visibility |inner classes are not |specifiers |affected by access | |specifiers Ever confirmed|0 |1 Known to fail| |4.8.3, 4.9.3, 5.3.0, 7.2.0, | |8.2.0, 9.0 --- Comment #1 from Martin Sebor <msebor at gcc dot gnu.org> --- Confirmed. The test case in comment #0 has never been diagnosed by G++. The following slightly modified test case, however, is rejected by G++ 5 but accepted by 6 and later. class B { struct T {}; }; class D: B { template<typename> struct U: T {}; }; D::U<int> d; Bisection points to r231354 as the cause of the regression: r231354 | jason | 2015-12-06 23:35:14 -0500 (Sun, 06 Dec 2015) | 4 lines Fix parse/no-type-defn1.C with -std=c++1z. * parser.c (struct tentative_firewall): New. (cp_parser_template_id, cp_parser_decltype_expr): Use it.