[Bug c++/80891] New: [8 Regression] Three new ICEs
trippels at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri May 26 17:51:00 GMT 2017
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80891
Bug ID: 80891
Summary: [8 Regression] Three new ICEs
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: trippels at gcc dot gnu.org
CC: nathan at gcc dot gnu.org
Target Milestone: ---
1)
% cat chi_square_std_dev_test.ii
namespace std {
struct A {
void operator<<(A(A));
};
template <typename _CharT, typename _Traits> _CharT endl(_Traits);
A a;
}
using std::endl;
void chi_squared_sample_sized() {
using namespace std;
a << endl;
}
% g++ -c chi_square_std_dev_test.ii
chi_square_std_dev_test.ii: In function ‘void chi_squared_sample_sized()’:
chi_square_std_dev_test.ii:11:8: internal compiler error: in get_bindings, at
cp/pt.c:21559
a << endl;
^~~~
0x7b3a35 get_bindings
../../gcc/gcc/cp/pt.c:21559
0x7b3af5 more_specialized_inst
../../gcc/gcc/cp/pt.c:21692
0x7b3c31 most_specialized_instantiation(tree_node*)
../../gcc/gcc/cp/pt.c:21732
0x5eef43 resolve_address_of_overloaded_function
../../gcc/gcc/cp/class.c:8251
0x5ccdf6 standard_conversion
../../gcc/gcc/cp/call.c:1123
0x5daef8 implicit_conversion
../../gcc/gcc/cp/call.c:1839
0x5dc896 add_function_candidate
../../gcc/gcc/cp/call.c:2196
0x5de6b7 add_candidates
../../gcc/gcc/cp/call.c:5479
0x5e6269 add_candidates
../../gcc/gcc/cp/call.c:5379
0x5e6269 build_new_op_1
../../gcc/gcc/cp/call.c:5653
0x5e6b3e build_new_op(unsigned int, tree_code, int, tree_node*, tree_node*,
tree_node*, tree_node**, int)
../../gcc/gcc/cp/call.c:6009
0x815de2 build_x_binary_op(unsigned int, tree_code, tree_node*, tree_code,
tree_node*, tree_code, tree_node**, int)
../../gcc/gcc/cp/typeck.c:3957
0x72e894 cp_parser_binary_expression
../../gcc/gcc/cp/parser.c:9051
0x72efe4 cp_parser_assignment_expression
../../gcc/gcc/cp/parser.c:9184
0x732e28 cp_parser_expression
../../gcc/gcc/cp/parser.c:9353
0x73b698 cp_parser_expression_statement
../../gcc/gcc/cp/parser.c:10912
0x7208e6 cp_parser_statement
../../gcc/gcc/cp/parser.c:10728
0x7219ad cp_parser_statement_seq_opt
../../gcc/gcc/cp/parser.c:11054
0x721a7f cp_parser_compound_statement
../../gcc/gcc/cp/parser.c:11008
0x722198 cp_parser_function_body
../../gcc/gcc/cp/parser.c:21445
2)
% cat ptr_vector.ii
void swap();
namespace boost {
void swap();
}
using namespace boost;
template <typename C, typename, typename> void reversible_container_test() {
using namespace boost;
C a;
swap(a);
}
namespace boost {
struct A {};
template <typename> void swap();
}
void test_ptr_vector() { reversible_container_test<A, int, int>; }
% g++ -c ptr_vector.ii
ptr_vector.ii: In instantiation of ‘void reversible_container_test() [with C =
boost::A; <template-parameter-1-2> = int; <template-parameter-1-3> = int]’:
ptr_vector.ii:15:64: required from here
ptr_vector.ii:9:7: internal compiler error: in ovl_copy, at cp/tree.c:2142
swap(a);
~~~~^~~
0x7f7812 ovl_copy
../../gcc/gcc/cp/tree.c:2142
0x7fc4e7 lookup_maybe_add(tree_node*, tree_node*)
../../gcc/gcc/cp/tree.c:2383
0x6f951a name_lookup::add_fns(tree_node*)
../../gcc/gcc/cp/name-lookup.c:688
0x6f98ff name_lookup::adl_namespace(tree_node*)
../../gcc/gcc/cp/name-lookup.c:714
0x6f98ff name_lookup::adl_class_only(tree_node*)
../../gcc/gcc/cp/name-lookup.c:740
0x6f9c3e name_lookup::adl_bases(tree_node*)
../../gcc/gcc/cp/name-lookup.c:774
0x6fa094 name_lookup::adl_class(tree_node*)
../../gcc/gcc/cp/name-lookup.c:817
0x6fae3c name_lookup::search_adl(tree_node*, vec<tree_node*, va_gc, vl_embed>*)
../../gcc/gcc/cp/name-lookup.c:1001
0x6faef4 lookup_arg_dependent(tree_node*, tree_node*, vec<tree_node*, va_gc,
vl_embed>*)
../../gcc/gcc/cp/name-lookup.c:1026
0x7d6786 perform_koenig_lookup(cp_expr, vec<tree_node*, va_gc, vl_embed>*, int)
../../gcc/gcc/cp/semantics.c:2270
0x7903c0 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:17253
0x77ec33 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:16514
0x77d3ae tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15778
0x77c751 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15764
0x77ebf3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15991
0x77a6cb instantiate_decl(tree_node*, bool, bool)
../../gcc/gcc/cp/pt.c:22955
0x7bc21b instantiate_pending_templates(int)
../../gcc/gcc/cp/pt.c:23076
0x6a2208 c_parse_final_cleanups()
../../gcc/gcc/cp/decl2.c:4519
3)
% cat test_rayleigh.ii
namespace std {
void endl();
}
using std::endl;
template <class RealType> void test_spots(RealType) {
using namespace std;
RealType a;
a << endl;
}
void test_maintest_method() { test_spots(0.); }
% g++ -c test_rayleigh.ii
test_rayleigh.ii: In instantiation of ‘void test_spots(RealType) [with RealType
= double]’:
test_rayleigh.ii:10:44: required from here
test_rayleigh.ii:8:5: internal compiler error: in tsubst_copy, at cp/pt.c:14679
a << endl;
~~^~~~~~~
0x787fdf tsubst_copy
../../gcc/gcc/cp/pt.c:14679
0x78fba7 tsubst_copy
../../gcc/gcc/cp/pt.c:14476
0x78fba7 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:17980
0x78f500 tsubst_copy_and_build(tree_node*, tree_node*, int, tree_node*, bool,
bool)
../../gcc/gcc/cp/pt.c:16899
0x77ec33 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:16514
0x77d3ae tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15778
0x77c751 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15764
0x77ebf3 tsubst_expr(tree_node*, tree_node*, int, tree_node*, bool)
../../gcc/gcc/cp/pt.c:15991
0x77a6cb instantiate_decl(tree_node*, bool, bool)
../../gcc/gcc/cp/pt.c:22955
0x7bc21b instantiate_pending_templates(int)
../../gcc/gcc/cp/pt.c:23076
0x6a2208 c_parse_final_cleanups()
../../gcc/gcc/cp/decl2.c:4519
2) and 3) got invalid during reduction. (Couldn't be bothered to fix them up.)
More information about the Gcc-bugs
mailing list