===================================================================
@@ -1058,7 +1058,13 @@ expand_ifn_va_arg_1 (function *fun)
gimplify_assign (lhs, expr, &pre);
}
else
- gimplify_expr (&expr, &pre, &post, is_gimple_lvalue, fb_lvalue);
+ {
+ enum gimplify_status status;
+ status = gimplify_expr (&expr, &pre, &post, is_gimple_lvalue,
+ fb_lvalue | fb_mayfail);
+ if (status == GS_ERROR)
+ gimplify_expr (&expr, &pre, &post, is_gimple_val, fb_rvalue);
+ }
input_location = saved_location;
pop_gimplify_context (NULL);