https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90940
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> --- Oh, and for completeness, the ICE case reduced: extern "C" void* malloc(decltype(sizeof(0))); extern "C" void free(void*); struct string { string(int) : s(malloc(1)) { } ~string() { free(s); } string(const string& str) : s(str.s ? malloc(1) : nullptr) { } void* s; bool empty() const { return s == nullptr; } }; string foo() { const string s(42); return s.empty() ? throw "empty" : s; } 90940.cc: In function 'string foo()': 90940.cc:15:38: internal compiler error: in ocp_convert, at cp/cvt.c:765 15 | return s.empty() ? throw "empty" : s; | ^ 0x5ce07b ocp_convert(tree_node*, tree_node*, int, int, int) /home/jwakely/src/gcc/gcc/gcc/cp/cvt.c:765 0xa195c9 check_return_expr(tree_node*, bool*) /home/jwakely/src/gcc/gcc/gcc/cp/typeck.c:9796 0x9d0a4e finish_return_stmt(tree_node*) /home/jwakely/src/gcc/gcc/gcc/cp/semantics.c:894 0x9486db cp_parser_jump_statement /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:12903 0x9486db cp_parser_statement /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11180 0x949500 cp_parser_statement_seq_opt /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11646 0x9495d7 cp_parser_compound_statement /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:11600 0x962500 cp_parser_function_body /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22624 0x962500 cp_parser_ctor_initializer_opt_and_function_body /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:22675 0x962d86 cp_parser_function_definition_after_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:27776 0x963b1e cp_parser_function_definition_from_specifiers_and_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:27692 0x963b1e cp_parser_init_declarator /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:20261 0x945c6f cp_parser_simple_declaration /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13525 0x96a402 cp_parser_declaration /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:13222 0x96abaf cp_parser_translation_unit /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:4690 0x96abaf c_parse_file() /home/jwakely/src/gcc/gcc/gcc/cp/parser.c:41243 0xa78820 c_common_parse_file() /home/jwakely/src/gcc/gcc/gcc/c-family/c-opts.c:1156 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.