https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66743
Bug ID: 66743 Summary: ICE on formerly working code Product: gcc Version: c++-concepts Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: webrown.cpp at gmail dot com Target Milestone: --- This appears to be a recently introduced regression. Although I'm using the concepts branch, no concepts features are used to reproduce the problem. Reduced test case: template< class T > struct type_is { using type = T; }; template< class T > using underlying_type = type_is<__underlying_type(T)>; int main( ) { return 0; } Compiler version: concepts-g++ (GCC) 6.0.0 20150702 (experimental) Command line (numerous -W options elided): concepts-g++ -Og -std=c++1z ... <filename> Diagnostic: internal compiler error: tree check: expected record_type or union_type or qual_union_type, have underlying_type in for_each_template_parm_r, at cp/pt.c:8726