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

            Bug ID: 70209
           Summary: [5 Regression] ICE in strip_typedefs, at
                    cp/tree.c:1377
           Product: gcc
           Version: 6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: doko at gcc dot gnu.org
  Target Milestone: ---

seen for several packages, fails with the gcc-5-branch on 20160312, not yet
checked with a recent trunk:

class Vector {
public:
  typedef float EntryType;
  template <typename S1> void m_fn1(S1);
} typedef sfloat_v;
template <typename> struct A {
  typedef Vector::EntryType Ta __attribute__((__may_alias__));
  Ta *m_data;
  void m_fn2(Vector &, Vector &, Vector &, Vector &, Vector &) const;
};
template <>
void A<int>::m_fn2(sfloat_v &, sfloat_v &, sfloat_v &, sfloat_v &,
                   sfloat_v &p5) const {
p5.m_fn1(m_data)

$ g++ -c foo.ii
foo.ii: In substitution of 'template<class S1> void Vector::m_fn1(S1) [with S1
= <missing>]':
foo.ii:14:16:   required from here
foo.ii:14:16: internal compiler error: in strip_typedefs, at cp/tree.c:1377
 p5.m_fn1(m_data)
                ^
0x60ca6d strip_typedefs(tree_node*)
        ../../src/gcc/cp/tree.c:1377
0xd7fa90 strip_typedefs(tree_node*)
        ../../src/gcc/cp/tree.c:1239
0xd178af canonicalize_type_argument
        ../../src/gcc/cp/pt.c:6574
0xd178af unify
        ../../src/gcc/cp/pt.c:18363
0xd1f5eb unify_one_argument
        ../../src/gcc/cp/pt.c:17001
0xd1eccd type_unification_real
        ../../src/gcc/cp/pt.c:17072
0xd1e3bf fn_type_unification(tree_node*, tree_node*, tree_node*, tree_node*
const*, unsigned int, tree_node*, unification_kind_t, int, bool, bool)
        ../../src/gcc/cp/pt.c:16508
0xce877e add_template_candidate_real
        ../../src/gcc/cp/call.c:3069
0xce0288 add_template_candidate
        ../../src/gcc/cp/call.c:3166
0xce0288 add_candidates
        ../../src/gcc/cp/call.c:5297
0xce3cc3 build_new_method_call_1
        ../../src/gcc/cp/call.c:8133
0xce3cc3 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>**, tree_node*, int, tree_node**, int)
        ../../src/gcc/cp/call.c:8329
0xd52ef2 cp_parser_postfix_expression
        ../../src/gcc/cp/parser.c:6347
0xd5202d cp_parser_unary_expression
        ../../src/gcc/cp/parser.c:7439
0xd5176b cp_parser_binary_expression
        ../../src/gcc/cp/parser.c:8173
0xd512e6 cp_parser_assignment_expression
        ../../src/gcc/cp/parser.c:8431
0xd543f1 cp_parser_expression
        ../../src/gcc/cp/parser.c:8585
0xd5641d cp_parser_expression_statement
        ../../src/gcc/cp/parser.c:9992
0xd55997 cp_parser_statement
        ../../src/gcc/cp/parser.c:9843
0xd556a4 cp_parser_statement_seq_opt
        ../../src/gcc/cp/parser.c:10115
Please submit a full bug report,
with preprocessed source if appropriate.

Reply via email to