https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68936
Bug ID: 68936 Summary: [6 Regression] ICE: tree check: expected call_expr, have target_expr in build_min_non_dep_call_vec, at cp/tree.c:2744 Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: trippels at gcc dot gnu.org Target Milestone: --- A very recent regression: trippels@gcc2-power8 status % cat testwave_dll.ii class A {}; struct predefined_macros { struct B { A (predefined_macros::*generator)(); }; }; template <typename> class C { void m_fn1(); predefined_macros predef; }; template <typename ContextT> void C<ContextT>::m_fn1() { predefined_macros::B m = (predef.*m.generator)(); } trippels@gcc2-power8 status % g++ -c testwave_dll.ii testwave_dll.ii: In member function ‘void C< <template-parameter-1-1> >::m_fn1()’: testwave_dll.ii:12:48: internal compiler error: tree check: expected call_expr, have target_expr in build_min_non_dep_call_vec, at cp/tree.c:2744 predefined_macros::B m = (predef.*m.generator)(); ^ 0x10d8c8f3 tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/gcc/tree.c:9606 0x103c4bcb tree_check ../../gcc/gcc/tree.h:2997 0x103c4bcb build_min_non_dep_call_vec(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>*) ../../gcc/gcc/cp/tree.c:2744 0x102a18d3 build_offset_ref_call_from_tree(tree_node*, vec<tree_node*, va_gc, vl_embed>**, int) ../../gcc/gcc/cp/decl2.c:5001 0x102e5e3f cp_parser_postfix_expression ../../gcc/gcc/cp/parser.c:6812 0x102f2663 cp_parser_unary_expression ../../gcc/gcc/cp/parser.c:7901 0x102f36e3 cp_parser_cast_expression ../../gcc/gcc/cp/parser.c:8578 0x102f3ddb cp_parser_binary_expression ../../gcc/gcc/cp/parser.c:8680 0x102f4a5f cp_parser_assignment_expression ../../gcc/gcc/cp/parser.c:8968 0x102f5257 cp_parser_constant_expression ../../gcc/gcc/cp/parser.c:9236 0x102f5f17 cp_parser_initializer_clause ../../gcc/gcc/cp/parser.c:20681 0x102f8817 cp_parser_initializer ../../gcc/gcc/cp/parser.c:20622 0x1030fdab cp_parser_init_declarator ../../gcc/gcc/cp/parser.c:18494 0x1031054f cp_parser_simple_declaration ../../gcc/gcc/cp/parser.c:12278 0x10310c47 cp_parser_block_declaration ../../gcc/gcc/cp/parser.c:12147 0x103120df cp_parser_declaration_statement ../../gcc/gcc/cp/parser.c:11759 0x102e0b57 cp_parser_statement ../../gcc/gcc/cp/parser.c:10441 0x102e1597 cp_parser_statement_seq_opt ../../gcc/gcc/cp/parser.c:10719 0x102e176f cp_parser_compound_statement ../../gcc/gcc/cp/parser.c:10673 0x1030dfab cp_parser_function_body ../../gcc/gcc/cp/parser.c:20541