https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92560
Bug ID: 92560 Summary: ICE using decltype(x < y) when that operator uses operator<=> 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: redi at gcc dot gnu.org CC: jason at gcc dot gnu.org Target Milestone: --- #include <compare> struct X { friend std::strong_ordering operator<=>(X, X); } x; using T = decltype(x < x); Compiled with -std=gnu++2a: less-ice.cc:8:24: internal compiler error: in build_over_call, at cp/call.c:8835 8 | using T = decltype(x < x); | ^ 0x5be807 build_over_call /home/jwakely/src/gcc/gcc/gcc/cp/call.c:8829 0x8672d6 build_new_method_call_1 /home/jwakely/src/gcc/gcc/gcc/cp/call.c:10193 0x8672d6 build_new_method_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, tree_node**, int) /home/jwakely/src/gcc/gcc/gcc/cp/call.c:10268 0x867ed9 build_special_member_call(tree_node*, tree_node*, vec<tree_node*, va_gc, vl_embed>**, tree_node*, int, int) /home/jwakely/src/gcc/gcc/gcc/cp/call.c:9706 0x861b7a build_temp /home/jwakely/src/gcc/gcc/gcc/cp/call.c:7044 0x861b7a convert_like_real /home/jwakely/src/gcc/gcc/gcc/cp/call.c:7584 0x86346b build_over_call /home/jwakely/src/gcc/gcc/gcc/cp/call.c:8671 0x8692e9 build_new_op_1 /home/jwakely/src/gcc/gcc/gcc/cp/call.c:6224 0x86987f build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node**, int) /home/jwakely/src/gcc/gcc/gcc/cp/call.c:6490 0x8695e4 build_new_op_1 /home/jwakely/src/gcc/gcc/gcc/cp/call.c:6311 0x86987f build_new_op(op_location_t const&, tree_code, int, tree_node*, tree_node*, tree_node*, tree_node**, int) /home/jwakely/src/gcc/gcc/gcc/cp/call.c:6490 0xa38a66 build_x_binary_op(op_location_t const&, tree_code, tree_node*, tree_code, tree_node*, tree_code, tree_node**, int) /home/jwakely/src/gcc/gcc/gcc/cp/typeck.c:4221 0x9693ad cp_parser_binary_expression /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:9645 0x96a199 cp_parser_assignment_expression /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:9780 0x96a4bf cp_parser_expression /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:9948 0x98a745 cp_parser_decltype_expr /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:14727 0x98a745 cp_parser_decltype /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:14800 0x987c37 cp_parser_simple_type_specifier /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:17866 0x9761cd cp_parser_type_specifier /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:17642 0x98cc88 cp_parser_type_specifier_seq /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22189 Please submit a full bug report, with preprocessed source if appropriate. Please include the complete backtrace with any bug report. See <https://gcc.gnu.org/bugs/> for instructions.