[Bug c++/92313] New: Regression: ICE since 9.2 for templates derived from range-v3 code

TonyELewis at hotmail dot com gcc-bugzilla@gcc.gnu.org
Thu Oct 31 21:02:00 GMT 2019


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.


More information about the Gcc-bugs mailing list