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

            Bug ID: 78898
           Summary: [7 Regression] ICE: in get_template_base, at
                    cp/pt.c:19665
           Product: gcc
           Version: 7.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: trippels at gcc dot gnu.org
                CC: jason at gcc dot gnu.org
  Target Milestone: ---

A very recent regression:

 % cat nsIconChannel.ii
struct A {
  template <class T> A(T);
  template <template <typename> class SmartPtr> A(SmartPtr<int>) { A(0); }
};

 % g++ -c nsIconChannel.ii
nsIconChannel.ii: In substitution of ‘template<template<class> class SmartPtr>
A::A(SmartPtr<int>) [with SmartPtr = <missing>]’:
nsIconChannel.ii:3:68:   required from here
nsIconChannel.ii:3:68: internal compiler error: in get_template_base, at
cp/pt.c:19665
   template <template <typename> class SmartPtr> A(SmartPtr<int>) { A(0); }
                                                                    ^~~~
0x10166603 get_template_base
        ../../gcc/gcc/cp/pt.c:19665
0x102a97f7 unify
        ../../gcc/gcc/cp/pt.c:20305
0x102aed5f unify_one_argument
        ../../gcc/gcc/cp/pt.c:18901
0x102b180b type_unification_real
        ../../gcc/gcc/cp/pt.c:19022
0x102b459b fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, bool, bool)
        ../../gcc/gcc/cp/pt.c:18412
0x101ebc6b add_template_candidate_real
        ../../gcc/gcc/cp/call.c:3168
0x101ecbaf add_template_candidate
        ../../gcc/gcc/cp/call.c:3246
0x101ecbaf add_candidates
        ../../gcc/gcc/cp/call.c:5481
0x101e7a9b build_user_type_conversion_1
        ../../gcc/gcc/cp/call.c:3795
0x101e82e3 implicit_conversion
        ../../gcc/gcc/cp/call.c:1898
0x101e9c8f reference_binding
        ../../gcc/gcc/cp/call.c:1746
0x101e8593 implicit_conversion
        ../../gcc/gcc/cp/call.c:1837
0x101eaecf add_function_candidate
        ../../gcc/gcc/cp/call.c:2191
0x101ecbe7 add_candidates
        ../../gcc/gcc/cp/call.c:5491
0x101ed863 build_new_method_call_1
        ../../gcc/gcc/cp/call.c:8656
0x101ed863 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ../../gcc/gcc/cp/call.c:8856
0x101ef2af build_special_member_call(tree_node*, tree_node*, vec<tree_node*,
va_gc, vl_embed>**, tree_node*, int, int)
        ../../gcc/gcc/cp/call.c:8387
0x101f2e67 perform_direct_initialization_if_possible(tree_node*, tree_node*,
bool, int)
        ../../gcc/gcc/cp/call.c:10091
0x103b4e53 build_static_cast_1
        ../../gcc/gcc/cp/typeck.c:6795
0x103b6597 cp_build_c_cast(tree_node*, t

Reply via email to