https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90254
--- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- This reduced test actually regressed with r241187: struct A { A(A &); }; struct B : A { }; A foo (); int main () { B{foo()}; } $ ./cc1plus -quiet x.C -std=c++17 during RTL pass: expand x.C: In function ‘int main()’: x.C:11:3: internal compiler error: in assign_temp, at function.c:984 11 | B{foo()}; | ^~~~~~~~ 0x105cdf1 assign_temp(tree_node*, int, int) /home/mpolacek/src/gcc/gcc/function.c:984 0xdf123d expand_call(tree_node*, rtx_def*, int) /home/mpolacek/src/gcc/gcc/calls.c:3825 0xfe98d5 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/mpolacek/src/gcc/gcc/expr.c:11135 0xfdc3d9 expand_expr_real(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) /home/mpolacek/src/gcc/gcc/expr.c:8358 0xfbb233 expand_normal /home/mpolacek/src/gcc/gcc/expr.h:288 0xfd7588 store_field /home/mpolacek/src/gcc/gcc/expr.c:7102 0xfcf3c6 expand_assignment(tree_node*, tree_node*, bool) /home/mpolacek/src/gcc/gcc/expr.c:5374 0xe12534 expand_call_stmt /home/mpolacek/src/gcc/gcc/cfgexpand.c:2701 0xe15cab expand_gimple_stmt_1 /home/mpolacek/src/gcc/gcc/cfgexpand.c:3682 0xe1634a expand_gimple_stmt /home/mpolacek/src/gcc/gcc/cfgexpand.c:3847 0xe1e4f9 expand_gimple_basic_block /home/mpolacek/src/gcc/gcc/cfgexpand.c:5887 0xe2013b execute /home/mpolacek/src/gcc/gcc/cfgexpand.c:6542 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.