https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80136
--- Comment #7 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- Looking at aarch64_gimplify_va_arg_expr, it allocates several temporary variables, and creates a number of modify_exprs that use them, nested inside this enormous compound_expr. But it does no gimplification on any of this. I'm no expert on this code, but it seems to me that gimplify_and_add (x, pre_p) should be called somewhere along the way to get things in the expected form. Looks like the aarch64 back end, and probably several others, are relying on the expression they return being gimplified further down the road. This hasn't been a problem before, but the use of force_gimple_operand exposes the issue.