https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99016
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Internal compiler error |[9/10/11 Regression] |from decltype of binary |Internal compiler error |operator when one operand |from decltype of binary |is a prvalue function call |operator when one operand | |is a prvalue function call Keywords| |ice-on-valid-code CC| |jason at gcc dot gnu.org, | |mpolacek at gcc dot gnu.org Last reconfirmed| |2021-02-09 Target Milestone|--- |9.4 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #1 from Marek Polacek <mpolacek at gcc dot gnu.org> --- ICEs since r240845: commit b7558a2c1f87e374c48fa2be8e3ab93e1b3c68b0 Author: Jason Merrill <ja...@redhat.com> Date: Thu Oct 6 17:24:40 2016 -0400 C++17 copy elision improvements. * call.c (build_temp, convert_like_real): Don't re-copy TARGET_EXPR. Handle packed fields. (build_x_va_arg): Wrap it in a TARGET_EXPR. (build_over_call): Add sanity check. * cvt.c (early_elide_copy): New. (ocp_convert): Use it. * except.c (build_throw): Use it. * init.c (get_nsdmi): Put back the TARGET_EXPR. (expand_default_init): Call early_elide_copy. * typeck.c (cp_build_modify_expr): Call early_elide_copy.