https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71718

Martin Sebor <msebor at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |msebor at gcc dot gnu.org
      Known to fail|                            |4.8.5, 4.9.3, 5.3.0, 6.1.0,
                   |                            |7.0

--- Comment #2 from Martin Sebor <msebor at gcc dot gnu.org> ---
The likely commit to introduce the ICE is r191412 in the 4.8 time frame:

r191412 | jason | 2012-09-17 23:47:35 -0400 (Mon, 17 Sep 2012) | 4 lines

        PR c++/54575
        * pt.c (instantiate_alias_template): New.
        (tsubst): Use it.
        (push_access_scope): Allow TYPE_DECL.

The last relevant one before that was r191400 which errors out with:

t.C:14:26: error: template instantiation depth exceeds maximum of 32 (use
-ftemplate-depth= to increase the maximum) substituting ‘template<class T, int
num> sp<T> rec() [with T = <missing>; int num = <missing>]’
   return rec<T, num - 1>();  
                          ^
t.C:14:26:   recursively required from ‘sp<T> rec() [with T = Base; int num =
0; sp<T> = A<Base>]’
t.C:14:26:   required from ‘sp<T> rec() [with T = Base; int num = 1; sp<T> =
A<Base>]’
t.C:18:13:   required from here

t.C:14:26: error: no matching function for call to ‘rec()’
t.C:14:26: note: candidate is:
t.C:12:3: note: template<class T, int num> sp<T> rec()
   rec() 
   ^
t.C:12:3: note:   substitution of deduced template arguments resulted in errors
seen above

Reply via email to