https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100252
--- Comment #8 from Marek Polacek <mpolacek at gcc dot gnu.org> --- This is tricky, because we end up with {.x=(&<PLACEHOLDER_EXPR struct B>)->x, .y=(&<PLACEHOLDER_EXPR struct A>)->x} that is, two PLACEHOLDER_EXPRs for different types on the same level in one { }, so our CONSTRUCTOR_PLACEHOLDER_BOUNDARY mechanism to avoid replacing unrelated PLACEHOLDER_EXPRs will not work.