https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93650
Bug ID: 93650 Summary: ICE in cxx_eval_constant_expression, at cp/constexpr.c:5626 Product: gcc Version: 10.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- g++-10.0.1-alpha20200209 snapshot (g:8686c4d84517b54cf3dfe98fca3a814b7d606502) ICEs when compiling the following testcase, extracted from gcc/testsuite/g++.dg/cpp2a/spaceship-scalar1.C, w/ -std=c++2a -Wall: #include <compare> void foo () { auto v = 1 <=> 2; } % g++-10.0.1 -std=c++2a -Wall -c tezg1h8p.C tezg1h8p.C: In function 'void foo()': tezg1h8p.C:6:18: internal compiler error: in cxx_eval_constant_expression, at cp/constexpr.c:5626 6 | auto v = 1 <=> 2; | ^ 0x5ee4e1 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/constexpr.c:5626 0x8a0c76 cxx_eval_constant_expression /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/constexpr.c:5883 0x8a47a6 cxx_eval_outermost_constant_expr /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/constexpr.c:6404 0x8a8e67 maybe_constant_value(tree_node*, tree_node*, bool, bool) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/constexpr.c:6695 0x93193d fold_for_warn(tree_node*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/expr.c:401 0xab2ecf check_function_restrict /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/c-family/c-common.c:5410 0xab2ecf check_function_arguments(unsigned int, tree_node const*, tree_node const*, int, tree_node**, vec<unsigned int, va_heap, vl_ptr>*) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/c-family/c-common.c:5750 0x8721d3 build_over_call /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/call.c:8818 0x874d4d build_new_method_call_1 /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/call.c:10295 0x875ee0 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/call.c:10370 0x875ee0 build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/call.c:9771 0x8d43e1 ocp_convert(tree_node*, tree_node*, int, int, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/cvt.c:938 0x9393c5 expand_default_init /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/init.c:1894 0x9393c5 expand_aggr_init_1 /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/init.c:2071 0x93b41b build_aggr_init(tree_node*, tree_node*, int, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/init.c:1806 0x8e73dd build_aggr_init_full_exprs /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/decl.c:6584 0x8e73dd check_initializer /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/decl.c:6768 0x90b4fe cp_finish_decl(tree_node*, tree_node*, bool, tree_node*, int) /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/decl.c:7746 0x9b48fb cp_parser_init_declarator /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/parser.c:20831 0x995313 cp_parser_simple_declaration /var/tmp/portage/sys-devel/gcc-10.0.1_alpha20200209/work/gcc-10-20200209/gcc/cp/parser.c:13678