template <int N> struct S { enum class T { E, F }; void foo (); }; template <int N> void S<N>::foo () { decltype (T::F) t; } void bar () { S<0> s; s.foo (); } is rejected since r251438.
Author: jason Date: Tue May 1 18:11:53 2018 New Revision: 259805 URL: https://gcc.gnu.org/viewcvs?rev=259805&root=gcc&view=rev Log: PR c++/85587 - error with scoped enum in template. * semantics.c (finish_qualified_id_expr): Don't return an unqualified IDENTIFIER_NODE. Added: trunk/gcc/testsuite/g++.dg/cpp0x/scoped_enum8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/semantics.c
Author: jakub Date: Wed May 2 07:50:28 2018 New Revision: 259824 URL: https://gcc.gnu.org/viewcvs?rev=259824&root=gcc&view=rev Log: PR c++/85587 - error with scoped enum in template. * semantics.c (finish_qualified_id_expr): Don't return an unqualified IDENTIFIER_NODE. Added: branches/gcc-8-branch/gcc/testsuite/g++.dg/cpp0x/scoped_enum8.C Modified: branches/gcc-8-branch/gcc/cp/ChangeLog branches/gcc-8-branch/gcc/cp/semantics.c
GCC 8.1 has been released.
Fixed in 8.1.