https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92313
Bug ID: 92313 Summary: Regression: ICE since 9.2 for templates derived from range-v3 code Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: TonyELewis at hotmail dot com Target Milestone: --- Compiling: ~~~ #include <range/v3/iterator/access.hpp> ~~~ ...with range-v3 0.9.1 is successful with GCC 9.2 but induces an ICE with GCC trunk ("10.0.0 20191022 (experimental)") : [ https://godbolt.org/z/MwXurC ] : With creduce's help, this boils down to: ~~~ template <typename > int an_int; template <typename T, typename U = decltype( an_int<T> ) > using a = decltype( an_int<T> ); template <typename T > using b = a<T>; template <typename T > using c = b< b<T> >; ~~~ ...which compiles cleanly under GCC 9.2 but fails with: ~~~ a.cpp:4:78: internal compiler error: in strip_typedefs, at cp/tree.c:1681 4 | template <typename T > using c = b< b<T> >; | ^ Please submit a full bug report, with preprocessed source if appropriate. See <https://gcc.gnu.org/bugs/> for instructions. ~~~ ...under GCC trunk (r277657, 2019-10-31) with `-fsyntax-only a.cpp`. Many thanks for all work on GCC.