if (notify_temp_creation)
return GS_OK;
+ /* Vector types use CONSTRUCTOR all the way through gimple
+ compilation as a general initializer. */
+ FOR_EACH_VEC_SAFE_ELT (elts, ix, ce)
+ {
+ enum gimplify_status tret;
+ tret = gimplify_expr (&ce->value, pre_p, post_p, is_gimple_val,
+ fb_rvalue);
+ if (tret == GS_ERROR)
+ ret = GS_ERROR;
+ else if (TREE_STATIC (ctor)
+ && !initializer_constant_valid_p (ce->value,
+ TREE_TYPE (ce->value)))
+ TREE_STATIC (ctor) = 0;
+ }
+ recompute_constructor_flags (ctor);
+
/* Go ahead and simplify constant constructors to VECTOR_CST. */
if (TREE_CONSTANT (ctor))
{
TREE_OPERAND (*expr_p, 1) = build_vector_from_ctor (type, elts);
break;
}
-
- TREE_CONSTANT (ctor) = 0;
}
- /* Vector types use CONSTRUCTOR all the way through gimple
- compilation as a general initializer. */
- FOR_EACH_VEC_SAFE_ELT (elts, ix, ce)
- {
- enum gimplify_status tret;
- tret = gimplify_expr (&ce->value, pre_p, post_p, is_gimple_val,
- fb_rvalue);
- if (tret == GS_ERROR)
- ret = GS_ERROR;
- else if (TREE_STATIC (ctor)
- && !initializer_constant_valid_p (ce->value,
- TREE_TYPE (ce->value)))
- TREE_STATIC (ctor) = 0;
- }
- recompute_constructor_flags (ctor);
if (!is_gimple_reg (TREE_OPERAND (*expr_p, 0)))
TREE_OPERAND (*expr_p, 1) = get_formal_tmp_var (ctor, pre_p);
}