https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86216

--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
The C FE does

                    /* Arrange for the SAVE_EXPR on the inside of the
                       MINUS_EXPR, which allows the -1 to get folded
                       with the +1 that happens when building TYPE_SIZE.  */
                    if (size_varies)
                      size = save_expr (size);

while the C++ FE relies on variable_size() after building the whole
expression.  Eliding the above optimization makes the IL more similar
but it still doesn't break.

Reply via email to