https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80095
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu.org --- Comment #3 from Marek Polacek <mpolacek at gcc dot gnu.org> --- In store_init_value, we have decl: a type: const struct A & value: D.2291.p = (void *) &<PLACEHOLDER_EXPR struct A>;, (const struct A &) &D.2291; but because type isn't CLASS_TYPE_P, we're not calling replace_placeholders. We cannot just call replace_placeholders, that would crash, because obj has type "const struct A &" whereas *t is "<PLACEHOLDER_EXPR struct A>".