https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105256
--- Comment #21 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Ah, we have: case TARGET_EXPR: if (TARGET_EXPR_INITIAL (stmt) && TREE_CODE (TARGET_EXPR_INITIAL (stmt)) == CONSTRUCTOR && CONSTRUCTOR_PLACEHOLDER_BOUNDARY (TARGET_EXPR_INITIAL (stmt))) TARGET_EXPR_NO_ELIDE (stmt) = 1; break; but that doesn't trigger in this case because the TARGET_EXPR's CONSTRUCTOR is not CONSTRUCTOR_PLACEHOLDER_BOUNDARY, instead it is a CONSTRUCTOR that contains a CONSTRUCTOR_PLACEHOLDER_BOUNDARY CONSTRUCTOR as one of its elements.